App Engine へのデプロイ

App Engine にデプロイするためのアプリケーションのコンテナ イメージと依存関係を Artifact Registry に保存します。

  • Node.js と Python アプリケーションで、Artifact Registry に依存関係を宣言します。
  • アプリケーションを App Engine スタンダード環境に直接デプロイするか、Cloud Build を使用して App Engine フレキシブル環境にコンテナ化してデプロイする。
  • コンテナ イメージを Artifact Registry Docker リポジトリに保存し、それらを App Engine フレキシブル環境にデプロイします。

必要な権限

App Engine フレキシブル環境
App Engine フレキシブル環境と Artifact Registry の略が同じプロジェクトにある場合、App Engine のデフォルトのサービス アカウントにはリポジトリからコンテナを pull する権限があります。
Cloud Build を使用してアプリケーションをコンテナ化して Artifact Registry に保存している場合は、Cloud Build サービス アカウントに Artifact Registry 書き込みロールを付与します。
App Engine スタンダード環境:
App Engine スタンダード環境では、Cloud Build サービス アカウントを使用して、Artifact Registry に格納されている依存関係の統合を含む、アプリケーションのビルドとデプロイを行います。
  • App Engine と Artifact Registry が同じ Google Cloud プロジェクトにある場合、サービス アカウントにはリポジトリからダウンロードするために必要な権限が与えられます。
  • App Engine と Artifact Registry が異なるプロジェクトにある場合、サービス アカウントへのアクセス権をリポジトリに付与する必要があります。
  • 依存関係をダウンロードするための読み取り専用アクセス権を提供するには、Cloud Build サービス アカウントに Artifact Registry 読み取りのロールを付与します。
  • Cloud Build を使用してアーティファクトをリポジトリにアップロードする場合は、Artifact Registry 書き込みロールを Cloud Build サービス アカウントに付与します。

App Engine フレキシブル環境へのデプロイ

Google Cloud CLI を使用して、Artifact Registry がホストするイメージを App Engine にデプロイできます。

  1. アプリの App Engine 構成ファイルを作成します。
  2. Docker イメージをビルドし、そのイメージをリポジトリに push します。Cloud Build を使用すると、コンテナをビルドしてリポジトリに push できます。
  3. 次のコマンドを実行して、イメージを App Engine にデプロイします。

    gcloud app deploy --image-url=LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE:TAG
    

    ここで

    • LOCATION は、リポジトリのリージョンまたはマルチリージョンのロケーションです。
    • PROJECT は、リポジトリを含むプロジェクトの ID です。プロジェクト ID にコロン(:)が含まれている場合は、ドメインをスコープとするプロジェクトをご覧ください。
    • REPOSITORY は、イメージが保存されるリポジトリの名前です。
    • IMAGE は、リポジトリ内のイメージの名前です。
    • TAG は、pull するイメージ バージョンのタグです。

    例:

    gcloud app deploy --image-url=us-central1-docker.pkg.dev/my-project/my-repo/my-image:1.0
    

依存関係へのアクセスを構成する

スタンダード環境のアプリケーションについては、npmPython の構成手順を App Engine スタンダード環境のドキュメントをご覧ください。

Cloud Build で実行するビルドに依存関係を含めるには、Cloud Build との統合をご覧ください。