google-cloud-storage - 为存储桶中的每个文件运行 Google Cloud 函数
问题描述
我有一个由 Google Cloud Storageobject.finalize
事件触发的 Google Cloud Function。当我部署此函数的新版本时,我想为存储桶中的每个现有文件运行它(这些文件已由该函数的先前版本处理)。处理存储桶中的所有现有文件是一项长期运行的任务,因此我不认为将连续处理所有文件的谷歌云函数是一个选项。
我现在能看到的最好的选择是创建一个可以通过 HTTP 触发的 Google Cloud 函数,它将列出存储桶中的所有文件并通过 Google PubSub 为每个文件发布一个事件,然后稍微修改处理这些事件中的每一个我最初的 Google Cloud Function 的版本,它接受 PubSub 事件来代替object.finalize
存储事件。
我认为它可以工作,但我想知道是否有更简单的方法来执行此操作。
解决方案
如果您尝试执行的操作可能需要比云函数可以运行的最长时间更长的时间,您需要将该操作拆分为多个步骤。您为每个单独的文件使用 PubSub 触发器的方法听起来对我来说是一种有效的方法。
推荐阅读
- reactjs - 如何将函数设置为在另一个函数之后呈现?
- javascript - 将节点js的缓冲区转换为图像并显示在网站上
- c++ - 为什么在 C++ 中调用此构造函数时会出现未定义的引用错误?
- json - 在 sqlite 中,如何将逗号分隔的键值对拆分为列?
- c# - DryWetMIDI 通过释放键盘键接收 NoteOn
- c++ - 在类中产生线程
- list - 将列表列表变成一个列表函数式编程(球拍,方案)
- java - 在 Javalin 框架中加密数据库密码的可能方法
- flutter - 触发并等待不同 BLoC 中的项目创建
- jquery - 在前三个和后四个 Jquery 或 Javascript 之后用破折号格式化数字