Puoi connetterti all'istanza Redis dalle istanze VM di Compute Engine che utilizzano la stessa rete autorizzata dell'istanza Redis.
Configurazione
Se hai già installato Google Cloud CLI, creato un'istanza Redis e un bucket Cloud Storage, puoi saltare questi passaggi.
Installa e inizializza gcloud CLI:
gcloud initSegui la guida rapida per creare un'istanza Redis. Prendi nota della zona, dell'indirizzo IP e della porta dell'istanza Redis.
Crea un bucket Cloud Storage in cui verrà caricato l'artefatto dell'applicazione di esempio. Per saperne di più, consulta Crea bucket.
Configurazione delle impostazioni di gcloud per l'applicazione di esempio
- Imposta il progetto predefinito di
gcloudsul progetto dell'app di esempio.gcloud config set project [PROJECT_ID]
Applicazione di esempio
Questa applicazione server HTTP di esempio stabilisce una connessione a un'istanza Redis da un'istanza VM di Compute Engine.
Clona il repository per il linguaggio di programmazione scelto e vai alla cartella contenente il codice campione:
Vai
git clone https://github.com/GoogleCloudPlatform/golang-samples
cd golang-samples/memorystore/redis
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-samples/memorystore/redis
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
cd nodejs-docs-samples/memorystore/redis
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/memorystore/redis
Questa applicazione di esempio incrementa un contatore Redis ogni volta che si accede all'endpoint /.
Vai
Questa applicazione utilizza il
github.com/gomodule/redigo/redis
client. Installalo eseguendo il seguente comando:
go get github.com/gomodule/redigo/redis@latest
Applicazione di esempio:
Java
Questa applicazione è basata su servlet Jetty 3.1.
Utilizza la libreria Jedis:
La classe AppServletContextListener viene utilizzata per creare un pool di connessioni Redis a lunga durata:
La classe VisitCounterServlet è una servlet web che incrementa un contatore Redis:
Node.js
Questa applicazione utilizza il redis
modulo. Di seguito è riportato un file package.json di esempio:
Codice dell'applicazione di esempio:
Python
Questa applicazione utilizza Flask
per il servizio web e il redis-py
pacchetto per comunicare con l'istanza Redis.
Codice dell'applicazione di esempio:
Deployment dell'applicazione in una VM di Compute Engine
Vai alla directory gce_deployment:
cd gce_deployment
Lo script di deployment carica l'artefatto nel percorso di Cloud Storage. Quindi avvia un'istanza Compute Engine, creando un firewall per esporre la porta 8080. Lo script di avvio prepara quindi l'istanza.
Imposta le variabili di ambiente REDISHOST e REDISPORT:
export REDISHOST=[REDISHOST] export REDISPORT=[REDISPORT]
dove:
REDISHOSTè l'IP dell'istanza Redis gestita.REDISPORTè la porta dell'istanza Redis gestita, per impostazione predefinita 6379.
Imposta la variabile di ambiente GCS_BUCKET_NAME:
export GCS_BUCKET_NAME=[BUCKET_NAME]/[PATH]
dove:
BUCKET_NAMEè il nome del tuo bucket Cloud Storage.PATHè un percorso facoltativo per la directory in cui vuoi archiviare l'artefatto dell'applicazione.
Di seguito è riportato uno script di deployment di esempio che esegue il deployment di questa applicazione in una nuova istanza VM di Compute Engine.
Vai
Java
Node.js
Python
Esegui lo script di deployment:
chmod +x deploy.sh
./deploy.sh
Script di avvio dell'applicazione
Questo script di avvio viene utilizzato nello script di deployment di esempio per preparare l'istanza. Per saperne di più sugli script di avvio e sulla visualizzazione dei log di esecuzione degli script di avvio, consulta Esecuzione di script di avvio.
Vai
Java
Node.js
Python
Il deployment dell'applicazione di esempio nella nuova istanza Compute Engine potrebbe richiedere diversi minuti.
Una volta che l'istanza è pronta e lo script di avvio è stato completato, vai a la pagina delle istanze Compute Engine e copia l'indirizzo IP esterno.
Per visualizzare l'app di esempio di cui hai eseguito il deployment, visita http://[EXTERNAL-IP]:8080
Puoi utilizzare lo script teardown.sh per eliminare l'istanza e il firewall creati dallo script di deployment: