您可以使用直接 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 实例上的计数都会增加。