Puoi connetterti a un'istanza Redis da Cloud Run Functions utilizzando il traffico in uscita VPC diretto.
Configurazione
Se hai già installato Google Cloud CLI e creato un'istanza Redis, 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.
Preparare il traffico in uscita della rete VPC per la configurazione
Per connetterti all'istanza Redis, la tua funzione Cloud Run deve avere accesso alla rete VPC autorizzata dell'istanza Redis.
Per trovare il nome di questa rete, esegui il comando seguente:
gcloud redis instances describe INSTANCE_ID --region REGION --format "value(authorizedNetwork)"
Prendi nota del nome della rete.
Funzione di esempio
Questa funzione di esempio stabilisce una connessione a un'istanza Redis da Cloud Run Functions.
Clona il repository per il linguaggio di programmazione che preferisci e vai alla cartella contenente il codice campione:
Vai
git clone https://github.com/GoogleCloudPlatform/golang-samples
cd golang-samples/functions/memorystore/redis
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
cd nodejs-docs-samples/functions/memorystore/redis
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/functions/memorystore/redis
Il codice campione incrementa un contatore Redis ogni volta che viene attivata la funzione:
Vai
Questa funzione utilizza il
github.com/gomodule/redigo/redis
client.
Node.js
Questa funzione utilizza il redis
modulo.
Python
Questa funzione utilizza il
redis-py pacchetto.
Eseguire il deployment dell'esempio in Cloud Run Functions
Per eseguire il deployment della funzione:
Copia il
Dockerfilenella directory di origine:cp ../../../memorystore/redis/cloud_run_deployment/Dockerfile .Crea un'immagine container utilizzando Cloud Build eseguendo il comando seguente:
gcloud artifacts repositories create --location REPO_REGION --repository-format=docker REPO_ID gcloud builds submit --pack image=REPO_REGION-docker.pkg.dev/PROJECT_ID/REPO_ID/visit-counter:v1,builder=gcr.io/buildpacks/builder:latest,env=GOOGLE_FUNCTION_SIGNATURE_TYPE=http,env=GOOGLE_FUNCTION_TARGET=VisitCount
Esegui il deployment del container in Cloud Run eseguendo il comando seguente:
gcloud run deploy \ --image REPO_REGION-docker.pkg.dev/PROJECT_ID/REPO_ID/visit-counter:v1 \ --allow-unauthenticated \ --region REGION \ --network NETWORK \ --subnet SUBNET \ --set-env-vars REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
dove:
REPO_REGIONè la regione del repository.REPO_IDè il nome del repository contenente l'immagine dell'applicazione.PROJECT_IDè l'ID del tuo Google Cloud progetto.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 almeno/26o superiore. Il traffico in uscita VPC diretto supporta gli intervalli IPv4 RFC 1918, RFC 6598, e di classe E.REDIS_IPeREDIS_PORTsono l'indirizzo IP e il numero di porta dell'istanza Redis.
Al termine del deployment della funzione, recupera l'URL della funzione:
gcloud run services describe visit-count \ --region=REGION
Puoi vedere il contatore aumentare ogni volta che attivi la funzione inviando una richiesta GET al suo URL.