ダイレクト VPC 下り(外向き)を使用すると、Cloud Run から Redis インスタンスに接続できます。
設定
Google Cloud CLI をインストール済みで Redis インスタンスを作成済みの場合は、次の手順をスキップできます。
gcloud CLI をインストールして初期化します。
gcloud init
クイックスタート ガイドの手順に沿って Redis インスタンスを作成します。Redis インスタンスのゾーン、IP アドレス、ポート番号をメモしておきます。
構成用に VPC ネットワークの下り(外向き)を準備する
Redis インスタンスに接続するには、Cloud Run サービスが Redis インスタンスの承認済み VPC ネットワークにアクセスできる必要があります。
このネットワークの名前を確認するには、次のコマンドを実行します。
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
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
Node.js
このアプリケーションでは、redis
モジュールを使用します。
Python
このアプリケーションでは、ウェブサービスに Flask を使用し、redis-py
パッケージを使用して Redis インスタンスと通信します。
Cloud Run へのアプリケーションのデプロイ
アプリケーションをデプロイするには:
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
ここで
デプロイが正常に完了すると、コマンドラインに Cloud Run サービスの URL が表示されます。この URL をウェブブラウザでアクセス(または curl
などのツールを使用)し、サービスがアクセスされるたびに Redis インスタンスのカウントが増加することを確認します。