设置构建配置文件,以将构建日志存储在日志存储分区中,以便您可以使用 Cloud Logging 和 Cloud Storage 工具对这些日志进行分组和分析。配置 build 日志存储可让您更好地控制日志的存储和分析。如果您未定义构建日志存储设置,Cloud Build 会将构建日志存储在 Google Cloud拥有的存储桶中,但这样一来,您可用于分析构建日志的选项就会减少。
本页面介绍了如何将构建日志存储在不同类型的存储分区中,以及如何查看和删除已存储的日志。
准备工作
确保您熟悉用于配置 build 日志存储空间的 build 配置文件选项,以及存储桶所有权对日志可访问性的影响。 如需了解详情,请参阅构建日志存储选项。
将构建日志存储在用户创建的存储分区中
通过用户创建的存储分区,您可以更好地控制存储分区的管理和配置。
将构建日志存储在用户创建的 Cloud Logging 存储桶中
借助用户创建的 Logging 存储分区,您可以调整所存储构建日志的保留期限。如需将构建日志存储在 Logging 中用户创建的存储桶中,请执行以下操作:
授予 IAM 权限:
如需获得将构建日志存储在用户创建的 Cloud Logging 存储桶中所需的权限,请让您的管理员为您授予账号或服务账号的 Logs Configuration Writer (roles/logging.configWriter) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
配置日志存储桶:
创建存储桶,并为保留期限字段设置值。
创建接收器,以将 build 日志路由到新存储桶:
为接收器的构建包含项过滤条件输入以下内容:
logName = "projects/PROJECT_ID/logs/cloudbuild"请将 PROJECT_ID 替换为您的 Google Cloud 项目 ID。
(可选)如需防止构建日志进入默认的 Logging 存储桶,请按照停止在日志存储桶中存储日志条目中的示例进行操作。
将构建日志存储在用户创建的 Cloud Storage 存储桶中
如需将构建日志存储在用户创建的 Cloud Storage 存储桶中,请执行以下操作:
授予 IAM 权限:
如果您的 Cloud Storage 存储桶与 Cloud Build 位于同一 Google Cloud 项目中,并且您使用的是 Cloud Build 旧版服务账号,则默认情况下,Cloud Build 旧版服务账号具有必要的 IAM 权限。您无需授予任何其他权限。否则,请执行以下操作:
如需获得将 build 日志存储在用户创建的 Cloud Storage 存储桶中所需的权限,请让您的管理员为您授予用于 build 的服务账号的 Storage Admin (roles/storage.admin) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
配置 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_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 存储桶中。
将 build 日志存储在特定于区域的 Cloud Storage 存储分区中
您可以配置构建,以便 Cloud Build 将构建日志发送到与构建位于同一区域的用户自有 Cloud Storage 存储桶。使 build 和 build 日志存储桶的区域保持一致有助于您满足数据驻留要求。
授予 IAM 权限:
如果您的 Cloud Storage 存储桶与 Cloud Build 位于同一 Google Cloud 项目,并且您使用的是 Cloud Build 旧版服务账号,则该服务账号默认具有必要的 IAM 权限。您无需授予任何其他权限。否则,请执行以下操作:
如需获得将 build 日志存储在用户自有且特定于区域的存储桶中所需的权限,请让您的管理员为您授予用于 build 的服务账号的 Storage Admin (roles/storage.admin) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
配置特定于区域的 Cloud Storage 存储桶:
在构建配置文件中,添加
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" } }-
运行构建时,Cloud Build 会在执行构建的区域中创建新存储桶,然后将构建日志存储在此存储桶中。只要
REGIONAL_USER_OWNED_BUCKET处于有效状态,同一项目和区域中的后续 build 就会使用现有存储桶。 此存储桶归用户所有,因此您可以像配置用户创建的存储桶一样配置它。如果您设置了
REGIONAL_USER_OWNED_BUCKET选项并在多个区域中创建 build,那么 Cloud Build 会为每个唯一区域创建一个 Cloud Storage 存储桶。
如果您需要使 build 的区域与日志存储桶保持一致,也可以使用用户创建的存储桶。在这种情况下,您可以选择具有相同区域的现有用户创建的存储桶,也可以创建一个。如果您想创建存储桶,请按照将 build 日志存储在用户创建的存储桶中中的步骤操作,并确保用户创建的存储桶与 build 位于同一区域。
查看构建日志
如需查看 build 日志,请执行以下操作:
授予 IAM 权限:
如需获得在 Cloud Storage 或 Logging 中查看 build 日志所需的权限,请让您的管理员为您授予用于 build 的服务账号的以下 IAM 角色:
-
查看用户创建或拥有的 Cloud Storage 存储桶中的构建日志:
- Storage Object Viewer (
roles/storage.objectViewer) - 希望查看 build 日志的主账号 - Logs View Accessor (
roles/logging.viewAccessor) - 希望查看 build 日志的主账号
- Storage Object Viewer (
-
查看默认 Cloud Storage 存储桶中的构建日志:
Viewer (
roles/viewer) - 配置了构建的项目 -
在 Logging 中查看 build 日志:Logs Viewer (
roles/logging.viewer) - 希望查看 build 日志的主账号
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
在 Google Cloud中查看 build 日志
控制台
在 Google Cloud 控制台中打开 Cloud Build 页面。
选择您的项目,然后点击打开。
在区域下拉菜单中,选择 build 的区域。
在构建历史记录页面中,选择特定构建。
在构建详情页面的步骤下,点击构建摘要以查看整个构建的构建日志,或选择某个构建步骤查看该步骤的构建日志。
如果您的构建日志存储在 Logging 中,请在构建日志面板中点击 图标,以在Logs Explorer中查看日志。
gcloud
运行 gcloud builds log 命令,其中 build-id 是您要获取构建日志的 build 的 ID。运行 gcloud builds submit 时将在构建提交过程结束时显示构建 ID,或者在运行 gcloud builds list 时将显示在 ID 列中。
gcloud builds log build-id
在 GitHub 和 GitHub Enterprise 中查看 build 日志
如果您使用 gcloud CLI 或 Cloud Build API 创建了 GitHub 或 GitHub Enterprise 触发器,并指定了 --include-logs-with-status 作为选项,那么您可以在 GitHub 和 GitHub Enterprise 中查看 build 日志。
如需在 GitHub 和 GitHub Enterprise 中查看 build 日志,请执行以下操作:
前往与触发器关联的代码库。
前往提交列表。
找到您要查看相应提交的 build 日志的行。
点击相应提交所在行中的结果图标。
您会看到与您的提交关联的检查列表。
点击要查看 build 日志的行所对应的详情。
您会看到与提交关联的摘要页面。 如果您已使用
--include-logs-with-status标志创建触发器,则会在页面的详情部分下看到 build 日志。
删除 build 日志和存储分区
如需获得删除 Cloud Storage 中的 build 日志和存储分区所需的权限,请让管理员向您授予用于 build 的服务账号的以下 IAM 角色:
-
删除用户创建或拥有的 Cloud Storage 存储桶中的构建日志:
Storage Admin (
roles/storage.admin) - 要删除构建日志的用户或服务账号 -
删除用户创建或拥有的 Cloud Storage 存储桶:
Storage Admin (
roles/storage.admin) - 要删除存储分区的用户或服务账号 -
删除用户创建的日志记录存储桶:
Logs Configuration Writer (
roles/logging.configWriter) - 您的项目
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
如需删除用户创建或拥有的 Cloud Storage 存储桶中的构建日志,请按照 Cloud Storage 文档中删除对象中的说明进行操作。
如需删除用户创建或拥有的 Cloud Storage 存储桶,请按照 Cloud Storage 文档中删除存储分区中的说明进行操作。
如需删除用户创建的 Logging 存储桶,请按照 Logging 文档中删除存储桶中的说明进行操作。
后续步骤
- 了解 Cloud Build 创建的审核日志。
- 了解如何查看构建结果。
- 详细了解 Cloud Build IAM 权限。