您可以使用直接 VPC 出站流量或无服务器 VPC 访问通道从 Cloud Run 连接到 Redis 实例。
设置
如果您已安装 Google Cloud CLI 且已创建 Redis 实例,则可以跳过这些步骤。
安装 gcloud CLI 并初始化:
gcloud init
按照快速入门指南创建一个 Redis 实例。记下该 Redis 实例的地区、IP 地址和端口。
准备 VPC 网络出站流量以进行配置
要连接到 Redis 实例,您的 Cloud Run 服务需要访问 Redis 实例的已获授权的 VPC 网络。如需启用此访问权限,您需要使用直接 VPC 出站流量或无服务器 VPC 访问通道连接器。比较两种网络出站流量方法。
通过运行以下命令查找 Redis 实例的已获授权的网络的名称:
gcloud redis instances describe INSTANCE_ID --region REGION --format "value(authorizedNetwork)"
记下网络名称。
如果您使用的是无服务器 VPC 访问通道,请创建连接器。请务必使用与 Redis 实例相同的区域和 VPC 网络。记下连接器的名称。
示例应用
此示例 HTTP 服务器应用通过 Cloud Run 服务建立与 Redis 实例之间的连接。
克隆您所选编程语言的代码库,并转到包含示例代码的文件夹:
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples
cd golang-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
Node.js
此应用使用 redis
模块。
Python
将应用部署到 Cloud Run
如需部署应用,请执行以下操作:
将
Dockerfile
复制到源目录中:cp cloud_run_deployment/Dockerfile .
借助以下命令使用 Cloud Build 构建容器映像:
gcloud builds submit --tag gcr.io/PROJECT_ID/visit-count
将容器部署到 Cloud Run。
如果您使用的是直接 VPC 出站流量,请运行以下命令:
gcloud run deploy \ --image gcr.io/PROJECT_ID/visit-count \ --platform managed \ --allow-unauthenticated \ --region REGION \ --network NETWORK \ --subnet SUBNET \ --set-env-vars REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
其中:
如果您使用的是无服务器 VPC 访问通道连接器,请运行以下命令:
gcloud run deploy \ --image gcr.io/PROJECT_ID/visit-count \ --platform managed \ --allow-unauthenticated \ --region REGION \ --vpc-connector CONNECTOR_NAME \ --set-env-vars REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
其中:
PROJECT_ID
是 Google Cloud 项目 ID。REGION
是无服务器 VPC 访问通道连接器和 Redis 实例所在的地区。CONNECTOR_NAME
是连接器的名称。REDIS_IP
和REDIS_PORT
是 Redis 实例的 IP 地址和端口号。
部署成功完成后,该命令行会显示 Cloud Run 服务的网址。在网络浏览器中(或使用 curl
等工具)访问此网址,就会看到每次访问服务时 Redis 实例上的计数都会增加。