首页 > 解决方案 > 为存储桶中的每个文件运行 Google Cloud 函数

问题描述

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

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

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

标签: google-cloud-storagegoogle-cloud-functionsgoogle-cloud-pubsub

解决方案


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


推荐阅读