您可以使用 無伺服器虛擬私有雲存取,從 App Engine 標準環境連線到 Redis 執行個體。
設定
如果您已安裝 Google Cloud CLI 並建立 Redis 執行個體,可以略過這些步驟。
安裝 gcloud CLI 並初始化:
gcloud init
按照快速入門指南中的說明建立 Redis 執行個體。請記下 Redis 執行個體的區域、IP 位址和通訊埠。
設定無伺服器虛擬私人雲端存取
如要從 App Engine 應用程式連線至 Redis 執行個體的授權虛擬私有雲網路,您必須設定無伺服器虛擬私有雲存取。
執行下列指令,找出 Redis 執行個體的授權網路:
gcloud redis instances describe [INSTANCE_ID] --region [REGION]
請按照「建立連接器」一節中的操作說明,建立無伺服器虛擬私有雲存取連接器。請務必在與應用程式相同的地區建立連接器,並確保連接器已連結至 Redis 執行個體的授權虛擬私有雲網路。記下連接器的名稱。
應用程式範例
這個 HTTP 伺服器應用程式範例會從 App Engine 標準環境應用程式建立與 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
Java
本應用程式以 Jetty 3.1 Servlet 為基礎。
這個程式碼使用 Jedis 程式庫:
AppServletContextListener
類別用於建立長效 Redis 連線集區:
VisitCounterServlet
類別是用來遞增 Redis 計數器的 Web Servlet:
Node.js
這個應用程式會使用 redis
模組。
Python
準備應用程式以進行部署
如要存取 Redis 執行個體,App Engine 應用程式必須設定為使用無伺服器虛擬私有雲端存取連接器,且您必須提供 Redis 執行個體的連線詳細資料。
如果您尚未建立,請建立App Engine 應用程式。
更新應用程式的設定,指定無伺服器虛擬私有雲存取連接器,以及 Redis 執行個體的 IP 位址和連接埠:
Go
更新
gae_standard_deployment/app.yaml
檔案:詳情請參閱「app.yaml 設定檔」。
Java
更新
gae_standard_deployment/appengine-web.xml
檔案,指定無伺服器虛擬私有雲存取連接器:並更新
src/main/resources/application.properties
檔案,加入 Redis 執行個體的 IP 位址和通訊埠:如要進一步瞭解如何設定應用程式,請參閱 appengine-web.xml 參考資料。
Node.js
更新
gae_standard_deployment/app.yaml
檔案:詳情請參閱「app.yaml 設定檔」。
Python
更新
gae_standard_deployment/app.yaml
檔案:詳情請參閱「app.yaml 設定檔」。
將應用程式部署至 App Engine 標準環境
如要部署應用程式,請按照下列步驟操作:
將必要的設定檔複製到來源目錄:
Go
將
app.yaml
和go.mod
檔案複製到來源目錄:cp gae_standard_deployment/{app.yaml,go.mod} .
Java
將
appengine-web.xml
檔案複製到來源目錄:mkdir -p src/main/webapp/WEB-INF cp gae_standard_deployment/appengine-web.xml src/main/webapp/WEB-INF/
Node.js
將
app.yaml
檔案複製到來源目錄:cp gae_standard_deployment/app.yaml .
Python
將
app.yaml
檔案複製到來源目錄:cp gae_standard_deployment/app.yaml .
執行部署指令:
Go
gcloud app deploy
Java
mvn package appengine:stage gcloud app deploy target/appengine-staging/app.yaml
Node.js
gcloud app deploy
Python
gcloud app deploy
部署作業完成後,指令會輸出可用於存取應用程式的網址。如果您造訪這個網址,每次載入頁面時,您都會看到 Redis 例項的計數增加。