您可以使用無伺服器虛擬私有雲存取,從 Cloud Run 函式連線至 Redis 執行個體。
設定
如果您已安裝 Google Cloud CLI 並建立 Redis 執行個體,可以略過這些步驟。
安裝 gcloud CLI 並初始化:
gcloud init
按照快速入門指南中的說明建立 Redis 執行個體。請記下 Redis 執行個體的區域、IP 位址和通訊埠。
設定無伺服器虛擬私人雲端存取
如要從 Cloud Run 函式連線至 Redis 執行個體授權的虛擬私有雲網路,您必須設定無伺服器虛擬私有雲存取。
執行下列指令,找出 Redis 執行個體的授權網路:
gcloud redis instances describe INSTANCE_ID --region REGION
請按照「建立連接器」一節中的操作說明,建立無伺服器虛擬私有雲存取連接器。請務必在要部署函式的地區建立連接器,並確認連接器已附加至 Redis 執行個體的授權虛擬私有雲網路。請記住連接器名稱。
範例函式
本範例函式會從 Cloud Run 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 Run 函式
使用 Google Cloud CLI 部署函式:
Go
gcloud run deploy visit-count \ --region=REGION \ --source=. \ --base-image=BASE_IMAGE \ --function=VisitCount \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \ --set-env-vars=REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
Node.js
gcloud run deploy visit-count \ --region=REGION \ --source=. \ --base-image=BASE_IMAGE \ --entry-point=visitCount \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \ --set-env-vars=REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
Python
gcloud run deploy visit-count \ --region=REGION \ --source=. \ --base-image=BASE_IMAGE \ --function=visit_count \ --vpc-connector=projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME \ --set-env-vars=REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
取代:
REGION
,並將其替換為要部署函式的地區。BASE_IMAGE
,例如go116
、nodejs16
或python310
。詳情請參閱「支援的語言執行階段和基礎映像檔」。- 將
PROJECT_ID
替換為專案 ID。 Google Cloud CONNECTOR_NAME
改為您的連接器名稱。- 將
REDIS_IP
和REDIS_PORT
替換為 Redis 執行個體的 IP 位址和通訊埠編號。
函式部署完成後,請擷取函式的網址:
gcloud run services describe visit-count \ --region=REGION \
每次傳送 GET
要求至函式的網址,您都會看到計數器增加。