ダイレクト VPC 下り(外向き)を使用すると、Cloud Run functions から Redis インスタンスに接続できます。
設定
Google Cloud CLI をインストール済みで Redis インスタンスを作成済みの場合は、次の手順をスキップできます。
gcloud CLI をインストールして初期化します。
gcloud init
クイックスタート ガイドの手順に沿って Redis インスタンスを作成します。Redis インスタンスのゾーン、IP アドレス、ポート番号をメモしておきます。
構成用に VPC ネットワークの下り(外向き)を準備する
Redis インスタンスに接続するには、Cloud Run functions が Redis インスタンスの承認済み VPC ネットワークにアクセスできる必要があります。
このネットワークの名前を確認するには、次のコマンドを実行します。
gcloud redis instances describe INSTANCE_ID --region REGION --format "value(authorizedNetwork)"
ネットワーク名をメモしておきます。
サンプル関数
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 カウンタをインクリメントします。
Go
この関数は github.com/gomodule/redigo/redis
クライアントを使用します。
Node.js
この関数は redis
モジュールを使用します。
Python
この関数は redis-py
パッケージを使用します。
サンプルを Cloud Run functions にデプロイする
関数をデプロイするには:
Dockerfile
をソース ディレクトリにコピーします。cp cloud_run_deployment/Dockerfile .
次のコマンドを実行して、Cloud Build を使用してコンテナ イメージをビルドします。
gcloud builds submit --tag gcr.io/PROJECT_ID/visit-count
次のコマンドを実行して、コンテナを Cloud Run にデプロイします。
gcloud run deploy \ --image gcr.io/PROJECT_ID/visit-count \ --allow-unauthenticated \ --region REGION \ --network NETWORK \ --subnet SUBNET \ --set-env-vars REDISHOST=REDIS_IP,REDISPORT=REDIS_PORT
ここで
関数のデプロイが完了したら、関数の URL を取得します。
gcloud run services describe visit-count \ --region=REGION
GET
リクエストを URL に送信することで、関数をトリガーするたびにカウンタが増加します。