Puoi connetterti a un'istanza Redis dalle funzioni Cloud Run 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 gcloud CLI 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 l'uscita della rete VPC per la configurazione
Per connettersi all'istanza Redis, la funzione Cloud Run deve avere accesso alla rete VPC autorizzata dell'istanza Redis.
Per trovare il nome di questa rete, esegui il seguente comando:
gcloud redis instances describe INSTANCE_ID --region REGION --format "value(authorizedNetwork)"
Prendi nota del nome della rete.
Funzione SAMPLE
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 che contiene 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
client github.com/gomodule/redigo/redis
.
Node.js
Questa funzione utilizza il modulo redis
.
Python
Questa funzione utilizza il pacchetto
redis-py
.
Deployment dell'esempio in Cloud Run Functions
Per eseguire il deployment della funzione:
Copia
Dockerfile
nella directory di origine:cp cloud_run_deployment/Dockerfile .
Crea un'immagine container utilizzando Cloud Build eseguendo il seguente comando:
gcloud builds submit --tag gcr.io/PROJECT_ID/visit-count
Esegui il deployment del container in Cloud Run eseguendo questo comando:
gcloud run deploy \ --image gcr.io/PROJECT_ID/visit-count \ --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'uscita VPC diretta supporta gli intervalli RFC 1918, RFC 6598 e IPv4 di classe E.REDIS_IP
eREDIS_PORT
sono 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.