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 インスタンスのカウントは、アプリにアクセスされるたびにインクリメントされます。