【问题标题】:Triggering cloud functions on folders - is it possible?在文件夹上触发云功能 - 有可能吗?
【发布时间】:2017-07-10 12:37:48
【问题描述】:

是否可以将云函数trigger-bucket参数配置为GCS存储桶中的文件夹?

例如,假设我们有以下内容:

gs://a_bucket/a_folder

而不是在部署时设置--trigger-bucket gs://a_bucket,我需要在文件夹级别设置它,即--trigger-bucket gs://a_bucket/a_folder/

但是,我得到了错误:

错误:(gcloud.beta.functions.deploy)参数--trigger-bucket: 无效值“gs://a_bucket/a_folder/”:存储桶只能包含 小写拉丁字母、数字和字符。 _ -。它必须开始 并以字母或数字结尾,长度为 3 到 232 个字符。 您可以选择在存储桶名称前加上 gs:// 并附加 / 在 结束。

https://cloud.google.com/sdk/gcloud/reference/beta/functions/deploy

【问题讨论】:

    标签: google-cloud-platform google-cloud-functions


    【解决方案1】:

    无法在文件夹级别设置触发器。

    但是,我发现的一种解决方法是,您可以通过挂钩到更改通知的 name 属性在 Cloud Function 中以编程方式执行它,因为它包含文件夹和文件名 .

    例如位于gs://a_bucket/a_folder/ 中的a_sample.txt 文件,name 属性将包含a_folder/a_sample.txt 作为字符串值。

    因此,您可以过滤您感兴趣的文件夹。权衡取舍:

    1. 不漂亮!
    2. 所有存储桶事件将触发您的云函数 - 甚至是您不感兴趣的事件。

    如果您可以接受,那么这是可行的方法(直到 Google 支持在文件夹级别触发)。

    【讨论】:

      猜你喜欢
      • 2021-10-31
      • 2021-11-27
      • 1970-01-01
      • 2021-09-14
      • 2019-12-29
      • 2018-03-18
      • 2019-09-09
      相关资源
      最近更新 更多