在 GCP 存储桶中创建对象时触发通过 Cloud 运行 部署的数据流作业
Trigger a dataflow job deployed through Cloud Run on object creation in GCP Storage Bucket
我创建了一个数据流管道,它从 GCS 存储桶中读取文件并对其进行处理。当我从本地执行作业时它正在工作。
我在云 运行 中部署了数据流作业,并在 storage.object.create 上触发了触发器。
但是当我在 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
我在这里错过了什么?请提出建议。
您的云 运行 服务未被触发的原因是,当对象 created/uploaded 到您的存储桶时,可能没有写入审计日志。每当事件写入审核日志时都会启动 Eventarc 触发器,默认情况下,云存储处于禁用状态:
解决方案是为云存储启用审核日志。可以通过两种方式完成:
- 在您第一次创建 Eventarc 触发器时启用它。
- 或转至 IAM 和管理 > 审计日志 并确保检查云存储的所有字段:
作为参考,可以在 主页 > Activity 上查看审核日志,这是一个示例:
我创建了一个数据流管道,它从 GCS 存储桶中读取文件并对其进行处理。当我从本地执行作业时它正在工作。
我在云 运行 中部署了数据流作业,并在 storage.object.create 上触发了触发器。
但是当我在 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
我在这里错过了什么?请提出建议。
您的云 运行 服务未被触发的原因是,当对象 created/uploaded 到您的存储桶时,可能没有写入审计日志。每当事件写入审核日志时都会启动 Eventarc 触发器,默认情况下,云存储处于禁用状态:
解决方案是为云存储启用审核日志。可以通过两种方式完成:
- 在您第一次创建 Eventarc 触发器时启用它。
- 或转至 IAM 和管理 > 审计日志 并确保检查云存储的所有字段:
作为参考,可以在 主页 > Activity 上查看审核日志,这是一个示例: