このトピックでは、新しい commit があるときに Cloud Source Repositories に格納されているアプリケーションを App Engine に自動的にデプロイする方法について説明します。
始める前に
-
リポジトリの作成クイックスタートの手順を完了します。
このクイックスタートを完了すると、App Engine にデプロイできるアプリケーションが作成されます。
-
次の API を有効にします。
Cloud Build サービス アカウントに App Engine へのアクセス権を付与する
Cloud Build は、サービス アカウントを使用してコードをデプロイします。このアカウントのデフォルトの権限では、App Engine へのデプロイなど、特定のアクションは許可されていません。
Cloud Build サービス アカウントに追加の IAM の役割を付与することで、サービス アカウントで App Engine にデプロイできるようになります。
Cloud Build サービス アカウントに App Engine へのアクセス権を付与するには:
Console で [IAM] ページを開きます
プロジェクトを選択し、[続行] をクリックします。
メンバーリストで、
[PROJECT_NUMBER]@cloudbuild.gserviceaccount.com
という名前の Cloud Build サービス アカウントを探します。ここでの [PROJECT_NUMBER] は GCP プロジェクトのプロジェクト番号です。その行の鉛筆アイコンをクリックします。
[別の役割を追加] をクリックします。
[役割の選択] プルダウン メニューから [App Engine] を選択し、[App Engine 管理者] を選択します。
[保存] をクリックします。
アプリケーションをデプロイする
ターミナル ウィンドウから、リポジトリを格納するディレクトリに移動します。
cd hello-world
サンプル アプリケーションをデプロイします。
gcloud app deploy app.yaml
アプリケーションが実行中であることを確認します。
gcloud app browse
ブラウザのウィンドウに次のように表示されます。
Hello world!
cloudbuild.yaml ファイルを作成する
ターミナル ウィンドウから、リポジトリを格納するディレクトリに移動します。
cd hello-world
テキスト エディタを使用して、
cloudbuild.yaml
という名前のファイルを作成し、次のコードを貼り付けます。steps: - name: "gcr.io/cloud-builders/gcloud" args: ["app", "deploy"] timeout: "1600s"
リポジトリに cloudbuild.yaml ファイルを追加する
リポジトリにファイルを追加します。
git add .
ファイルを commit します。
git commit -m "Add cloudbuild.yaml file"
git push
コマンドを使用してローカル Git リポジトリの内容を Cloud Source Repositories に追加します。git push origin master
ビルドトリガーを作成する
Google Cloud Platform Console で Cloud Build ページを開きます。
プロジェクトを選択し、[開く] をクリックします。
[トリガーを作成] をクリックします。
[Cloud Source Repositories のリポジトリ] を選択します。
使用可能なリポジトリのリストから
hello-world
リポジトリを選択して、[続行] をクリックします。[名前] ボックスに次のように入力します。
App Engine Test
[トリガーのタイプ] で [ブランチ] を選択します。
[ビルド構成] で、[cloudbuild.yaml] を選択します。
[cloudbuild.yaml の場所] ボックスに、次のように入力します。
/cloudbuild.yaml
[トリガーを作成] をクリックします。
アプリケーションに変更を push する
ターミナル ウィンドウから、テキスト エディタを使用して
main.py
ファイルを次のように更新します。#!/usr/bin/env python import webapp2 class MainHandler(webapp2.RequestHandler): def get(self): self.response.write('I update automatically!') app = webapp2.WSGIApplication([ ('/', MainHandler) ], debug=True)
Git にファイルを追加します。
git add .
ファイルを commit します。
git commit -m "Update app to demonstrate build triggers"
git push
コマンドを使用してローカル Git リポジトリの内容を Cloud Source Repositories に追加します。git push origin master
作成中のビルドを表示する
Google Cloud Platform Console で [ビルドトリガー] ページを開きます。
プロジェクトを選択し、[開く] をクリックします。
左側のナビゲーションで [ビルド履歴] をクリックします。
すべてのビルドのリストが開きます。一番上に、変更を Cloud Source Repositories に push した後に開始されたビルドを表す新しいエントリが表示されます。ビルドの準備ができると、ビルドエントリの横に緑色のチェックマークが表示されます。
アプリケーションを再テストする
ターミナル ウィンドウからアプリケーションを開きます。
gcloud app browse
ブラウザ ウィンドウに次のように表示されます。
I update automatically!
クリーンアップ
このクイックスタートで使用したリソースについて GCP アカウントに課金されないようにする手順は次のとおりです。
ビルドトリガーを削除する
Google Cloud Platform Console で [ビルドトリガー] ページを開きます。
プロジェクトを選択し、[開く] をクリックします。
作成したトリガーを見つけます。
削除するトリガーの横にあるその他アイコン
をクリックします。
[削除] を選択します。
リポジトリを削除する
Cloud Source Repositories の [すべてのリポジトリ] ビューを開きます。
リポジトリにカーソルを合わせて、歯車ボタンをクリックします。
[全般設定] 画面が開きます。
[このリポジトリを削除] をクリックします。
リポジトリの削除画面が開きます。
削除するリポジトリの名前を入力します。
[削除] をクリックします。
次のステップ
- Cloud Build の詳細を確認する