アプリケーションのテストとデプロイ

アプリケーションをローカルで実行する方法と、App Engine にデプロイしてテストする方法を説明します。

ローカルでの実行

デプロイに先立ち、アプリケーションの機能をテストするために、いつもの開発ツールを用いてローカル環境でアプリケーションを実行します。

たとえば、npm start を使います。

アプリケーションのデプロイ

gcloud app deploy コマンドで App Engine にアプリをデプロイします。

デプロイの過程で Cloud Build サービスがアプリケーションのコンテナ イメージを App Engine スタンダード環境で実行するために作成します。詳細は、ビルドイメージの管理をご覧ください。

アプリをプログラムでデプロイするには、Admin API を使用します。

始める前に

アプリケーションをデプロイする前に確認すること:

特定のサービスをデプロイする

アプリケーションを App Engine にデプロイするには、アプリケーションのサービスの各バージョンとそれぞれのサービスの構成ファイルをデプロイします。

アプリケーションのサービスの特定のバージョンをデプロイするには、サービスの app.yaml ファイルが置かれているディレクトリから次のコマンドを実行します。

gcloud app deploy

このコマンドでファイルを指定しないと、カレント ディレクトリにある app.yaml ファイルのみがデプロイされます。デフォルトで、deploy コマンドは、デプロイするバージョンの一意の ID を生成し、そのバージョンを GCP プロジェクト(gcloud ツールの対象として構成されたプロジェクト)にデプロイし、すべてのトラフィックを新しいバージョンにルーティングします。

このコマンドのデフォルトの動作を変更するには、特定のファイルをターゲットとして指定したり、追加のパラメータを指定したりします。

  • サービスの他の構成ファイルをデプロイするには、各ファイルを個別にターゲットとして指定して、デプロイする必要があります。次に例を示します。

    gcloud app deploy cron.yaml
    gcloud app deploy dispatch.yaml
    gcloud app deploy index.yaml
    
  • 独自のバージョン ID を指定するには、--version フラグを使用します。

  • トラフィックが新しいバージョンに自動的にルーティングされないようにするには、--no-promote フラグを使用します。

  • 特定の GCP プロジェクトにデプロイするには、--project フラグを使用します。

たとえば、app.yaml で定義したサービスを特定の GCP プロジェクトにデプロイし、それに独自のバージョン ID を割り当て、トラフィックが新しいバージョンにルーティングされないようにするには、次のコマンドを使用します。

gcloud app deploy --project PROJECT_ID --version VERSION_ID --no-promote

このコマンドの詳細は、gcloud app deploy リファレンスをご覧ください。

複数のサービスをデプロイする

アプリケーションを構成する複数のサービスをデプロイまたは更新する場合も同じデプロイ コマンドを使用できます。

複数のサービスをデプロイするには、各サービスの app.yaml ファイルを個別にデプロイする必要があります。次に例を示します。

gcloud app deploy service1/app.yaml
gcloud app deploy service2/app.yaml

1 つのデプロイ コマンドで複数のファイルを指定することもできます。

gcloud app deploy service1/app.yaml service2/app.yaml

複数のサービスをデプロイするための要件

  • 最初にアプリケーションの特定のバージョンを default サービスにデプロイする必要があります。これで、以降のサービスを作成してデプロイできるようになります。

  • 各サービスの ID は、対応する app.yaml 構成ファイルに指定する必要があります。サービス ID を指定するには、各構成ファイルに service 要素の定義を追加します。デフォルトでは、この要素の定義が構成ファイル内にない場合、バージョンのデプロイ先は default サービスとなります。

ファイルを無視する

.gcloudignore というファイルを使うと、サービスのデプロイ時に GCP にアップロードしないファイルやディレクトリを指定できます。これは、ビルド アーティファクトや、デプロイ時にアップロードする必要のないその他のファイルを無視する場合に便利です。

サービスのディレクトリに .gcloudignore ファイルが存在しないと、gcloud ツールはデプロイ時に自動的にデフォルトの .gcloudignore ファイルを作成します。このデフォルトのファイルの内容は次のとおりです。

.gcloudignore
.git
.gitignore
node_modules/

ここにリストしたファイルとディレクトリは GCP にアップロードされません。

.gcloudignore ファイルの構文の詳細は、gcloud リファレンスをご覧ください。

ビルドイメージを管理する

新しいバージョンをデプロイするたびに、Cloud Build サービスを使用してコンテナ イメージが作成されます。このコンテナ イメージは App Engine スタンダード環境で実行されます。

作成されたコンテナ イメージは Container Registryapp-engine フォルダに保存されます。保存用または他の場所で実行する目的で、これらのイメージをダウンロードできます。デプロイが完了したコンテナ イメージは、App Engine ではもう必要でなくなります。なお、自動的に削除されないので、保存容量の上限に達する前に不要なイメージは削除するとよいでしょう。Container Registry 内のイメージを管理する方法の詳細は、Container Registry のドキュメントをご覧ください。

アプリケーションを表示する

App Engine にデプロイしたアプリケーションを表示するには、次のコマンドでブラウザを起動し、http://YOUR_PROJECT_ID.appspot.com に移動します。

gcloud app browse

App Engine 上でのテスト

新しいバージョンでトラフィックを受信するための構成を行う前に、App Engine 上でそれをテストできます。たとえば、default サービスの新しいバージョンをテストするには、次のようにします。

  1. --no-promote フラグを指定して新しいバージョンをデプロイします。

    gcloud app deploy --no-promote
  2. 新しいバージョンにアクセスするため、次の URL に移動します。

    http://VERSION_ID.default.YOUR_PROJECT_ID.appspot.com
    

    これで、新しいバージョンを App Engine ランタイム環境でテストできます。アプリケーションのログを表示すれば、デバッグも可能です。詳細は、アプリケーション ログの書き込みをご覧ください。

    http://YOUR_PROJECT_ID.appspot.com に送信されたリクエストは、以前トラフィックを受信するように構成したバージョンにまだルーティングされるようになっています。

  3. トラフィックが新しいバージョンに送信されるようにするには、GCP Console でトラフィックを移行します。

    バージョンの管理

    デプロイしたバージョンを選択し、[トラフィックを移行] をクリックします。

同じ手順で他のサービスの新しいバージョンもテストできます。ただし、上記の URL 内の default をサービスの名前に置き換えてください。

http://VERSION_ID.SERVICE_ID.YOUR_PROJECT_ID.appspot.com

特定のサービスとバージョンをターゲットにする方法の詳細は、リクエストをルーティングする方法をご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Node.js 用 App Engine スタンダード環境に関するドキュメント