您可以使用无服务器 VPC 访问通道从 App Engine 标准环境连接到 Redis 实例。
设置
如果您已安装 Google Cloud CLI 且已创建 Redis 实例,则可以跳过这些步骤。
安装 gcloud CLI 并初始化:
gcloud init
按照快速入门指南创建一个 Redis 实例。记下该 Redis 实例的地区、IP 地址和端口。
配置无服务器 VPC 访问通道
要从 App Engine 应用连接到 Redis 实例的授权 VPC 网络,您必须设置无服务器 VPC 访问通道。
通过运行以下命令查找 Redis 实例的授权网络:
gcloud beta redis instances describe [INSTANCE_ID] --region [REGION]
按照创建连接器中的说明创建无服务器 VPC 访问通道连接器。请务必在应用所在的区域中创建连接器,并确保该连接器已连接到 Redis 实例的授权 VPC 网络。记下连接器的名称。
示例应用
此示例 HTTP 服务器应用通过 App Engine 标准环境应用建立与 Redis 实例的连接。
克隆您所需编程语言的代码库,并转到包含示例代码的文件夹:
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples
cd golang-samples/memorystore/redis
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-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
每次访问 /
端点时,此示例应用都会增加一个 Redis 计数器。
Go
此应用使用 github.com/gomodule/redigo/redis
客户端。通过运行以下命令进行安装:
go get github.com/gomodule/redigo/redis
Java
此应用基于 Jetty 3.1 servlet。
它使用 Jedis 库:
AppServletContextListener
类用于创建长效 Redis 连接池:
VisitCounterServlet
类是一个网络 Servlet,用于增加 Redis 计数器。
Node.js
此应用使用 redis
模块。
Python
准备应用进行部署
要访问 Redis 实例,App Engine 应用必须配置为使用无服务器 VPC 访问通道连接器,并且您必须提供 Redis 实例的连接详细信息。
如果您还没有 App Engine 应用,请创建一个。
更新应用的配置以指定无服务器 VPC 访问通道连接器以及 Redis 实例的 IP 地址和端口:
Go
更新
gae_standard_deployment/app.yaml
文件。如需了解详情,请参阅 app.yaml 配置文件。
Java
更新
gae_standard_deployment/appengine-web.xml
文件以指定无服务器 VPC 访问通道连接器:并使用 Redis 实例的 IP 地址和端口更新
src/main/resources/application.properties
文件:如需详细了解如何配置应用,请参阅 appengine-web.xml 参考。
Node.js
更新
gae_standard_deployment/app.yaml
文件。如需了解详情,请参阅 app.yaml 配置文件。
Python
更新
gae_standard_deployment/app.yaml
文件。如需了解详情,请参阅 app.yaml 配置文件。
将应用部署到 App Engine 标准环境
如需部署应用,请执行以下操作:
将必要的配置文件复制到来源目录中:
Go
将
app.yaml
和go.mod
文件复制到源目录中:cp gae_standard_deployment/{app.yaml,go.mod} .
Java
将
appengine-web.xml
文件复制到来源目录中:mkdir -p src/main/webapp/WEB-INF cp gae_standard_deployment/appengine-web.xml src/main/webapp/WEB-INF/
Node.js
将
app.yaml
文件复制到来源目录中:cp gae_standard_deployment/app.yaml .
Python
将
app.yaml
文件复制到来源目录中:cp gae_standard_deployment/app.yaml .
运行 deploy 命令:
Go
gcloud app deploy
Java
mvn package appengine:stage gcloud app deploy target/appengine-staging/app.yaml
Node.js
gcloud app deploy
Python
gcloud app deploy
部署完成后,该命令将输出供您访问应用的网址。如果您访问此网址,就会看到每次加载页面时 Redis 实例上的计数都会增加。