触发文件夹上的云功能 - 是否可能?

时间:2017-07-10 12:37:48

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

是否可以将云功能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 /':Bucket必须只包含   小写拉丁字母,数字和字符。 _ - 。它必须开始   并以字母或数字结尾,长度为3到232个字符。   您可以选择使用gs://和append / at添加存储桶名称   结束。

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

1 个答案:

答案 0 :(得分:0)

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

但是,我找到的一个解决方法是,您可以通过挂钩更改通知的name属性以编程方式在云功能中执行它,因为它包含文件夹和文件名

E.g。 a_sample.txt文件位于gs://a_bucket/a_folder/name属性将包含a_folder/a_sample.txt作为字符串值。

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

  1. 它不漂亮!
  2. 您的云计算功能将针对所有广告系列事件触发 - 即使是您不感兴趣的事件。
  3. 如果您可以接受,那么就可以了(直到Google支持在文件夹级别触发)。