使用 Cloud Build 自動化部署 App Engine 快速入門

本主題說明如何在有新的修訂版本時將儲存於 Cloud Source Repositories 的應用程式自動部署至 App Engine。

事前準備

  1. 完成建立存放區快速入門的步驟。

    完成快速入門後,您會有一個可部署至 App Engine 的應用程式。

  2. 啟用下列 API:

將 App Engine 存取權授予 Cloud Build 服務帳戶

Cloud Build 會使用服務帳戶部署您的程式碼。此帳戶的預設權限不允許特定動作,例如部署至 App Engine

您可以將帳戶其他 IAM 角色授予 Cloud Build 服務帳戶,以讓服務帳戶部署至 App Engine。

將 App Engine 存取權授予 Cloud Build 服務帳戶

  1. 在主控台開啟 IAM 頁面

    開啟 IAM 頁面

  2. 選取您的專案並點選 [Continue] (繼續)

  3. 在成員清單中尋找名為 [PROJECT_NUMBER]@cloudbuild.gserviceaccount.com 的 Cloud Build 服務帳戶,其中 [PROJECT_NUMBER] 是 GCP 專案的專案編號。

  4. 按一下該列的鉛筆圖示。

  5. 按一下 [Add another role] (新增其他角色)

  6. 從 [Select a role] (選取角色) 下拉式選單選取 [App Engine],接著選取 [App Engine Admin] (App Engine 管理員)

  7. 按一下 [Save] (儲存)

部署應用程式

  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. 提交檔案。

    git commit -m "Add cloudbuild.yaml file"
    
  3. 使用 git push 指令將本機 Git 存放區的內容新增至 Cloud Source Repositories:

    git push origin master
    

建立版本觸發條件

  1. 在 Google Cloud Platform 主控台開啟「Cloud Build」頁面。

    開啟 Cloud Build 頁面

  2. 選取您的專案並按一下 [Open] (開啟)

  3. 按一下 [Create trigger] (建立觸發條件)

  4. 選取 [Cloud Source Repository]

  5. 從可用存放區清單選取 hello-world 存放區,然後按一下 [Continue] (繼續)

  6. 在 [Name] (名稱) 方塊中輸入:

    App Engine Test
    
  7. 在 [Trigger type] (觸發條件類型) 下,選取 [Branch] (分支版本)

  8. 在 [Build Configuration] (版本設定) 下,選取 [cloudbuild.yaml]

  9. 在 [cloudbuild.yaml location] (cloudbuild.yaml 位置) 方塊中輸入:

    /cloudbuild.yaml
    
  10. 按一下 [Create trigger] (建立觸發條件)

推送變更至應用程式

  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. 提交檔案。

    git commit -m "Update app to demonstrate build triggers"
    
  4. 使用 git push 指令將本機 Git 存放區的內容新增至 Cloud Source Repositories:

    git push origin master
    

檢視進行中的版本

  1. 在 Google Cloud Platform 主控台開啟「版本觸發條件」頁面。

    開啟「版本觸發條件」頁面

  2. 選取您的專案並按一下 [Open] (開啟)

  3. 在左側導覽列中,按一下 [Build History] (版本記錄)

隨即會開啟所有版本的清單。頂端是新項目,代表在您將變更推送至 Cloud Source Repositories 之後開始的版本。版本就緒時,版本項目旁邊會出現一個綠色勾號。

重新測試應用程式

從終端機視窗開啟應用程式:

gcloud app browse

瀏覽器視窗現在會顯示:

I update automatically!

清除

如何避免系統向您的 GCP 帳戶收取您在本快速入門中所用資源的相關費用:

刪除版本觸發條件

  1. 在 Google Cloud Platform 主控台開啟「版本觸發條件」頁面。

    開啟「版本觸發條件」頁面

  2. 選取您的專案並按一下 [Open] (開啟)

  3. 找出您建立的觸發條件。

  4. 在您想要刪除的觸發條件旁按一下 [More] (更多) 按鈕 [More] (更多) 按鈕

  5. 選取 [Delete] (刪除)

刪除存放區

  1. 開啟 Cloud Source Repositories 的「所有存放區」檢視畫面:

    開啟 Cloud Source Repositories

  2. 將滑鼠游標移至存放區並按一下齒輪按鈕。

    此時會開啟一般設定畫面。

  3. 按一下 [Delete This Repository] (刪除這個存放區)

    此時會開啟「移除存放區」畫面。

  4. 輸入您想要刪除的存放區名稱。

  5. 按一下 [Delete] (刪除)

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Source Repositories