儲存及查看建構作業記錄

設定建構設定檔,將建構記錄儲存在記錄檔 bucket 中,以便使用 Cloud Logging 和 Cloud Storage 工具分組及分析記錄。設定建構記錄檔儲存空間後,您就能進一步控管記錄檔的儲存和分析作業。如果未定義建構記錄儲存設定,Cloud Build 會將記錄儲存在 Google Cloud擁有的 bucket 中,建構記錄分析選項較少。

本頁說明如何將建構記錄儲存在不同類型的 bucket 中,以及如何查看及刪存的記錄。

事前準備

請務必熟悉建構設定檔選項,瞭解如何設定建構記錄儲存空間,以及值區擁有權對記錄存取權的影響。詳情請參閱「建構記錄儲存空間選項」。

將建構作業記錄檔儲存在使用者建立的 bucket 中

使用者建立的值區可讓您進一步控管值區的管理和設定。

將建構記錄儲存在使用者建立的 Cloud Logging bucket 中

使用者建立的記錄檔值區可讓您調整所儲存建構記錄的保留期限。如要將建構記錄儲存在 Logging 中使用者建立的 bucket,請按照下列步驟操作:

授予 IAM 權限

如要取得將建構記錄儲存在使用者建立的 Cloud Logging 記錄檔 bucket 中所需的權限,請要求系統管理員在您專案的帳戶或服務帳戶中,授予您「記錄檔設定寫入者」 (roles/logging.configWriter) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

設定記錄 bucket

  1. 建立 bucket,並為「保留期限」欄位設定值。

  2. 建立接收器 ,將建構記錄檔傳送至新 bucket:

    1. 為接收器的建構納入篩選器輸入下列內容:

      logName = "projects/PROJECT_ID/logs/cloudbuild"
      

      PROJECT-ID 替換為 Google Cloud 專案 ID。

    2. (選用) 如要避免建構記錄傳送至預設的 Logging bucket,請按照「停止在記錄檔 bucket 中儲存記錄檔項目」一文中的範例操作。

將建構記錄檔儲存在使用者建立的 Cloud Storage bucket 中

如要將建構記錄檔儲存在使用者建立的 Cloud Storage bucket 中,請按照下列步驟操作:

授予 IAM 權限

如果 Cloud Storage 值區和 Cloud Build 位於 Google Cloud 同一個專案,且您使用的是 Cloud Build 舊版服務帳戶,則 Cloud Build 舊版服務帳戶預設會具備必要的 IAM 權限。您不必授予任何額外權限。如果沒有,請按照下列步驟操作:

如要取得權限,將建構記錄儲存在使用者建立的 Cloud Storage bucket 中,請要求管理員在用於建構的服務帳戶中,授予您「Storage 管理員」(roles/storage.admin) IAM 角色。 如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

設定 Cloud Storage bucket

  1. 在 Google Cloud 專案中,建立 Cloud Storage bucket,並將資料保留政策設為不保留,以儲存建構記錄。

  2. 在建構設定檔中,新增指向您建立的 Cloud Storage 值區的 logsBucket 欄位,用來儲存建構記錄。下列範例建構設定檔包含建構容器映像檔的操作說明,並將建構記錄儲存在名為 mylogsbucket 的 bucket 中:

    YAML

        steps:
        - name: 'gcr.io/cloud-builders/docker'
          args: [ 'build', '-t', 'us-east1-docker.pkg.dev/myproject/myimage', '.' ]
        logsBucket: 'gs://mylogsbucket'
        options:
          logging: GCS_ONLY
    

    JSON

        {
          "steps": [
           {
             "name": "gcr.io/cloud-builders/docker",
             "args": [
               "build",
               "-t",
               "us-east1-docker.pkg.dev/myproject/myimage",
               "."
             ]
           }
           ],
           "logsBucket": "gs://mylogsbucket",
           "options": {
             "logging": "GCS_ONLY"
           }
        }
    
  3. 使用建構設定檔,透過指令列、API觸發條件啟動建構作業。

建構完成後,Cloud Build 會將建構記錄儲存在建構設定檔中指定的 Cloud Storage bucket。

將建構記錄儲存在特定區域的 Cloud Storage bucket 中

您可以設定建構作業,讓 Cloud Build 將建構記錄傳送至與建構作業位於相同區域的 Cloud Storage bucket (由使用者擁有)。將建構和建構記錄儲存空間值區的區域對齊,有助於您遵守資料落地規定。

授予 IAM 權限

如果 Cloud Storage 值區和 Cloud Build 位於 Google Cloud 同一個專案,且您使用 Cloud Build 舊版服務帳戶,則該服務帳戶預設會具備必要的 IAM 權限。您不必授予任何額外權限。如果沒有,請按照下列步驟操作:

