我有多个cloudwatch事件。它们中的每一个都会同时触发具有不同输入的同一个Lambda应用程序: event1使用输入app_name = app1按时间表触发lambda应用 event2使用输入app_name = app2以相同的时间表触发lambda应用。 event3使用输入app_name = app3以相同的时间表触发lambda应用。
您可以看到所有事件都有相同的时间表。我真的不需要那么多重复的事件。
有什么方法可以使用一个CloudWatch事件触发具有多个输入的Lambda吗?即一次,同一事件将使用输入app1触发lambda应用;它还会触发与输入app2相同的lambda,也触发与输入app3相同的lambda?
这会使我的结构整齐。一个事件,一个lambda(具有不同的输入)用于多个应用程序。
答案 0 :(得分:1)
您可以拥有一个 CloudWatch Rule 和一个 Schedule 事件源,以及一个Lambda函数目标。您将需要配置输入以对数据数组使用常量(JSON文本),如下所示:
然后在您的Lambda函数中,event
将是您的常数。使用Node.js 8.10启动EC2实例的示例:
const AWS = require('aws-sdk');
const ec2 = new AWS.EC2();
exports.handler = async (event) => {
console.log('Starting instances: %j', event);
const data = await ec2.startInstances({ InstanceIds: event }).promise();
console.log(data);
};