Свързване с екземпляр на Redis от приложение за стандартна среда на App Engine и приложение App Engine Flex 2020
1. Изтеглете и инсталирайте Cloud SDK.
2.Ако вече имате инсталиран Cloud SDK, актуализирайте го, като изпълните следната команда:
gcloud components update
3. Създайте нов проект:
gcloud projects create [YOUR_PROJECT_ID] --set-as-default
4. Проверете дали проектът е създаден:
gcloud projects describe [YOUR_PROJECT_ID]
5. Задайте проекта, който току-що създадохте:
gcloud config set core/project PROJECT_ID
6. Инициализирайте приложението си App Engine с вашия проект и изберете неговия регион:
gcloud app create --project=[YOUR_PROJECT_ID]
7. Когато бъдете подканени, изберете региона, в който искате да се намира приложението ви App Engine. Запомнете региона, ние ще създадем Redis Instance и VPC конектор в същия регион. Моето приложение за App Engine в europe-west2
8. Уверете се, че таксуването е активирано за вашия проект. Акаунт за таксуване трябва да бъде свързан с вашия проект, за да може приложението да бъде внедрено в App Engine.
9. Инсталирайте следните предпоставки:
a. Изтеглете и инсталирайте Git
b. Изпълнете следната команда, за да инсталирате компонента gcloud, който включва разширението на App Engine за Python 3.7:
gcloud components install app-engine-python
в. Подгответе вашата среда за разработка на Python
10. Създайте Memorystore за Redis екземпляр. Въведете следната команда, за да създадете 2 GiB Basic Tier Redis екземпляр в региона 'europe-west2'
gcloud redis instances create myinstance --size=2 --region=europe-west2 /
--redis-version=redis_4_0
11. След като екземплярът е създаден, въведете командата describe, за да получите IP адреса и порта на екземпляра. Ще използвате стойностите на хоста и порта, за да се свържете с екземпляра. Също така намерете оторизираната мрежа на вашия екземпляр Redis
gcloud redis instances describe myinstance --region=europe-west2
12.Конфигуриране на VPC достъп без сървър. Уверете се, че сте създали конектора в същия регион като вашето приложение и вашия Redis екземпляр и се уверете, че конекторът е свързан към оторизираната VPC мрежа на Redis екземпляр. Запомнете името на конектора.
13. Уверете се, че API за достъп до VPC без сървър е активиран за вашия проект:
gcloud services enable vpcaccess.googleapis.com
14. Създайте конектор с командата:
gcloud compute networks vpc-access connectors create connector --network default --region europe-west2 --range 10.10.0.0/28
15. Уверете се, че вашият конектор е в състояние ГОТОВ, преди да го използвате, изходът трябва да съдържа състоянието на линията:READY
.
16.Клонирайте хранилището за python.
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/memorystore/redis
17. Подготовка на приложението за внедряване App Engine Standard .Актуализирайте конфигурацията на приложението, за да посочите своя конектор за VPC достъп без сървър и IP адреса и порта на вашия 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. Разгръщане на приложението в стандартната среда на App Engine
cd ..
cp gae_standard_deployment/app.yaml .
19. Изпълнете командата за разгръщане
gcloud beta app deploy
20. След като внедряването приключи, посетете приложението си на следния URL адрес, като замените [PROJECT_ID] с вашия идентификатор на проекта в Google Cloud.
Visitor number: 4
УСПЕХ!
21. Подготовка на приложението за внедряване на App Engine Flex .Актуализирайте конфигурацията на приложението, за да посочите IP адреса и порта на вашия екземпляр 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. Разгръщане на приложението в стандартната среда на App Engine
cd ..
cp gae_flex_deployment/app.yaml .
23. Изпълнете командата за разгръщане
gcloud beta app deploy
24. След като внедряването приключи, посетете приложението си на следния URL адрес, като замените [PROJECT_ID] с вашия идентификатор на проекта в Google Cloud.
Visitor number: 4
УСПЕХ!