Cloud Build を使用して App Engine のデプロイを自動化する

このクイックスタートでは、新しい commit の後に Cloud Source Repositories に保存されたアプリを App Engine に自動的にデプロイする方法を説明します。

始める前に

  1. Cloud Source Repositories でコード リポジトリを作成するの手順を完了します。

    このクイックスタートを完了すると、App Engine にデプロイ可能なアプリが作成されます。

  2. App Engine Admin, Cloud Build API を有効にします。

    API を有効にする

Cloud Build サービス アカウントに App Engine へのアクセス権を付与する

Cloud Build は、サービス アカウントを使用してコードをデプロイします。このアカウントのデフォルトの権限では、App Engine へのデプロイなど、特定の操作が許可されません。

サービス アカウントを有効にして App Engine にデプロイするには、アカウントに追加の Identity and Access Management(IAM)役割を付与します。

  1. Google Cloud Console で、Cloud Build の [設定] ページを開きます。

    Cloud Build 設定ページを開く

    [サービス アカウント権限] ページが表示されます。

    [サービス アカウント権限] ページ。

  2. App Engine 管理者役割のステータスを「有効」に設定します。

アプリをデプロイする

  1. ターミナル ウィンドウで、リポジトリを含むディレクトリに移動します。

    cd hello-world
    
  2. サンプルアプリをデプロイします。

    gcloud app deploy app.yaml
    
  3. アプリが実行されていることを確認します。

    gcloud app browse
    

    アプリの実行中、「Hello, World!」というメッセージがブラウザに表示されます。

cloudbuild.yaml ファイルを作成する

  1. ターミナル ウィンドウで、リポジトリを含むディレクトリに移動します。

    cd hello-world
    
  2. テキスト エディタで cloudbuild.yaml という名前のファイルを作成し、次の構成情報を貼り付けます。

    steps:
    - name: "gcr.io/cloud-builders/gcloud"
      args: ["app", "deploy"]
    timeout: "1600s"
    

リポジトリに cloudbuild.yaml ファイルを追加する

  1. cloudbuild.yaml をリポジトリに追加します。

    git add .
    
  2. このアクションの履歴を記述したコメントをファイルに追加し、commit します。

    git commit -m "Add cloudbuild.yaml file"
    
  3. git push コマンドを使用して、ローカル Git リポジトリの内容を Cloud Source Repositories に追加します。

    git push origin master
    

ビルドトリガーを作成する

  1. GCP Console で、Cloud Build の [トリガー] ページを開きます。

    [トリガー] ページを開く

  2. Google Cloud プロジェクトが選択されていない場合は、[プロジェクトを選択] をクリックして、Google Cloud プロジェクトの名前をクリックします。

  3. [トリガーを作成] をクリックします。

    [トリガーの作成] ページが開きます。

  4. 次のオプションを入力します。

    • [名前] フィールドに app-engine-test と入力します。
    • [イベント] で [ブランチに push する] を選択します。
    • [ソース] で、[リポジトリ] として hello-world を選択し、[ブランチ] として ^master$ を選択します。
    • [構成] で [Cloud Build 構成ファイル(YAML または JSON)] を選択します。
    • [Cloud Build 構成ファイルの場所] フィールドで、/ の後に「cloudbuild.yaml」と入力します。
  5. [作成] をクリックして、ビルドトリガーを保存します。

アプリに変更を push する

  1. ターミナル ウィンドウで、テキスト エディタを使用して 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)
    
  2. ファイルを Git に追加します。

    git add .
    
  3. このアクションの履歴を記述したコメントをファイルに追加し、commit します。

    git commit -m "Update app to demonstrate build triggers"
    
  4. git push コマンドを使用して、ローカル Git リポジトリの内容を Cloud Source Repositories に追加します。

    git push origin master
    

作成中のビルドを表示する

  1. GCP Console で、Cloud Build の [トリガー] ページを開きます。

    [トリガー] ページを開く

  2. Google Cloud プロジェクトが選択されていない場合は、[プロジェクトを選択] をクリックして、Google Cloud プロジェクトの名前をクリックします。

  3. [履歴] をクリックします。

    すべてのビルドのリストが開きます。一番上に、変更を Cloud Source Repositories に push した後に開始されたビルドを表す新しいエントリが表示されます。ビルドの準備ができると、ビルドエントリの横に緑色のチェックマークが表示されます。

アプリを再度テストする

ターミナル ウィンドウでアプリを開きます。

gcloud app browse

I update automatically! というメッセージがブラウザに表示されます。

クリーンアップ

このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。

ビルドトリガーを削除する

  1. GCP Console で、Cloud Build の [トリガー] ページを開きます。

    [トリガー] ページを開く

  2. Google Cloud プロジェクトが選択されていない場合は、[プロジェクトを選択] をクリックして、Google Cloud プロジェクトの名前をクリックします。

  3. 削除するトリガーと同じ行で、[その他] をクリックし、[削除]をクリックします。

リポジトリを削除する

  1. GCP Console で、Cloud Source Repositories の [すべてのリポジトリ] ページを開きます。

    Cloud Source Repositories を開く

  2. 削除するリポジトリにカーソルを合わせ、[設定] をクリックします。

    [全般設定] ページが開きます。

  3. [このリポジトリを削除] をクリックします。

    [リポジトリの削除] ダイアログが開きます。

  4. 削除するリポジトリの名前を入力します。

  5. [削除] をクリックします。

次のステップ