运行 Node.js 按计划在 AWS EC2 中运行

Running Node.js functions in AWS EC2 on Schedule

我正在尝试实现按预定时间间隔在 AWS EC2 实例上 运行 Node.js 编码的能力。它类似于 AWS Lambda 的工作方式,但 Lambda 不提供我需要的资源量。我已经有一个可用的 Node.js 应用程序,我只需要在 EC2 上 运行 获取它(我认为)。

我是服务器和 EC2 的新手,所以我不知道如何实现这一点。我能够很好地设置和 运行 一个 EC2 实例,但是 运行 使用代码是另一回事。我的想法是在 EC2 实例上托管 Node.js 应用程序,但 运行 Lambda 函数按计划调用应用程序以在 EC2 中启动。我只是不知道从哪里开始学习如何做到这一点。

一如既往,感谢您的帮助!

不要使用 Lambda 来安排作业。 Linux 服务器上已经有一个名为 Cron 的作业调度服务。搜索 "cron" 或 "crontab" 以了解如何在 Linux.

上安排作业

您可以通过使用 CloudWatch 事件触发 Node.js Lambda 来实现此目的。使用 putRule API. Then create a target with putTargets 创建一个事件规则,目标 ARN 设置为您的 lambda 的 ARN。例如:

var cloudwatchevents = new AWS.CloudWatchEvents();
cloudwatchevents.putRule({
    Name: 'my-rule', 
    ScheduleExpression: 'rate(1 hour)`
}, function(err, result) {
    cloudwatchevents.putTargets({
        Rule: result.RuleArn, 
        Targets: [ {
            Arn: myLambdaArn,
            Id: '1'
        } ]
    }, function(err, result) {
        ...
    });
});

这将每小时触发一次 lambda。