您可以透過直接虛擬私有雲輸出,從 Cloud Run 連線至 Redis 執行個體。
設定
如果您已安裝 Google Cloud CLI 並建立 Redis 執行個體,可以略過這些步驟。
安裝 gcloud CLI 並初始化:
gcloud init按照快速入門指南中的說明建立 Redis 執行個體。請記下 Redis 執行個體的區域、IP 位址和通訊埠。
準備設定虛擬私有雲網路輸出
如要連線至 Redis 執行個體,Cloud Run 服務必須有權存取 Redis 執行個體的授權虛擬私有雲網路。
如要找出這個網路的名稱,請執行下列指令:
gcloud redis instances describe INSTANCE_ID --region REGION --format "value(authorizedNetwork)"
記下網路名稱。
應用程式範例
本 HTTP 伺服器應用程式範例會從 Cloud Run 服務與 Redis 執行個體建立連線。
複製所選程式設計語言的存放區,然後前往包含範例程式碼的資料夾:
Go
git clone https://github.com/GoogleCloudPlatform/golang-samples
cd golang-samples/memorystore/redis
Java
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
cd java-docs-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@latest
應用程式範例:
Java
本應用程式以 Jetty 3.1 Servlet 為基礎。
此方法使用 Jedis 程式庫:
AppServletContextListener 類別用於建立長期 Redis 連線集區:
VisitCounterServlet 類別是會遞增 Redis 計數器的網頁 Servlet:
Node.js
這個應用程式會使用 redis 模組。以下是 package.json 範例檔案:
應用程式程式碼範例:
Python
這個應用程式使用 Flask 提供網頁服務,並使用 redis-py 套件與 Redis 執行個體通訊。
應用程式程式碼範例:
將應用程式部署至 Cloud Run
如要部署應用程式,請按照下列步驟操作:
將
Dockerfile複製到來源目錄:cp cloud_run_deployment/Dockerfile .執行下列指令,使用 Cloud Build 建構容器映像檔:
gcloud artifacts repositories create --location REPO_REGION --repository-format=docker REPO_ID gcloud builds submit --pack image=REPO_REGION-docker.pkg.dev/PROJECT_ID/REPO_ID/visit-counter:v1
執行下列指令,將容器部署至 Cloud Run:
gcloud run deploy \ --image REPO_REGION-docker.pkg.dev/PROJECT_ID/REPO_ID/visit-counter:v1 \ --allow-unauthenticated \ --region REGION \ --network NETWORK \ --subnet SUBNET \ --set-env-vars REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
其中:
部署作業順利完成後,指令列會顯示 Cloud Run 服務的網址。在網路瀏覽器中前往這個網址 (或使用 curl 等工具),每次造訪服務時,Redis 執行個體上的計數就會增加。