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 を使用してアーティファクトをリポジトリにアップロードする場合は、Cloud Build サービス アカウントに Artifact Registry 書き込みロールを付与します。
App Engine フレキシブル環境へのデプロイ
Google Cloud CLI を使用して、Artifact Registry がホストするイメージを App Engine にデプロイできます。
- アプリの App Engine 構成ファイルを作成します。
- Docker イメージをビルドし、そのイメージをリポジトリに push します。Cloud Build を使用すると、コンテナをビルドしてリポジトリに push できます。
次のコマンドを実行して、イメージを 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
依存関係へのアクセスを構成する
スタンダード環境のアプリケーションの場合、npm と Python の構成手順については、App Engine スタンダード環境のドキュメントをご覧ください。
Cloud Build で実行するビルドに依存関係を含めるには、Cloud Build との統合をご覧ください。