您可以使用无服务器 VPC 访问通道从 Cloud Run 函数连接到 Redis 实例。
设置
如果您已安装 Google Cloud CLI 且已创建 Redis 实例,则可以跳过这些步骤。
安装 gcloud CLI 并初始化:
gcloud init
按照快速入门指南创建一个 Redis 实例。记下该 Redis 实例的地区、IP 地址和端口。
配置无服务器 VPC 访问通道
如需从 Cloud Run 函数连接到 Redis 实例的已获授权的 VPC 网络,您必须设置无服务器 VPC 访问通道。
通过运行以下命令查找 Redis 实例的授权网络:
gcloud redis instances describe INSTANCE_ID --region REGION
按照创建连接器中的说明创建无服务器 VPC 访问通道连接器。请务必在要部署函数的区域中创建连接器,并确保该连接器已连接到 Redis 实例的授权 VPC 网络。记下连接器的名称。
示例函数
此示例函数从 Cloud Run 函数建立与 Redis 实例的连接。
克隆您所需编程语言的代码库,并转到包含示例代码的文件夹:
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples
cd golang-samples/functions/memorystore/redis
Node.js
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
cd nodejs-docs-samples/functions/memorystore/redis
Python
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
cd python-docs-samples/functions/memorystore/redis
每次触发函数时,示例代码都会增加一个 Redis 计数器:
将示例部署到 Cloud Run functions
使用 Google Cloud CLI 部署函数:
Go
gcloud functions deploy visit-count \ --gen2 \ --region=REGION \ --runtime=go116 \ --source=. \ --entry-point=VisitCount \ --trigger-http \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \ --set-env-vars=REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
Node.js
gcloud functions deploy visit-count \ --gen2 \ --region=REGION \ --runtime=nodejs16 \ --source=. \ --entry-point=visitCount \ --trigger-http \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \ --set-env-vars=REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
Python
gcloud functions deploy visit-count \ --gen2 \ --region=REGION \ --runtime=python310 \ --source=. \ --entry-point=visit_count \ --trigger-http \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \ --set-env-vars=REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
其中:
PROJECT_ID
是 Google Cloud 项目 ID。REGION
是您要部署函数的区域。CONNECTOR_NAME
是连接器的名称。REDIS_IP
和REDIS_PORT
是 Redis 实例的 IP 地址和端口号。
函数部署完成后,检索函数的网址:
gcloud functions describe visit-count \ --gen2 \ --region=REGION \ --format="value(serviceConfig.uri)"
您可以通过向函数的网址发送 GET
请求,查看每次触发函数时计数器的增加情况。