首页 > 解决方案 > Google Cloud Run - 使用 Eventarc API 触发(资源名称语法)

问题描述

谷歌最近发布了新的 Eventarc API 触发器,例如 Cloud run。我的想法是为我的云存储构建一个触发器,例如:存储桶中的新文件 → 触发云运行(带有审计日志触发器)

cloud_run_path: ...run.app/api/v1/data-fetcher bucket_id: 测试桶

我刚刚使用以下命令创建了触发器,并且成功:

gcloud beta eventarc triggers create test-event-trigger \
--location=europe-west1 \
--destination-run-service=test-event-data-fetcher \
--destination-run-path=/api/v1/data-fetcher \
--destination-run-region=europe-west1 \
--matching-criteria="type=google.cloud.audit.log.v1.written" \
--matching-criteria="serviceName=storage.googleapis.com" \
--matching-criteria="methodName=storage.objects.create" \
--matching-criteria="resourceName=projects/_/buckets/test-bucket" \
--service-account=$PROJECT_NR-compute@developer.gserviceaccount.com

问题是,我不希望触发器在项目的所有存储桶中查找新文件,而只是针对一个特定的存储桶(例如测试存储桶)。我现在用不同的文字测试了几个选项(使用 :, =~, ...),但触发器不接受这些。也许您可以帮助我解决语法或向我展示如何为我的项目中的一个特定存储桶创建触发器?像这样它不起作用...

标签: google-cloud-platformsdkgoogle-cloud-storagegoogle-cloud-runevent-arc

解决方案


截至目前 (2020-11) 触发器的配置中不支持通配符和前缀匹配。似乎该功能已被强烈要求,并且拥有该产品领域的 Google 产品经理显然知道此功能。添加此类功能的时间没有公开/承诺日期。如果这对您来说是一个障碍,请联系您当地的 Google 代表,他们可以安排与产品经理的电话,讨论路线图。


推荐阅读