одно событие AWS CloudWatch для управления несколькими вещами - PullRequest
0 голосов
/ 04 апреля 2019

У меня есть несколько событий cloudwatch.Каждый из них одновременно запускает одно и то же лямбда-вызываемое приложение с разными входами: т.е. событие1 запускает лямбда-приложение по расписанию, используя input: app_name = app1 event2 запускает лямбда-приложение по одному и тому же расписанию с помощью input: app_name = app2.event3 запускает лямбда-приложение в одно и то же расписание, используя input: app_name = app3.

Как видно, все события имеют одинаковое расписание.Мне действительно не нужно столько дублированных событий.

Можно ли как-то использовать одно событие CloudWatch для запуска одной лямбды с несколькими входами?то есть одновременно, одно и то же событие вызовет лямбда-приложение с вводом app1;это также вызывает ту же самую лямбду с вводом app2, это также вызывает ту же самую лямбду с вводом app3?

это сделает мою структуру опрятной.одно событие, одна лямбда (с разными входами) для нескольких приложений.

1 Ответ

1 голос
/ 16 апреля 2019

Вы можете иметь одно Правило CloudWatch с источником события Schedule и одной целевой функцией Lambda. Вам нужно будет сконфигурировать ввод для использования константы (текст JSON) с массивом данных, как показано здесь:

enter image description here

Тогда в вашей лямбда-функции 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);
};

...