使用触发器将源代码从云构建发布到存储桶时出错

Error publishing source code from cloud build to a bucket using triggers

我正在尝试通过云构建触发器将 html 代码从一个云源存储库发布到 gcp 中的 public 存储桶。但是,每次推送到 master 分支时,我都会在构建中遇到以下错误。

generic::invalid_argument: generic::invalid_argument: if 'build.service_account' is specified, the build must either (a) specify 'build.logs_bucket' (b) use the CLOUD_LOGGING_ONLY logging option, or (c) use the NONE logging option

我正在使用以下 cloudbuild.yaml

steps:
  - name: gcr.io/cloud-builders/gsutil
    args: ["-m", "rsync", "-r", "-c", "-d", ".", "gs://somedomain.com"]

我认为这与与云构建关联的服务帐户有关。

我遵循的此解决方案的教程在这里:https://cloud.google.com/community/tutorials/automated-publishing-cloud-build

Cloud Build 似乎是从一个特定的服务帐户开始的,而该帐户没有在 Logging 中存储构建日志的权限。

将日志管理员 (roles/logging.admin) 角色授予您在 YAML 文件中指定的服务帐户。

This document 包含有关配置用户指定的服务帐户的详细信息

错误已解决,在 cloudbuild.yaml 末尾添加日志规范并启用 IAM API。 存储桶和云构建配置位于同一项目中,因此我不需要向云构建服务帐户授予其他角色。

 options:
 logging: CLOUD_LOGGING_ONLY

Cloud Build documentation 涵盖所有可用的日志记录选项。

并且(同时)正确的角色是 roles/storage.admin