【问题标题】:Google Cloud Run - Trigger with Eventarc API (resourceName syntax)Google Cloud Run - 使用 Eventarc API 触发(资源名称语法)
【发布时间】:2021-02-17 04:04:27
【问题描述】:

Google 最近发布了新的 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

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

【问题讨论】:

  • 你能检查一下你是否没有配置其他触发器吗?
  • 你的意思是,他们可能会以某种方式相互阻止?我只是在这个项目中运行了一个 cloudbuild 触发器
  • 没有 Cloud Build 触发器,一个事件触发器。这个命令gcloud beta eventarc triggers list --location=europe-west1的响应是什么?
  • 它只是我在上面创建的一个,状态处于活动状态。
  • 你的配置收到了什么?

标签: google-cloud-platform sdk google-cloud-storage google-cloud-run event-arc


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您可以通过使用匹配标准type=google.cloud.pubsub.topic.v1.messagePublished 来实现此目的,该标准订阅特定的 Pubsub 主题,而不是审核日志中的所有存储事件。然后,在test-bucket 上配置一个存储触发器,以发布到为此 Eventarc 触发器生成的主题。

    编辑:我的配置如下。

    gcloud beta eventarc triggers create <my_trigger> \
        --destination-run-service=<my service> \
        --destination-run-region=us-central1 \
        --destination-run-path="/<my_endpoint>" \
        --matching-criteria="type=google.cloud.pubsub.topic.v1.messagePublished" \
        --service-account=${PROJECT_NUMBER}-compute@developer.gserviceaccount.com
    

    然后运行

    gcloud beta eventarc triggers describe <my_trigger>
    

    获取生成主题的名称,并配置存储触发器以发布到该主题。

    【讨论】:

    • 如何在测试桶上配置存储触发器以发布到主题?
    猜你喜欢
    • 2021-10-12
    • 2022-08-19
    • 2022-08-05
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    • 2016-01-17
    • 2021-02-04
    • 2021-05-26
    相关资源
    最近更新 更多