設定建構設定檔,將建構記錄儲存在記錄檔 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:
建立 bucket,並為「保留期限」欄位設定值。
建立接收器 ,將建構記錄檔傳送至新 bucket:
為接收器的建構納入篩選器輸入下列內容:
logName = "projects/PROJECT_ID/logs/cloudbuild"將 PROJECT-ID 替換為 Google Cloud 專案 ID。
(選用) 如要避免建構記錄傳送至預設的 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:
在 Google Cloud 專案中,建立 Cloud Storage bucket,並將資料保留政策設為不保留,以儲存建構記錄。
在建構設定檔中,新增指向您建立的 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_ONLYJSON
{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-east1-docker.pkg.dev/myproject/myimage", "." ] } ], "logsBucket": "gs://mylogsbucket", "options": { "logging": "GCS_ONLY" } }
建構完成後,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:
在建構設定檔中,新增
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_BUCKETJSON
{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-central1-docker.pkg.dev/myproject/myrepo/myimage", "." ] } ], "options": { "defaultLogsBucketBehavior": "REGIONAL_USER_OWNED_BUCKET" } }使用建構設定檔,透過指令列、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):想要查看建構記錄的主體
- Storage 物件檢視者 (
-
在預設 Cloud Storage bucket 中查看建構記錄:
檢視者 (
roles/viewer) - 設定建構作業的專案 -
在 Logging 中查看建構作業記錄:
記錄檢視器 (
roles/logging.viewer) - 要查看建構作業記錄的主體
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
在 Google Cloud中查看建構作業記錄
控制台
在 Google Cloud 控制台中開啟 Cloud Build 頁面。
選取您的專案並按一下 [Open] (開啟)。
在「Region」(區域) 下拉式選單中,選取建構作業的區域。
在「Build history」(建構歷史記錄) 頁面中,選取特定建構。
在「建構詳細資料」頁面的「步驟」下方,按一下「建構摘要」即可查看整個建構作業的建構記錄,或是選取建構步驟來查看該步驟的建構記錄。
如果建構記錄檔儲存在 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 建立 GitHub 或 GitHub Enterprise 觸發條件,並指定 --include-logs-with-status 做為選項,則可以在 GitHub 和 GitHub Enterprise 中查看建構記錄。
如要在 GitHub 和 GitHub Enterprise 中查看建構作業記錄,請按照下列步驟操作:
前往與觸發條件相關聯的存放區。
前往提交清單。
找到要查看建構記錄的修訂版本資料列。
按一下該認可所在列中的結果圖示。
畫面上會顯示與提交內容相關的檢查清單。
找出要查看建構記錄的資料列,然後按一下「詳細資料」。
您會看到與認可相關聯的「摘要」頁面。 如果您使用
--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」一節操作。
後續步驟
- 瞭解 Cloud Build 建立的稽核記錄。
- 瞭解如何查看建構結果。
- 進一步瞭解 Cloud Build 身分與存取權管理權限。