執行建構作業時,Cloud Build 會收集並儲存建構記錄。本頁說明如何儲存、查看及刪除建構記錄。
選擇要將建構記錄傳送到何處
您可以設定 Cloud Build 將建構記錄傳送至 Cloud Storage 值區、Cloud Logging 值區,或同時傳送至這兩個值區。
如要控管所儲存建構記錄的保留期限,請將記錄傳送至 Cloud Logging。此外,Cloud Logging 也提供更多選項,可搜尋特定建構記錄的 bucket。
在某些情況下,建構記錄產生後,要經過一段時間才會傳送至 Logging。將建構記錄傳送至 Cloud Storage 中的值區,或許可以縮短延遲時間。
Cloud Storage 和 Logging 都允許您將記錄儲存在 Google 建立的預設 bucket,或使用者建立的自訂 bucket。預設值區可讓您查看儲存在值區中的記錄,但無法變更值區的任何設定。如果您需要完全控管用於儲存建構記錄的 bucket,請將記錄傳送至使用者建立的 bucket。
將建構記錄檔儲存在預設值區中
Cloud Logging 和 Cloud Storage 都有預設值區,可供您儲存建構記錄。這些 buckets 由 Google 建立及擁有,可接收來自多個區域的記錄。如要將建構記錄傳送至其中一個值區,請使用下列其中一個值,設定建構設定檔的 LoggingMode
:
GCS_ONLY
:記錄會儲存在預設的 Cloud Storage 值區中。CLOUD_LOGGING_ONLY
:記錄檔會儲存在預設的 Logging bucket 中。LEGACY
:記錄檔會儲存在這兩個預設值區中。
預設記錄檔值區的儲存記錄檔保留政策為 30 天。如要為 Logging 中儲存的建構記錄檔設定自訂保留政策,請將建構記錄檔儲存在自訂值區中。
預設 Cloud Storage 值區沒有保留政策。
將建構記錄儲存在使用者擁有的特定區域 Cloud Storage 值區中
如果您將建構記錄傳送至預設的 Cloud Storage 值區,Cloud Build 會將記錄儲存在 Google 指定的區域,該區域可能與您執行建構作業的位置不同。不過,您也可以設定建構作業,讓 Cloud Build 將建構記錄傳送至使用者擁有的 Cloud Storage 值區,該值區與您執行建構作業的地區相同。這項設定可讓您進一步控管建構記錄資料的位置,有助於遵守資料落地規定。
授予 IAM 權限:
如果 Cloud Storage 值區和 Cloud Build 位於 Google Cloud 同一個專案,且您使用 Cloud Build 舊版服務帳戶,則該服務帳戶預設會具備必要的 IAM 權限。您不必授予任何額外權限。如果沒有,請按照下列步驟操作:
如要取得在使用者擁有的特定區域值區中儲存建構記錄的權限,請要求管理員授予您建構作業所用服務帳戶的儲存空間管理員 (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_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" } }
使用建構設定檔,透過指令列、API 或觸發條件啟動建構作業。
執行建構作業時,Cloud Build 會在您執行建構作業的區域中建立新的 bucket,然後將建構記錄儲存在這個 bucket 中。只要
REGIONAL_USER_OWNED_BUCKET
處於啟用狀態,同一專案和區域的後續建構作業就會使用現有 bucket。這個值區屬於使用者擁有,因此您可以像設定使用者建立的值區一樣設定這個值區。
如果您設定 REGIONAL_USER_OWNED_BUCKET
選項,然後在多個區域中建立版本,Cloud Build 會為您的建構記錄建立多個 bucket。
區域專屬的預設 Cloud Storage 值區沒有保留政策。不過,您可以設定物件生命週期規則,自動刪除值區中的建構記錄。
將建構作業記錄檔儲存在使用者建立的 bucket 中
使用者建立的值區可讓您進一步控管記錄檔值區的管理和設定。
將建構記錄檔儲存在使用者建立的 Cloud Logging 值區中
使用者建立的記錄檔值區可讓您調整所儲存建構記錄的保留期限。如要將建構記錄儲存在 Logging 中使用者建立的 bucket,請按照下列步驟操作:
授予 IAM 權限:
如要取得將建構記錄儲存在使用者建立的 Cloud Logging 值區所需的權限,請要求管理員授予專案的「記錄設定寫入者」 (roles/logging.configWriter
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
設定記錄 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 值區中儲存建構記錄的權限,請要求管理員在用於建構的服務帳戶中,授予您儲存空間管理員 (roles/storage.admin
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
設定 Cloud Storage bucket:
在 Google Cloud 專案中,建立 Cloud Storage bucket,並將其設為不保留任何資料,以便儲存建構記錄。
在建構設定檔中,新增指向您建立的 Cloud Storage 值區的
logsBucket
欄位,用來儲存建構記錄。下列範例建構設定檔包含建構容器映像檔的操作說明,並將建構記錄儲存在名為mylogsbucket
的值區中: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" } }
建構完成後,Cloud Build 會將記錄儲存在建構設定檔中指定 Cloud Storage bucket。
記錄設定的優先順序
如果您在 logsBucket
中定義使用者建立的 Cloud Storage 值區,Cloud Build 會將建構記錄傳送至使用者建立的值區,而不是預設的 Cloud Storage 值區。
如果您要將 defaultLogsBucketBehavior
選項新增至現有的建構設定檔,且先前已設定 logging
或 logsBucket
選項,建議您刪除這些設定,以免設定之間發生衝突。具體來說,如果已設定下列項目,defaultLogsBucketBehavior
將無法運作:
logging: CLOUD_LOGGING_ONLY
,將建構記錄儲存在 Cloud Logging 中。logging: NONE
即可關閉記錄功能。
如果您執行建構作業時,建構設定檔中未設定任何記錄選項,Cloud Build 會設定 logging: LEGACY
,並將建構記錄儲存在預設的 Cloud Storage 值區。將 defaultLogsBucketBehavior
設為 REGIONAL_USER_OWNED_BUCKET
會覆寫 logging: LEGACY
。
查看建構作業記錄
如要查看建構記錄,請按照下列步驟操作:
授予 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」(建構歷史記錄) 頁面中,選取特定建構。
在「Build details」(建構作業詳細資料) 頁面的「Steps」(步驟) 下方,按一下「Build summary」(建構作業摘要),即可查看整個建構作業的建構記錄,或選取建構步驟來查看該步驟的建構記錄。
如果記錄檔儲存在 Cloud Logging 中,請在「Build log」(建構記錄)面板中點選
圖示,即可在「記錄檔探索工具」中查看記錄檔。
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 Admin (
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 身分與存取權管理權限。