Puoi connetterti a un'istanza Redis da Cloud Run utilizzando il traffico VPC diretto in uscita o l'accesso VPC serverless.
Configurazione
Se hai già installato Google Cloud CLI e hai creato un'istanza Redis, puoi saltare questi passaggi.
Installa l'interfaccia a riga di comando gcloud e inizializza:
gcloud init
Segui la guida rapida per creare un'istanza Redis. Prendi nota della zona, dell'indirizzo IP e della porta dell'istanza Redis.
Prepara il traffico in uscita della rete VPC per la configurazione
Per connettersi all'istanza Redis, il servizio Cloud Run deve avere accesso alla rete VPC autorizzata dell'istanza Redis. Per attivare questo accesso, devi disporre del traffico VPC diretto in uscita o di un connettore di accesso VPC serverless. Confronta i due metodi di uscita dalla rete.
Trova il nome della rete autorizzata della tua istanza Redis eseguendo il seguente comando:
gcloud redis instances describe INSTANCE_ID --region REGION --format "value(authorizedNetwork)"
Prendi nota del nome della rete.
Se utilizzi l'accesso VPC serverless, crea un connettore. Assicurati di utilizzare la stessa regione e la stessa rete VPC di quella utilizzata dall'istanza Redis. Prendi nota del nome del connettore.
Applicazione di esempio
Questa applicazione di server HTTP di esempio stabilisce una connessione a un'istanza Redis da un servizio Cloud Run.
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
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 viene eseguito l'accesso all'endpoint /
.
Vai
Questa applicazione utilizza il client
github.com/gomodule/redigo/redis
. Installalo eseguendo il seguente comando:
go get github.com/gomodule/redigo/redis
Node.js
Questa applicazione utilizza il modulo redis
.
Python
Questa applicazione utilizza Flask per il servizio web e il pacchetto redis-py
per comunicare con l'istanza Redis.
Eseguire il deployment dell'applicazione in Cloud Run
Per eseguire il deployment dell'applicazione:
Copia
Dockerfile
nella directory di origine:cp cloud_run_deployment/Dockerfile .
Crea un'immagine container utilizzando Cloud Build con il seguente comando:
gcloud builds submit --tag gcr.io/PROJECT_ID/visit-count
Esegui il deployment del container in Cloud Run.
Se utilizzi l'egress VPC diretto, esegui il seguente comando:
gcloud run deploy \ --image gcr.io/PROJECT_ID/visit-count \ --platform managed \ --allow-unauthenticated \ --region REGION \ --network NETWORK \ --subnet SUBNET \ --set-env-vars REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
dove:
PROJECT_ID
è l'ID del tuo progetto Google Cloud.REGION
è la regione in cui si trova l'istanza Redis.NETWORK
è il nome della rete VPC autorizzata a cui è collegata l'istanza Redis.SUBNET
è il nome della subnet. La subnet deve essere/26
o superiore. L'egress VPC diretto supporta gli intervalli IPv4 RFC 1918, RFC 6598, e la classe E.REDIS_IP
eREDIS_PORT
sono l'indirizzo IP e il numero di porta dell'istanza Redis.
Se utilizzi un connettore di accesso VPC serverless, esegui il seguente comando:
gcloud run deploy \ --image gcr.io/PROJECT_ID/visit-count \ --platform managed \ --allow-unauthenticated \ --region REGION \ --vpc-connector CONNECTOR_NAME \ --set-env-vars REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
dove:
PROJECT_ID
è l'ID del tuo progetto Google Cloud.REGION
è la regione in cui si trovano il connettore di accesso VPC serverless e l'istanza Redis.CONNECTOR_NAME
è il nome del connettore.REDIS_IP
eREDIS_PORT
sono l'indirizzo IP e il numero di porta dell'istanza Redis.
Al termine del deployment, la riga di comando visualizza l'URL del servizio Cloud Run. Visita questo URL in un browser web
(o utilizza uno strumento come curl
) e osserva l'aumento del conteggio nell'istanza Redis
ogni volta che il servizio viene visitato.