GCP云功能,如何触发存储桶中的所有内容?

时间:2019-02-19 17:09:50

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

我正在玩Google云功能。我的第一个结论:它们真的很完美!我创建了一个函数,该函数由存储在存储桶(或新上传)中的文档的修改触发。效果很好。

但是随后我开始思考:如果我想触发存储桶中的所有文件以针对NEW函数执行该怎么办。先前的功能已经针对所有文件运行过,因此我宁愿只对所有文档再次运行NEW功能。

你们是怎么做到的?所以基本上我的问题是:

  • 如何跟踪已应用于文件的功能?
  • 如何触发所有文件重新应用所有功能?
  • 如何仅使用一个(新)功能触发所有文件?

1 个答案:

答案 0 :(得分:2)

  

您如何跟踪已应用于哪些功能   文件?

Cloud Functions在事件上触发。事件触发后,将调用Cloud Function(如果设置为这样做)。除了StackDriver外,GCP中没有任何东西可以跟踪此情况。您的函数将需要跟踪其动作,包括针对哪个对象被触发。

  

如何触发所有文件重新应用所有功能?

没有命令或功能来触发所有文件的功能。您将需要自己实现此功能。

  

如何仅使用一个(新)功能触发所有文件?

没有命令或功能来触发新功能的功能。您将需要自己实现此功能。

根据您要实现的架构,大多数人使用Cloud Datastore之类的数据库来跟踪存储桶中的对象,发生的转换和结果。

使用数据库可以使您完成目标,但需要付出一些努力。

请记住,Cloud Functions运行540秒后会超时。这意味着,如果您有数百万个文件,则需要实施重叠策略来处理许多对象。

对于需要处理数百万个对象的情况,通常会启动App Engine Flexible或Compute Engine来完成大型任务,然后在完成后将其关闭。主要原因是Google存储和数据存储区的带宽很高。