【问题标题】:Trigger a dataflow job deployed through Cloud Run on object creation in GCP Storage Bucket在 GCP 存储桶中创建对象时触发通过 Cloud Run 部署的数据流作业
【发布时间】:2026-01-02 01:20:03
【问题描述】:

我创建了一个数据流管道,它从 GCS 存储桶中读取文件并对其进行处理。当我从本地执行作业时它正在工作。

我使用 storage.object.create 上的触发器在 Cloud Run 中部署了数据流作业。

但是当我在 GCS 存储桶中上传任何文件时,日志中没有显示触发消息或未执行数据流作业。

触发器配置

Ingress:Allow traffic
Authentication:Allow authentication
Event source:Cloud Storage
Event type:google.cloud.audit.log.v1.written
Create time:2021-02-12 (16:05:25)
Receive events from:All regions (global)
Service URL path:/
Service account:sdas-pipeline@sdas-demo-project.iam.gserviceaccount.com
Service name:storage.googleapis.com
Method name:storage.objects.create

我在这里缺少什么?请提出建议。

【问题讨论】:

  • 没有的可以查看这篇文章medium.com/@aishwarya.gupta3/…
  • 嗨,OP,请提供更多详细信息。你的触发器配置是什么?您的存储桶的区域/位置是什么?我们如何重现您的问题?另外,请注意,事件弧触发器在创建后最多可能需要 10 分钟才能工作。能再触发一次吗?
  • 我并没有真正理解数据流和云运行之间的关系。您是否在 Cloud Run 中运行数据流直接运行程序?
  • @guillaumeblaquiere 制作图像后,我正在将我的 dataflowrunner 管道作业部署到云运行中。我需要在 gcs 存储桶中上传文件时触发此作业。
  • @DonnaldCucharo 创建触发器后我等了 10 分钟,但触发器不适用于 gcs 对象创建。问题描述中更新了触发器配置。

标签: google-cloud-storage google-cloud-dataflow google-cloud-run dataflow


【解决方案1】:

未触发您的 Cloud Run 服务的原因是,在创建/上传对象到您的存储桶时可能没有写入审核日志。每当在审核日志中写入事件时都会启动 Eventarc 触发器,并且默认情况下禁用云存储:

解决方案是为云存储启用审核日志。它可以通过两种方式完成:

  1. 在您第一次创建 Eventarc 触发器时启用它。
  2. 或转到 IAM 和管理 > 审核日志 并确保所有字段都检查了 Cloud Storage:

作为参考,可以在首页 > 活动上查看审核日志,这是一个示例:

【讨论】:

  • 这很有帮助,而且我的项目中没有为 GCS 启用 Cloud Audit Log。启用后我会试一试。感谢您的帮助。
最近更新 更多