Redis
 sql >> Database >  >> NoSQL >> Redis

Come connettersi all'istanza Redis (memorystore) dall'App Engine standard di Google (Python 3.7)

Connessione a un'istanza Redis da un'applicazione dell'ambiente standard di App Engine e dall'applicazione App Engine Flex 2020

1.Scarica e installa Cloud SDK.

2.Se hai già installato Cloud SDK, aggiornalo eseguendo il comando seguente:

gcloud components update

3.Crea un nuovo progetto:

gcloud projects create [YOUR_PROJECT_ID] --set-as-default

4.Verifica che il progetto sia stato creato:

gcloud projects describe [YOUR_PROJECT_ID]     

5.Imposta il progetto che hai appena creato:

gcloud config set core/project PROJECT_ID

6.Inizializza la tua app App Engine con il tuo progetto e scegli la sua regione:

gcloud app create --project=[YOUR_PROJECT_ID]

7.Quando richiesto, seleziona la regione in cui desideri posizionare l'applicazione App Engine.Ricorda la regione, creeremo l'istanza Redis e il connettore VPC nella stessa regione. La mia applicazione App Engine su europe-west2

8.Assicurati che la fatturazione sia abilitata per il tuo progetto. Un account di fatturazione deve essere collegato al tuo progetto per poter distribuire l'applicazione in App Engine.

9.Installare i seguenti prerequisiti:

a.Scarica e installa Git

b.Esegui il comando seguente per installare il componente gcloud che include l'estensione App Engine per Python 3.7:

gcloud components install app-engine-python

c.Prepara il tuo ambiente per lo sviluppo Python

10.Crea l'istanza Memorystore per Redis. Inserisci il comando seguente per creare un'istanza Redis di livello base da 2 GiB nell'area 'europe-west2'

gcloud redis instances create myinstance --size=2 --region=europe-west2 /
--redis-version=redis_4_0

11.Dopo aver creato l'istanza, immetti il ​​comando describe per ottenere l'indirizzo IP e la porta dell'istanza. Utilizzerai i valori dell'host e della porta per connetterti all'istanza. Trova anche la rete autorizzata della tua istanza Redis

gcloud redis instances describe myinstance --region=europe-west2

12.Configurazione dell'accesso serverless VPC.Assicurati di creare il connettore nella stessa regione dell'app e dell'istanza Redis e assicurati che il connettore sia collegato alla rete VPC autorizzata dell'istanza Redis. Ricorda il nome del connettore.

13.Assicurati che l'API Serverless VPC Access sia abilitata per il tuo progetto:

gcloud services enable vpcaccess.googleapis.com

14.Crea un connettore con il comando:

gcloud compute networks vpc-access connectors create connector --network default --region europe-west2 --range 10.10.0.0/28

15.Verifica che il tuo connettore sia nello stato READY prima di usarlo, l'output dovrebbe contenere lo stato della linea:READY .

16.Clone il repository per Python.

git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/memorystore/redis

17.Preparazione dell'applicazione per la distribuzione di App Engine Standard .Aggiorna la configurazione dell'app per specificare il connettore Serverless VPC Access e l'indirizzo IP e la porta della tua istanza Redis:

 cd gae_standard_deployment/
 cat app.yaml

runtime: python37
entrypoint: gunicorn -b :$PORT main:app

# Update with Redis instance details
env_variables:
  REDISHOST: '<REDIS_IP>'
  REDISPORT: '6379'

# Update with Serverless VPC Access connector details
vpc_access_connector:
  name: 'projects/<PROJECT_ID>/locations/<REGION>/connectors/<CONNECTOR_NAME>'

18.Distribuzione dell'applicazione nell'ambiente standard di App Engine

cd ..
cp gae_standard_deployment/app.yaml .

19.Esegui il comando deploy

gcloud beta app deploy

20.Al termine della distribuzione, visita la tua app al seguente URL, sostituendo [PROJECT_ID] con il tuo ID progetto Google Cloud.

Visitor number: 4

SUCCESSO!

21.Preparazione dell'applicazione per la distribuzione di App Engine Flex .Aggiorna la configurazione dell'app per specificare l'indirizzo IP e la porta della tua istanza Redis:

cd gae_flex_deployment/
cat app.yaml

cp gae_flex_deployment/app.yaml .


runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:app

runtime_config:
  python_version: 3

# Update with Redis instance IP and port
env_variables:
  REDISHOST: '<REDIS_IP>'
  REDISPORT: '6379'

# Update with Redis instance network name
network:
  name: default

22.Distribuzione dell'applicazione nell'ambiente standard di App Engine

cd ..
cp gae_flex_deployment/app.yaml .

23.Esegui il comando deploy

gcloud beta app deploy

24.Al termine della distribuzione, visita la tua app al seguente URL, sostituendo [PROJECT_ID] con il tuo ID progetto Google Cloud.

Visitor number: 4

SUCCESSO!