我正在玩Google云功能。我的第一个结论:它们真的很完美!我创建了一个函数,该函数由存储在存储桶(或新上传)中的文档的修改触发。效果很好。
但是随后我开始思考:如果我想触发存储桶中的所有文件以针对NEW函数执行该怎么办。先前的功能已经针对所有文件运行过,因此我宁愿只对所有文档再次运行NEW功能。
你们是怎么做到的?所以基本上我的问题是:
答案 0 :(得分:2)
您如何跟踪已应用于哪些功能 文件?
Cloud Functions在事件上触发。事件触发后,将调用Cloud Function(如果设置为这样做)。除了StackDriver外,GCP中没有任何东西可以跟踪此情况。您的函数将需要跟踪其动作,包括针对哪个对象被触发。
如何触发所有文件重新应用所有功能?
没有命令或功能来触发所有文件的功能。您将需要自己实现此功能。
如何仅使用一个(新)功能触发所有文件?
没有命令或功能来触发新功能的功能。您将需要自己实现此功能。
根据您要实现的架构,大多数人使用Cloud Datastore之类的数据库来跟踪存储桶中的对象,发生的转换和结果。
使用数据库可以使您完成目标,但需要付出一些努力。
请记住,Cloud Functions运行540秒后会超时。这意味着,如果您有数百万个文件,则需要实施重叠策略来处理许多对象。
对于需要处理数百万个对象的情况,通常会启动App Engine Flexible或Compute Engine来完成大型任务,然后在完成后将其关闭。主要原因是Google存储和数据存储区的带宽很高。