通常,我们将代码存储在github上,然后将其部署在AWS lambda上。
我们现在面临的挑战是一个特定的Node.js脚本。
- 运行大约需要一个小时,因此我们不能将它部署在lambda上。
- 它需要一个月运行一次。 每隔一段时间,我们会更新github存储库中的脚本,如果我们做了更改(例如使用管道),我们希望AWS中的脚本保持同步。
- 这个脚本从S3复制文件并在本地处理它们。它做了一些繁重的数据。
在AWS上设置它的推荐方法是什么?
无服务器方法非常适合,因为您每个月只运行一次工作。Lambda和S3(在同一区域)之间的数据传输是免费的。如果Lambda适合您的用例,除了执行时间限制,并且您可以"跟踪进度";在处理过程中,您可以创建一个状态机,在不处理所有S3数据块的情况下,将lambda调用为循环中的阶跃函数。每个lambda执行最多需要15分钟,状态机执行时间远远超过1小时。关于ops,你可以在你的GitHub上有一个触发器来发布一个新版本的lambda。您可以使用AWS CloudFormation、CDK或任何其他合适的工具。