存储和管理构建日志

运行构建时,Cloud Build 会收集并存储构建日志。本页面介绍了如何存储、查看和删除构建日志。

选择存储构建日志的位置

您可以配置 Cloud Build 以将构建日志存储在 Cloud Logging 或 Cloud Storage 中,方法是在 Cloud Build 配置文件中添加 logging 字段。如果您未在构建配置文件中指定 logging 字段,则 Cloud Build 会将构建日志同时存储在 Logging 和 Cloud Storage 中。

以下步骤仅将构建日志存储在 Logging 中:

  1. 在构建配置文件中,将 loggingMode 的值设置为 CLOUD_LOGGING_ONLY

    YAML

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: ['build', '-t', 'gcr.io/myproject/myimage', '.']
    options:
      logging: CLOUD_LOGGING_ONLY
    

    JSON

    {
      "steps": [
      {
        "name": "gcr.io/cloud-builders/docker",
        "args": [
          "build",
          "-t",
          "gcr.io/myproject/myimage",
          "."
        ]
      }
      ],
      "options": {
        "logging": "CLOUD_LOGGING_ONLY"
      }
    }
    
  2. 使用构建配置文件来使用命令行,API触发器启动构建。

将构建日志存储在 Google 创建的默认存储分区中

默认情况下,Cloud Build 会将构建日志存储在 Google 创建的 Cloud Storage 存储分区中。您可以查看存储在 Google 创建的 Cloud Storage 存储分区中的构建日志,但无法对其执行任何其他更改。如果您需要完全控制日志存储分区,请将日志存储在用户创建的 Cloud Storage 存储分区中。

将构建日志存储在用户创建的存储分区中

IAM 权限

如需将构建日志存储在您自己的 Cloud Storage 存储分区中,您必须先向 Cloud Build 服务帐号用户指定的服务帐号授予必要的 IAM 权限:

  • 如果您的 Cloud Storage 存储分区与 Cloud Build 位于同一 Cloud 项目中,并且您使用的是 Cloud Build 服务帐号,则默认情况下,Cloud Build 服务帐号具有必要的 IAM 权限。您无需授予任何其他权限。

  • 如果您的 Cloud Storage 存储分区与 Cloud Build 位于同一 Cloud 项目中,并且您使用的是用户指定的服务帐号,请向服务帐号授予 Storage Admin 角色。如需了解如何向服务帐号授予角色,请参阅授予项目的角色

  • 如果您的 Cloud Storage 存储分区与 Cloud Build 位于不同的 Cloud 项目中,请将 Storage Admin 角色授予 Cloud Build 服务帐号

    1. 打开 IAM 页面:

      打开 IAM 页面

    2. 选择您要使用 Cloud Build 在其中运行构建的项目。

    3. 在权限表中,找到以 @cloudbuild.gserviceaccount.com 结尾的电子邮件地址,并记下该地址。这是您的 Cloud Build 服务帐号。

    4. 打开 Cloud Storage 存储分区所在的项目中的 IAM 页面:

      打开 IAM 页面

    5. 点击添加

    6. 输入 Cloud Build 服务帐号的电子邮件地址。

    7. 选择 Cloud Storage > Storage Admin

    8. 点击保存

要指定 Cloud Storage 存储分区以存储构建日志,请执行以下操作

  1. 在您的 Cloud 项目中,创建 Cloud Storage 存储分区以存储构建日志。

  2. 在构建配置文件中,添加一个 logsBucket 字段,其指向您为存储构建日志而创建的 Cloud Storage 存储分区。以下示例构建配置文件包含构建容器映像并将构建日志存储在名为 mylogsbucket 的存储分区中的说明:

    YAML

        steps:
        - name: 'gcr.io/cloud-builders/docker'
          args: [ 'build', '-t', 'gcr.io/myproject/myimage', '.' ]
        logsBucket: 'gs://mylogsbucket'
    

    JSON

        {
          "steps": [
           {
             "name": "gcr.io/cloud-builders/docker",
             "args": [
               "build",
               "-t",
               "gcr.io/myproject/myimage",
               "."
             ]
           }
           ],
           "logsBucket": "gs://mylogsbucket"
        }
    
  3. 使用构建配置文件来使用命令行,API触发器启动构建。

构建完成后,Cloud Build 会将日志存储在您在构建配置文件中指定的 Cloud Storage 存储分区中。

查看构建日志

IAM 权限

  • 如果您的构建日志位于 Logging 中,请向要查看构建日志的主帐号授予针对在其中配置构建的项目的 Logs Viewer 角色:

    1. 打开 IAM 页面:

      打开 IAM 页面

    2. 选择您的项目,然后点击打开

    3. 在权限表中,找到主帐号的电子邮件 ID,然后点击铅笔图标。

    4. 选择 Logging > Logs Viewer 角色。

    5. 点击保存

  • 如果构建日志位于Google 创建的默认 Cloud Storage 存储分区中,请将其中配置了构建的项目的 Project Viewer 角色授予想要查看构建日志的主帐号:

    1. 打开 IAM 页面:

      打开 IAM 页面

    2. 选择您的项目,然后点击打开

    3. 在权限表中,找到主帐号的电子邮件 ID,然后点击铅笔图标。

    4. 选择 Project > Viewer 角色。

    5. 点击保存

    如果构建日志位于用户指定的 Cloud Storage 存储分区中,请将 Storage Object Viewer 角色授予想要查看构建日志的主帐号:

    1. 打开 IAM 页面:

      打开 IAM 页面

    2. 选择您的项目,然后点击打开

    3. 在权限表中,找到主帐号的电子邮件 ID,然后点击铅笔图标。

    4. 选择 Cloud Storage > Storage Object Viewer 角色。

    5. 点击保存

要查看构建日志,请执行以下操作:

控制台

  1. 打开 Google Cloud Console 中的 Cloud Build 页面。

    打开 Cloud Build 页面

  2. 选择您的项目,然后点击打开

  3. 构建记录页面中,点击特定构建。

  4. 构建详情页面的步骤下,点击构建摘要以查看整个构建的构建日志,或点击某个构建步骤查看该步骤的构建日志。

    “构建详情”页面中的构建日志的屏幕截图

gcloud

运行 gcloud builds log 命令,其中 build-id 是您要获取构建日志的构建的 ID。运行 gcloud builds submit 时将在构建提交过程结束时显示构建 ID,或者在运行 gcloud builds list 时将显示在 ID 列中。

gcloud builds log build-id

删除构建日志

您不能删除位于 Google 创建的日志存储分区中的构建日志。

如需删除位于用户创建的日志存储分区中的构建日志,请执行以下操作:

  1. Storage Object Admin 角色授予要删除日志的用户或服务帐号。

  2. 按照删除对象中关于删除 Cloud Storage 对象的说明,来删除构建日志。

如需删除用户创建的日志存储分区,请执行以下操作:

  1. Storage Admin 角色授予要删除日志存储分区的用户或服务帐号。

  2. 按照删除存储分区中关于删除存储分区的说明,来删除日志存储分区。

后续步骤