运行 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。
我正在尝试实现按预定时间间隔在 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。