クイックスタート: Cloud Build による App Engine のデプロイの自動化

このトピックでは、新しい commit があるときに Cloud Source Repositories に格納されているアプリケーションを App Engine に自動的にデプロイする方法について説明します。

始める前に

  1. リポジトリの作成クイックスタートの手順を完了します。

    このクイックスタートを完了すると、App Engine にデプロイできるアプリケーションが作成されます。

  2. 次の API を有効にします。

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

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

Cloud Build サービス アカウントに追加の IAM の役割を付与することで、サービス アカウントで App Engine にデプロイできるようになります。

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

  1. Console で [IAM] ページを開きます

    [IAM] ページを開く

  2. プロジェクトを選択し、[続行] をクリックします。

  3. メンバーリストで、[PROJECT_NUMBER]@cloudbuild.gserviceaccount.com という名前の Cloud Build サービス アカウントを探します。ここでの [PROJECT_NUMBER] は GCP プロジェクトのプロジェクト番号です。

  4. その行の鉛筆アイコンをクリックします。

  5. [別の役割を追加] をクリックします。

  6. [役割の選択] プルダウン メニューから [App Engine] を選択し、[App Engine 管理者] を選択します。

  7. [保存] をクリックします。

アプリケーションをデプロイする

  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. リポジトリにファイルを追加します。

    git add .
    
  2. ファイルを commit します。

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

    git push origin master
    

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

  1. Google Cloud Platform Console で Cloud Build ページを開きます。

    [Cloud Build] ページを開く

  2. プロジェクトを選択し、[開く] をクリックします。

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

  4. [Cloud Source Repositories のリポジトリ] を選択します。

  5. 使用可能なリポジトリのリストから hello-world リポジトリを選択して、[続行] をクリックします。

  6. [名前] ボックスに次のように入力します。

    App Engine Test
    
  7. [トリガーのタイプ] で [ブランチ] を選択します。

  8. [ビルド構成] で、[cloudbuild.yaml] を選択します。

  9. [cloudbuild.yaml の場所] ボックスに、次のように入力します。

    /cloudbuild.yaml
    
  10. [トリガーを作成] をクリックします。

アプリケーションに変更を 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. Google Cloud Platform Console で [ビルドトリガー] ページを開きます。

    [ビルドトリガー] ページを開く

  2. プロジェクトを選択し、[開く] をクリックします。

  3. 左側のナビゲーションで [ビルド履歴] をクリックします。

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

アプリケーションを再テストする

ターミナル ウィンドウからアプリケーションを開きます。

gcloud app browse

ブラウザ ウィンドウに次のように表示されます。

I update automatically!

クリーンアップ

このクイックスタートで使用したリソースについて GCP アカウントに課金されないようにする手順は次のとおりです。

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

  1. Google Cloud Platform Console で [ビルドトリガー] ページを開きます。

    [ビルドトリガー] ページを開く

  2. プロジェクトを選択し、[開く] をクリックします。

  3. 作成したトリガーを見つけます。

  4. 削除するトリガーの横にあるその他アイコン 詳細ボタン をクリックします。

  5. [削除] を選択します。

リポジトリを削除する

  1. Cloud Source Repositories の [すべてのリポジトリ] ビューを開きます。

    Cloud Source Repositories を開く

  2. リポジトリにカーソルを合わせて、歯車ボタンをクリックします。

    [全般設定] 画面が開きます。

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

    リポジトリの削除画面が開きます。

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

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

次のステップ

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

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

Cloud Source Repositories