如要取得權限,將建構記錄儲存在使用者擁有的特定區域 bucket 中,請要求管理員在用於建構的服務帳戶中,授予您「Storage 管理員」 (roles/storage.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

設定特定區域的 Cloud Storage bucket

  1. 在建構設定檔中,新增 defaultLogsBucketBehavior 選項並將其值設為 REGIONAL_USER_OWNED_BUCKET

    YAML

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: [ 'build', '-t', 'us-central1-docker.pkg.dev/myproject/myrepo/myimage', '.' ]
    options:
      defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
    

    JSON

    {
      "steps": [
        {
          "name": "gcr.io/cloud-builders/docker",
          "args": [
            "build",
            "-t",
            "us-central1-docker.pkg.dev/myproject/myrepo/myimage",
            "."
          ]
        }
        ],
        "options": {
          "defaultLogsBucketBehavior": "REGIONAL_USER_OWNED_BUCKET"
        }
    }
    
  2. 使用建構設定檔,透過指令列、API觸發條件啟動建構作業。

    執行建構作業時,Cloud Build 會在您執行建構作業的區域中建立新 bucket,然後將建構記錄檔儲存在這個 bucket 中。只要 REGIONAL_USER_OWNED_BUCKET 處於啟用狀態,同一專案和區域的後續建構作業就會使用現有 bucket。 這個值區屬於使用者擁有,因此您可以像設定使用者建立的值區一樣設定這個值區。

    如果您設定 REGIONAL_USER_OWNED_BUCKET 選項,並在多個區域中建立建構作業,Cloud Build 會為每個不重複的區域建立 Cloud Storage bucket。

如需對齊建構作業的區域和記錄檔 bucket,您也可以使用使用者建立的 bucket。在這種情況下,您可以選取現有的使用者建立 bucket (必須位於相同區域),也可以建立 bucket。如要建立,請按照「將建構記錄儲存在使用者建立的 bucket 中」一文中的步驟操作,並確保使用者建立的 bucket 與建構作業位於相同區域。

查看建構作業記錄

如要查看建構記錄,請按照下列步驟操作:

授予 IAM 權限

如要取得在 Cloud Storage 或 Logging 中查看建構記錄所需的權限,請要求管理員在用於建構的服務帳戶中,授予下列 IAM 角色:

  • 在使用者建立或擁有的 Cloud Storage bucket 中查看建構記錄:
    • Storage 物件檢視者 (roles/storage.objectViewer) - 想要查看建構記錄的主體
    • 記錄檔檢視存取者 (roles/logging.viewAccessor):想要查看建構記錄的主體
  • 在預設 Cloud Storage bucket 中查看建構記錄: 檢視者 (roles/viewer) - 設定建構作業的專案
  • 在 Logging 中查看建構作業記錄: 記錄檢視器 (roles/logging.viewer) - 要查看建構作業記錄的主體

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

在 Google Cloud中查看建構作業記錄

控制台

  1. 在 Google Cloud 控制台中開啟 Cloud Build 頁面。

    開啟 Cloud Build 頁面

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

  3. 在「Region」(區域) 下拉式選單中,選取建構作業的區域

  4. 在「Build history」(建構歷史記錄) 頁面中,選取特定建構。

  5. 在「建構詳細資料」頁面的「步驟」下方,按一下「建構摘要」即可查看整個建構作業的建構記錄,或是選取建構步驟來查看該步驟的建構記錄。

  6. 如果建構記錄檔儲存在 Cloud Logging 中,請在「建構記錄」面板中,按一下 圖示,即可在 Logs Explorer 中查看記錄。

gcloud

執行 gcloud builds log 指令,其中 build-id 是您要取得建構記錄的建構 ID。執行 gcloud builds submit 時,建構 ID 會顯示在建構提交程序結束時,執行 gcloud builds list 時則會顯示在 ID 欄中。

gcloud builds log build-id

在 GitHub 和 GitHub Enterprise 中查看建構記錄

如果您使用 gcloud CLI 或 Cloud Build API 建立 GitHubGitHub Enterprise 觸發條件,並指定 --include-logs-with-status 做為選項,則可以在 GitHub 和 GitHub Enterprise 中查看建構記錄。

如要在 GitHub 和 GitHub Enterprise 中查看建構作業記錄,請按照下列步驟操作:

  1. 前往與觸發條件相關聯的存放區。

  2. 前往提交清單。

  3. 找到要查看建構記錄的修訂版本資料列。

  4. 按一下該認可所在列中的結果圖示。

    畫面上會顯示與提交內容相關的檢查清單。

  5. 找出要查看建構記錄的資料列,然後按一下「詳細資料」

    您會看到與認可相關聯的「摘要」頁面。 如果您使用 --include-logs-with-status 旗標建立觸發條件,頁面的「詳細資料」部分下方會顯示建構記錄。

刪除建構記錄和值區

如要取得刪除 Cloud Storage 中建構記錄和值區所需的權限,請要求管理員在建構作業使用的服務帳戶中,授予下列 IAM 角色:

  • 在使用者建立或擁有的 Cloud Storage 儲存空間中刪除建構記錄: Storage 管理員 (roles/storage.admin) - 刪除建構記錄的使用者或服務帳戶
  • 刪除使用者建立或擁有的 Cloud Storage bucket: Storage 管理員 (roles/storage.admin) - 刪除 bucket 的使用者或服務帳戶
  • 刪除使用者建立的記錄檔儲存空間: 記錄檔設定寫入者 (roles/logging.configWriter) - 您的專案

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

如要刪除使用者建立或擁有的 Cloud Storage bucket 中的建構記錄,請按照 Cloud Storage 說明文件中的「刪除物件」一節操作。

如要刪除使用者建立或擁有的 Cloud Storage bucket,請按照 Cloud Storage 說明文件中的「刪除 bucket」一節操作。

如要刪除使用者建立的記錄 bucket,請按照 Logging 說明文件中的「刪除 bucket」一節操作。

後續步驟