运行构建时,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 位于 您使用的是旧版 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 角色授予 您用于构建的服务账号。有关授予 授予服务账号的角色,请参阅授予 项目。
在 build 配置中,添加
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
选项,然后在多个区域中创建 build,Cloud Build 会为 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 中查看构建日志
企业
如需在 GitHub 和 GitHub Enterprise 中查看构建日志,请执行以下操作:
导航到与触发器关联的代码库。
前往提交列表。
找到您要查看其构建日志的提交所在的行。
点击提交内容所在行的结果图标。
您会看到与您的提交关联的检查列表。
点击要查看 build 的行的详细信息 日志。
您将看到与您的提交相关联的摘要页面。 如果您使用
--include-logs-with-status
标志,您将看到 详细信息部分下显示的构建日志 页面。
删除构建日志
您不能删除位于 Google 创建的日志存储分区中的构建日志。
如需删除位于用户创建的日志存储分区中的构建日志,请执行以下操作:
将 Storage Object Admin 角色授予要删除日志的用户或服务账号。
按照删除对象中关于删除 Cloud Storage 对象的说明,来删除构建日志。
如需删除用户创建的日志存储分区,请执行以下操作:
将 Storage Admin 角色授予要删除日志存储分区的用户或服务账号。
按照删除存储分区中关于删除存储分区的说明,来删除日志存储分区。
后续步骤
- 了解 Cloud Build 创建的审核日志。
- 了解如何查看构建结果。
- 详细了解 Cloud Build IAM 权限。