一个AWS CloudWatch事件来控制多件事

时间:2019-04-04 13:51:22

标签: aws-lambda amazon-cloudwatch

我有多个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(具有不同的输入)用于多个应用程序。

1 个答案:

答案 0 :(得分:1)

您可以拥有一个 CloudWatch Rule 和一个 Schedule 事件源,以及一个Lambda函数目标。您将需要配置输入以对数据数组使用常量(JSON文本),如下所示:

enter image description here

然后在您的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);
};