Aws lambda 一个AWS CloudWatch事件可控制多个内容

Aws lambda 一个AWS CloudWatch事件可控制多个内容,aws-lambda,amazon-cloudwatch,Aws Lambda,Amazon Cloudwatch,我有多个cloudwatch活动。它们中的每一个在同一时间用不同的输入触发相同的Lambda调用的应用程序:即。 event1使用输入:app_name=app1按计划触发lambda app event2使用输入:app_name=app2以相同的计划触发lambda app。 event3使用输入:app_name=app3以相同的计划触发lambda app 正如您所见,所有活动都有相同的日程安排。我真的不需要这么多重复的事件 是否有任何方法可以使用一个CloudWatch事件触发一个具有

我有多个cloudwatch活动。它们中的每一个在同一时间用不同的输入触发相同的Lambda调用的应用程序:即。 event1使用输入:app_name=app1按计划触发lambda app event2使用输入:app_name=app2以相同的计划触发lambda app。 event3使用输入:app_name=app3以相同的计划触发lambda app

正如您所见,所有活动都有相同的日程安排。我真的不需要这么多重复的事件

是否有任何方法可以使用一个CloudWatch事件触发一个具有多个输入的Lambda?i、 e.一次,同一事件将使用输入app1触发lambda app;它还使用输入app2触发相同的lambda,使用输入app3触发相同的lambda

这将使我的结构整洁。一个事件,一个lambda(具有不同的输入)用于多个应用程序。

您可以有一个带有计划事件源和一个lambda函数目标的CloudWatch规则。您需要将输入配置为使用常量(JSON文本)和数据数组,如下所示:

然后在Lambda函数中,
事件
将是常数。使用Node.js 8.10启动EC2实例的示例:

const AWS=require('AWS-sdk');
const ec2=新的AWS.ec2();
exports.handler=异步(事件)=>{
log('启动实例:%j',事件);
const data=await ec2.startInstances({instanceId:event}).promise();
控制台日志(数据);
};

您能否澄清为什么需要多个输入,您在lambda中做什么?您的输入不应该是Lambda中的常量/env var吗?慢跑:例如,我想让CloudWatch schedule event1=每天晚上10点触发Lambda启动EC2_1;event2=每天晚上10点(同一时间)触发lambda启动EC2_2;event3=每天晚上10点触发lambda启动EC2_3;正如你所看到的,事件是一样的。我使用event1、event2、Event3的唯一原因是,否则我无法向lambda输入不同的输入(即ec2_1、ec2_2、ec2_3)。我希望有一个事件计划,用不同的输入或甚至不同的lambda触发相同的lambda。谢谢,谢谢你。该输入是否会使用输入[instance1,instance2]触发一个lambda,其中lambda将启动instance1,然后启动实例2(使用for循环等),或者您的意思是该输入将使用[instance1]触发该lambda,并使用[instance2]触发相同的lambda?它将使用输入
[instance1,instance2]触发一个lambda
。您不需要在lambda中使用for循环,因为
StartInstances
接受一个实例id数组。看见