您可以使用 无服务器 VPC 访问通道。
设置
如果您已安装 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 函数
使用 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
请求。