GCP通过Cloud Storage OBJECT_FINALIZE事件触发Cloud Build求助
GCS OBJECT_FINALIZE事件触发Cloud Build故障排查方案
第一步:验证GCS到Pub/Sub的链路有效性
- 向目标存储桶上传任意测试文件,进入对应Pub/Sub主题的控制台页面,选择「消息」标签页,点击「拉取」按钮查看是否存在对应事件消息
- 无消息的排查点:
- 核对通知创建命令的参数正确性,标准命令格式如下:
确认事件类型、主题名、桶名无拼写错误,且资源归属的GCP项目匹配gsutil notification create -t <主题名称> -f json -e OBJECT_FINALIZE gs://<存储桶名称> - 确认GCS服务账号已获得主题的发布权限:找到项目对应的GCS服务账号
service-<项目数字ID>@gs-project-accounts.iam.gserviceaccount.com,为其授予目标主题的roles/pubsub.publisher角色
- 核对通知创建命令的参数正确性,标准命令格式如下:
第二步:验证Pub/Sub到Cloud Build的链路有效性
若确认主题内存在GCS推送的事件消息,排查以下配置:
- 确认Cloud Build触发器状态为「已启用」,且订阅的Pub/Sub主题与你配置的主题完全一致
- 补充Cloud Build服务账号的权限:找到Cloud Build默认服务账号
service-<项目数字ID>@gcp-sa-cloudbuild.iam.gserviceaccount.com,为其授予目标主题的roles/pubsub.editor和roles/pubsub.subscriber角色,确保Cloud Build有权限自动创建订阅并拉取消息 - 检查触发器的过滤规则:如果你配置了基于事件属性、对象路径的过滤条件,确认测试上传的文件符合过滤规则,未被拦截
特殊场景排查
- 如果你上传的是存储类别为归档/冷归档的对象,确认未设置对象保留策略导致事件延迟推送
- 如果你开启了存储桶的版本控制,确认未配置事件过滤规则排除版本覆盖场景的OBJECT_FINALIZE事件
内容的提问来源于stack exchange,提问作者Tony Vu
相关产品推荐
相关产品推荐

