运行构建时,Cloud Build 会收集并存储构建日志。本页面介绍了如何存储、查看和删除构建日志。
选择存储构建日志的位置
您可以配置 Cloud Build 以将构建日志存储在 Cloud Logging 或 Cloud Storage 中,方法是在 Cloud Build 配置文件中添加 logging
字段。如果您未在构建配置文件中指定 logging
字段,则 Cloud Build 会将构建日志同时存储在 Logging 和 Cloud Storage 中。
以下步骤仅将构建日志存储在 Logging 中:
在构建配置文件中,将
logging
的值设置为CLOUD_LOGGING_ONLY
:YAML
steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'us-east1-docker.pkg.dev/myproject/myimage', '.'] options: logging: CLOUD_LOGGING_ONLY
JSON
{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-east1-docker.pkg.dev/myproject/myimage", "." ] } ], "options": { "logging": "CLOUD_LOGGING_ONLY" } }
将构建日志存储在 Google 创建的默认存储桶中
默认情况下,Cloud Build 会将构建日志存储在 Google 创建的 Cloud Storage 存储桶中。您可以查看存储在 Google 创建的 Cloud Storage 存储桶中的构建日志,但无法对其执行任何其他更改。如果您需要完全控制日志存储桶,请将日志存储在用户创建的 Cloud Storage 存储桶中。
将构建日志存储在用户创建的存储桶中
IAM 权限:
如需将构建日志存储在您自己的 Cloud Storage 存储桶中,您必须先向用于构建的服务帐号授予必要的 IAM 权限:
如果您的 Cloud Storage 存储桶和 Cloud Build 位于同一 Google Cloud 项目中,并且您使用的是旧版 Cloud Build 服务帐号,则默认情况下,您的 Cloud Build 服务帐号具有必要的 IAM 权限。您无需授予任何其他权限。
在其他任何情况下,请将 Storage Admin 角色授予用于构建的服务帐号:
打开 Cloud Storage 存储桶所在的项目中的 IAM 页面:
点击授予访问权限。
输入服务帐号的电子邮件地址。
选择 Cloud Storage > Storage Admin。
点击保存。
要指定 Cloud Storage 存储桶以存储构建日志,请执行以下操作:
在 Google Cloud 项目中,创建一个 Cloud Storage 存储桶,并设置用于存储构建日志的保留政策。
在构建配置文件中,添加一个
logsBucket
字段,其指向您为存储构建日志而创建的 Cloud Storage 存储桶。以下示例构建配置文件包含构建容器映像并将构建日志存储在名为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 存储桶中。
将构建日志存储在用户拥有的已区域化存储桶中
默认情况下,Cloud Build 将构建日志存储在 Google 指定的区域中,该区域可能与您运行构建的位置不同。借助 defaultLogsBucketBehavior
选项,您可以将 Cloud Build 配置为使用您自己的项目以及构建所在区域中的默认日志存储桶。此配置可让您更好地控制日志数据位置,从而帮助您遵守数据驻留要求。
如果您在自己的项目中存储日志,则需要支付相关费用。如需详细了解价格信息,请参阅 Cloud Storage 价格。
将 Cloud Build 配置为使用用户拥有的区域级日志:
授予必要的 IAM 权限。
如果您使用的是旧版 Cloud Build 服务帐号,则默认情况下,您的 Cloud Build 服务帐号具有必要的 IAM 权限。您无需授予任何其他权限。
对于其他服务帐号,请将 Storage Admin 角色授予用于构建的服务帐号。如需了解如何向服务帐号授予角色,请参阅授予项目的角色。
在构建配置中,添加
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" } }
-
当您运行构建时,Cloud Build 会在您执行构建的区域创建新的日志存储桶,然后将构建日志存储到此存储桶。默认情况下,同一项目和区域内的后续构建将使用现有存储桶。
如果您设置了 defaultLogsBucketBehavior
选项,然后在多个区域中创建构建,则 Cloud Build 会为您的构建日志创建多个存储分区。
存储在您自己的项目中的区域化 build 日志没有保留政策。此设置不可更改。
日志设置之间的优先级
如果您要向现有构建配置文件添加 defaultLogsBucketBehavior
选项,并且之前配置了 logging
或 logsBucket
选项,我们建议您删除这些设置,以防止设置之间发生冲突。
具体来说,如果您配置了以下内容,则 defaultLogsBucketBehavior
将无法正常运行:
logging: CLOUD_LOGGING_ONLY
,用于在 Cloud Logging 中存储构建日志。logging: NONE
,用于关闭日志记录。
当您运行没有在构建配置中设置日志记录选项的构建时,Cloud Build 会设置 logging: LEGACY
,并将日志存储在 Google 创建的默认 Cloud Storage 存储桶中。如果您添加 defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
,此选项会替换 logging: LEGACY
。
查看构建日志
IAM 权限:
如果您的构建日志位于 Logging 中,请向要查看构建日志的主账号授予针对在其中配置构建的项目的 Logs Viewer 角色:
打开 IAM 页面:
选择您的项目,然后点击打开。
在权限表中,找到主账号的电子邮件 ID,然后点击铅笔图标。
选择 Logging > Logs Viewer 角色。
点击保存。
如果构建日志位于Google 创建的默认 Cloud Storage 存储桶中,请将其中配置了构建的项目的 Project Viewer 角色授予想要查看构建日志的主账号:
打开 IAM 页面:
选择您的项目,然后点击打开。
在权限表中,找到主账号的电子邮件 ID,然后点击铅笔图标。
选择 Project > Viewer 角色。
点击保存。
如果您的构建日志位于用户创建或用户拥有的 Cloud Storage 存储桶中,请将 Storage Object Viewer 角色授予要查看构建日志的主账号:
打开 IAM 页面:
选择您的项目,然后点击打开。
在权限表中,找到主账号的电子邮件 ID,然后点击铅笔图标。
选择 Cloud Storage > Storage Object Viewer 角色。
点击保存。
如需在 Cloud Build 中查看构建日志,请执行以下操作:
控制台
在 Google Cloud 控制台中打开 Cloud Build 页面。
选择您的项目,然后点击打开。
在区域下拉菜单中,为您的 build 选择区域。
在构建记录页面中,点击特定构建。
在构建详情页面的步骤下,点击构建摘要以查看整个构建的构建日志,或点击某个构建步骤查看该步骤的构建日志。
如果您的日志存储在 Logging 中,请在构建日志面板中点击
图标,以在日志浏览器中查看日志。
gcloud
运行 gcloud builds log
命令,其中 build-id 是您要获取构建日志的构建的 ID。运行 gcloud builds submit
时将在构建提交过程结束时显示构建 ID,或者在运行 gcloud builds list
时将显示在 ID 列中。
gcloud builds log build-id
要在 GitHub 和 GitHub Enterprise 中查看构建日志,请执行以下操作:
如果您创建 GitHub 或 GitHub Enterprise 触发器并将 --include-logs-with-status
指定为选项,则可以在 GitHub 和 GitHub Enterprise 中查看构建日志。
如需在 GitHub 和 GitHub Enterprise 中查看构建日志,请执行以下操作:
导航到与触发器关联的代码库。
导航到您的提交列表。
找到要查看其构建日志的提交内容所在的行。
点击提交行中的结果图标。
您将看到与您的提交相关联的检查列表。
点击要查看其构建日志的行的详细信息。
您将看到与您的提交相关联的摘要页面。如果您使用
--include-logs-with-status
标志创建了触发器,则将看到构建日志显示在页面的详细信息部分下。
删除构建日志
您不能删除位于 Google 创建的日志存储桶中的构建日志。
如需删除位于用户创建的日志存储桶中的构建日志,请执行以下操作:
将 Storage Object Admin 角色授予要删除日志的用户或服务账号。
按照删除对象中关于删除 Cloud Storage 对象的说明,来删除构建日志。
如需删除用户创建的日志存储桶,请执行以下操作:
将 Storage Admin 角色授予要删除日志存储桶的用户或服务账号。
按照删除存储桶中关于删除存储桶的说明,来删除日志存储桶。
后续步骤
- 了解 Cloud Build 创建的审核日志。
- 了解如何查看构建结果。
- 详细了解 Cloud Build IAM 权限。