您可以使用无服务器 VPC 访问通道从 Cloud Functions 连接到 Redis 实例。您的函数必须与 Redis 实例位于同一地区。
设置
如果您已安装 Cloud SDK 且已创建 Redis 实例,则可跳过这些步骤。
安装 Cloud SDK 并进行初始化:
gcloud init
按照快速入门指南创建一个 Redis 实例。记下该 Redis 实例的地区、IP 地址和端口。
配置无服务器 VPC 访问通道
要从 Cloud Functions 连接到 Redis 实例的授权 VPC 网络,您必须设置无服务器 VPC 访问通道。
通过运行以下命令查找 Redis 实例的授权网络:
gcloud beta redis instances describe [INSTANCE_ID] --region [REGION]
按照创建连接器中的说明创建无服务器 VPC 访问通道连接器。请务必在函数和 Redis 实例所在的地区中创建连接器,并确保该连接器已挂接到 Redis 实例有权访问的 VPC 网络。记下连接器的名称。
示例函数
此示例函数从 Cloud Functions 建立与 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 Functions
使用 gcloud
命令行工具部署函数:
Go
gcloud functions deploy VisitCount \ --runtime go111 \ --trigger-http \ --region [REGION] \ --vpc-connector projects/[PROJECT_ID]/locations/[REGION]/connectors/[CONNECTOR_NAME] \ --set-env-vars REDISHOST=[REDIS_IP],REDISPORT=[REDIS_PORT]
Node.js
gcloud functions deploy visitCount \ --runtime nodejs10 \ --trigger-http \ --region [REGION] \ --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 \ --runtime python37 \ --trigger-http \ --region [REGION] \ --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]
是无服务器 VPC 访问通道连接器和 Redis 实例所在的区域。[CONNECTOR_NAME]
是连接器的名称。[REDIS_IP]
和[REDIS_PORT]
是 Redis 实例的 IP 地址和端口号。
函数部署完成后,通过向函数的网址发送 GET
请求来查看访问次数增加情况:
Go
https://[REGION]-[PROJECT_ID].cloudfunctions.net/VisitCount
Node.js
https://[REGION]-[PROJECT_ID].cloudfunctions.net/visitCount
Python
https://[REGION]-[PROJECT_ID].cloudfunctions.net/visit_count