【问题标题】:Run a Google Cloud Function for each file in a bucket为存储桶中的每个文件运行 Google Cloud 函数
【发布时间】:2018-12-04 20:57:15
【问题描述】:

我有一个由 Google Cloud Storage object.finalize 事件触发的 Google Cloud 函数。当我部署此函数的新版本时,我想为存储桶中的每个现有文件运行它(这些文件已由该函数的先前版本处理)。处理存储桶中的所有现有文件是一项长期运行的任务,因此我不认为将连续处理所有文件的谷歌云函数是一个选项。

目前我能看到的最佳选择是创建一个可以通过 HTTP 触发的 Google Cloud 函数,该函数将列出存储桶中的所有文件并通过 Google PubSub 为每个文件发布一个事件,然后使用我最初的 Google Cloud Function 的略微修改版本,它接受 PubSub 事件来代替 object.finalize 存储事件。

我认为它可以工作,但我想知道是否有更简单的方法来执行此操作。

【问题讨论】:

    标签: google-cloud-storage google-cloud-functions google-cloud-pubsub


    【解决方案1】:

    如果您尝试执行的操作可能需要比云函数可以运行的最长时间更长的时间,您需要将该操作拆分为多个步骤。您对每个单独文件使用 PubSub 触发器的方法听起来对我来说是一种有效的方法。

    【讨论】:

      【解决方案2】:

      一种选择可能是编写一个小程序,列出存储桶中的所有对象,并为每个对象向 Cloud Pub/Sub 发布一条消息,该消息以与 GCS 更改相同的方式触发您的函数。

      【讨论】:

      • 谢谢,我想这是我试图在我的问题中解释的选项。
      猜你喜欢
      • 2019-04-16
      • 2018-07-03
      • 2020-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      相关资源
      最近更新 更多