リージョン ID
REGION_ID
は、アプリの作成時に選択したリージョンに基づいて Google が割り当てる省略形のコードです。一部のリージョン ID は、一般的に使用されている国や州のコードと類似しているように見える場合がありますが、このコードは国または州に対応するものではありません。2020 年 2 月以降に作成されたアプリの場合、REGION_ID.r
が App Engine の URL に含まれています。この日付より前に作成されたアプリの場合、URL のリージョン ID は省略可能です。
詳しくは、リージョン ID をご覧ください。
アプリケーションをローカルで実行し、App Engine にデプロイしてテストする方法を説明します。
ローカルでの実行
デプロイ前にアプリケーションの機能をテストするには、普段使用している開発ツールを使用して、アプリケーションをローカル環境で実行します。例: npm start
アプリケーションをデプロイする前に
アプリケーションをデプロイする前に、次のことを確認してください。
- Cloud プロジェクトのオーナーが App Engine を有効にしていること。
- ユーザー アカウントに必要な権限が含まれていること。
アプリケーションのデプロイ
gcloud app deploy
コマンドを使用して、アプリケーションを App Engine にデプロイします。
デプロイ中に、Cloud Build サービスが App Engine スタンダード環境で実行するアプリケーションのコンテナ イメージを作成します。ビルドはアプリのリージョンに作成されます。詳細は、ビルドイメージの管理をご覧ください。
プログラムによってアプリをデプロイするには、Admin API を使用します。
サービスのデプロイ
アプリケーションを App Engine にデプロイするには、アプリケーションのサービスの各バージョンと、それぞれの構成ファイルをデプロイします。
アプリケーションのサービスのバージョンをデプロイするには、サービスの app.yaml
ファイルがあるディレクトリから次のコマンドを実行します。
gcloud app deploy
このコマンドでファイルを指定しないと、現在のディレクトリにある app.yaml
ファイルのみがデプロイされます。デフォルトで、deploy
コマンドは、デプロイしたバージョンの一意の ID を生成します。そのバージョンを Google Cloud CLI で使用するように構成した Google Cloud プロジェクトにデプロイし、すべてのトラフィックを新しいバージョンに転送します。
特定のファイルを対象にするか、追加のパラメータを指定すると、コマンドのデフォルトの動作を変更できます。
- サービスの他の構成ファイルをデプロイするには、各ファイルを個別にターゲットとして指定してデプロイする必要があります。例:
gcloud app deploy cron.yaml gcloud app deploy dispatch.yaml gcloud app deploy index.yaml
- 独自のバージョン ID を指定するには、
--version
フラグを使用します。 - トラフィックが新しいバージョンに自動的にルーティングされないようにするには、
--no-promote
フラグを使用します。 - 特定の Google Cloud プロジェクトにデプロイするには、
--project
フラグを使用します。
たとえば、app.yaml
ファイルで定義されているサービスを特定の Google Cloud プロジェクトにデプロイし、独自のバージョン ID を割り当て、トラフィックが新しいバージョンにルーティングされないようにするには、次のコマンドを実行します。
gcloud app deploy --project PROJECT_ID --version VERSION_ID --no-promote
このコマンドの詳細については、gcloud app deploy
リファレンスをご覧ください。
複数のサービスのデプロイ
アプリケーションを構成する複数のサービスをデプロイまたは更新する場合にも、同じデプロイ コマンドを使用します。
複数のサービスをデプロイする場合は、各サービスの app.yaml
ファイルを個別にデプロイします。次のように、1 つの gcloud app deploy
コマンドで、複数のファイルを指定できます。
gcloud app deploy service1/app.yaml service2/app.yaml
複数のサービスをデプロイするための要件
- 最初にアプリケーションのバージョンの 1 つを
default
サービスにデプロイする必要があります。これで、後続のサービスを作成してデプロイできるようになります。 - 各サービスの ID は、対応する
app.yaml
構成ファイルで指定する必要があります。サービス ID を指定するには、各構成ファイルにservice
要素の定義を追加します。この要素の定義が構成ファイル内にないと、デフォルトでバージョンのデプロイ先はdefault
サービスとなります。
ビルドログの表示
Cloud Build がストリーミングしたビルドとデプロイのログは、Google Cloud コンソールの Cloud Build 履歴セクションで確認できます。アプリのリージョンのビルドを表示するには、ページ上部の [リージョン] プルダウン メニューを使用して、フィルタするリージョンを選択します。
ファイルの無視
.gcloudignore
ファイルを使用すると、サービスをデプロイするときに App Engine にアップロードしないファイルとディレクトリを指定できます。これは、デプロイ時にアップロードする必要のないビルド アーティファクトやその他のファイルを無視する場合に便利です。
ビルドイメージの管理
新しいバージョンをデプロイするたびに、Cloud Build サービスによってコンテナ イメージが作成されます。このコンテナ イメージは、アプリのリージョンでビルドされ、App Engine スタンダード環境で動作します。
作成されたコンテナ イメージは、Container Registry の app-engine-tmp/app
フォルダに保存されます。これらのイメージをダウンロードして、任意の場所に保存できます。また、別の場所で実行することもできます。デプロイが完了したコンテナ イメージは、App Engine ではもう必要でなくなります。なお、不要になったイメージは自動的に削除されないので、保存容量の上限に達する前に削除するとよいでしょう。Container Registry 内のイメージを管理する方法については、Container Registry のドキュメントをご覧ください。
アプリケーションの表示
アプリケーションを App Engine にデプロイした後、次のコマンドを実行してブラウザを起動できます。https://PROJECT_ID.REGION_ID.r.appspot.com
にアクセスすると、アプリケーションが表示されます。
gcloud app browse
トラフィック移行前の App Engine でのテスト
新しいバージョンを構成してトラフィックを受信する前に、App Engine でテストを行うことができます。たとえば、default
サービスの新しいバージョンをテストする手順は次のとおりです。
新しいバージョンをデプロイしますが、トラフィックが新しいバージョンに自動的にルーティングされないようにするには、次のコマンドを実行します。
gcloud app deploy --no-promote
次の URL に移動して、新しいバージョンにアクセスします。
https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com
これで、新しいバージョンを App Engine ランタイム環境でテストできるようになりました。ログを確認することでアプリケーションをデバッグできます。詳細については、アプリケーション ログの書き込みをご覧ください。
App Engine は、
https://PROJECT_ID.REGION_ID.r.appspot.com
に送信されたリクエストを、トラフィックを受信するように構成済みのバージョンにルーティングします。トラフィックが新しいバージョンに送信されるようにするには、Google Cloud コンソールでトラフィックを移行します。
デプロイしたバージョンを選択して、[トラフィックを移行] をクリックします。
同じ手順で他のサービスの新しいバージョンをテストできます。この場合、上記の URL の default
をサービスの名前に置き換えます。
https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com
特定のサービスとバージョンをターゲットにする方法については、リクエストのルーティング方法をご覧ください。
ビルド環境変数の使用
buildpacks をサポートするランタイム用のビルド環境変数を設定することもできます。
ビルド環境変数は、buildpacks に構成情報を渡すことができるアプリと一緒にデプロイされる Key-Value ペアです。たとえば、コンパイラ オプションをカスタマイズできます。こうしたビルド環境変数は、app.yaml
ファイルの build_env_variables
フィールドを構成することで追加や削除できます。