在AWS上同步、调度和执行Node.js脚本



通常,我们将代码存储在github上,然后将其部署在AWS lambda上。

我们现在面临的挑战是一个特定的Node.js脚本。

  • 运行大约需要一个小时,因此我们不能将它部署在lambda上。
  • 它需要一个月运行一次。
  • 每隔一段时间,我们会更新github存储库中的脚本,如果我们做了更改(例如使用管道),我们希望AWS中的脚本保持同步。
  • 这个脚本从S3复制文件并在本地处理它们。它做了一些繁重的数据。

在AWS上设置它的推荐方法是什么?

无服务器方法非常适合,因为您每个月只运行一次工作。Lambda和S3(在同一区域)之间的数据传输是免费的。如果Lambda适合您的用例,除了执行时间限制,并且您可以"跟踪进度";在处理过程中,您可以创建一个状态机,在不处理所有S3数据块的情况下,将lambda调用为循环中的阶跃函数。每个lambda执行最多需要15分钟,状态机执行时间远远超过1小时。关于ops,你可以在你的GitHub上有一个触发器来发布一个新版本的lambda。您可以使用AWS CloudFormation、CDK或任何其他合适的工具。

最新更新