App Engine のアプリケーションは、Redis インスタンスにアクセスするには、Redis インスタンスと同じ承認済みネットワーク上にある必要があります。
設定
Google Cloud CLI をインストール済みで Redis インスタンスを作成済みの場合は、次の手順をスキップできます。
gcloud CLI をインストールして初期化します。
gcloud initクイックスタート ガイドの手順に沿って Redis インスタンスを作成します。Redis インスタンスのゾーン、IP アドレス、ポート番号をメモしておきます。
サンプル アプリケーション
このサンプル 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 サーブレット ベースです。
Jedis ライブラリを使用します。
AppServletContextListener クラスは、長期間有効な Redis 接続プールを作成するために使用されます。
VisitCounterServlet クラスは、Redis カウンタをインクリメントするウェブ サーブレットです。
Node.js
このアプリケーションでは、redis モジュールを使用します。
Python
このアプリケーションでは、ウェブサービスに Flask を使用し、redis-py パッケージを使用して Redis インスタンスと通信します。
デプロイメントに向けたアプリケーションの準備
Redis インスタンスにアクセスするには、App Engine インスタンスが Redis インスタンスと同じネットワークにデプロイされる必要があります。また、Redis インスタンスの接続の詳細を提供する必要があります。Redis インスタンスの承認済みネットワーク、IP アドレス、ポートを確認するには、次のコマンドを実行します。
gcloud redis instances describe [INSTANCE_ID] --region [REGION]
App Engine アプリケーションを作成します。
アプリの構成を更新して、Redis インスタンスの IP アドレス、ポート、ネットワークを指定します。
Go
gae_flex_deployment/app.yamlファイルを更新します。詳細については、app.yaml によるアプリの構成をご覧ください。
Java
gae_flex_deployment/app.yamlファイルを更新して、Redis インスタンスのネットワークを指定します。src/main/resources/application.propertiesファイルを Redis インスタンスの IP アドレスとポートで更新します。アプリの構成の詳細については、app.yaml によるアプリの構成をご覧ください。
Node.js
gae_flex_deployment/app.yamlファイルを更新します。詳細については、app.yaml によるアプリの構成をご覧ください。
Python
gae_flex_deployment/app.yamlファイルを更新します。詳細については、app.yaml によるアプリの構成をご覧ください。
App Engine フレキシブル環境へのアプリケーションのデプロイ
アプリケーションをデプロイするには:
必要な構成ファイルをソース ディレクトリにコピーします。
Go
app.yamlファイルをソース ディレクトリにコピーします。cp gae_flex_deployment/app.yaml .Java
app.yamlファイルをソース ディレクトリにコピーします。mkdir -p src/main/appengine cp gae_flex_deployment/app.yaml src/main/appengine/Node.js
app.yamlファイルをソース ディレクトリにコピーします。cp gae_flex_deployment/app.yaml .Python
app.yamlファイルをソース ディレクトリにコピーします。cp gae_flex_deployment/app.yaml .deploy コマンドを実行します。
Go
gcloud app deploy登録には数分かかることがあります。
Java
mvn appengine:deploy登録には数分かかることがあります。
Node.js
gcloud app deploy登録には数分かかることがあります。
Python
gcloud app deployこれには数分かかることがあります。
デプロイが完了したら、次の URL でアプリにアクセスします。[PROJECT_ID] は実際の Google Cloud プロジェクト ID に置き換えます。
https://[PROJECT_ID].appspot.com
Redis インスタンスのカウントは、アプリにアクセスされるたびにインクリメントされます。