首页 文章

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

提问于
浏览
1

我试图在计划的时间间隔内实现在AWS EC2实例上运行Node.js代码的能力 . 它与AWS Lambda的工作方式类似,但Lambda不提供我需要的资源量 . 我已经有一个工作的Node.js应用程序,我只需要让它在EC2上运行(我认为) .

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

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

2 回答

  • 4

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

  • 1

    您可以通过使用CloudWatch事件触发Node.js Lambda来实现此目的 . 使用putRule API创建事件规则 . 然后使用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 .

相关问题