Передача параметров в лямбда-функцию цели события AWS Cloudwatch

Я хочу передать параметры моей лямбда-функции, вызываемой событиями AWS Cloudwatch. Имя параметраalarmActions и мой шаблон CFT для правила событий выглядит следующим образом:

"LambdaInvokeScheduler": {
            "Type": "AWS::Events::Rule",
            "Properties": {
              "Description": "Scheduled Rule for invoking lambda function",
              "EventPattern": {
                "source": [
                  "aws.ecs"
                ],
                "detail-type": [
                  "ECS Container Instance State Change"
                ],
                "detail": {
                  "clusterArn": [
                    { "Fn::GetAtt": ["WindowsCluster", "Arn"] }
                  ]
                }
              },
              "State": "ENABLED",
              "Targets": [{
                "Arn": { "Fn::GetAtt": ["AlarmCreationLambdaFunction", "Arn"] },
                "Id": "AlarmCreationLambdaFunction",
                "Input": { "Fn::Join" : ["", [ "{ \"alarmActions\": \"", { "Fn::Join" : [":", [ "arn:aws:sns", { "Ref" : "AWS::Region" }, { "Ref" : "AWS::AccountId" }, "CloudWatch"]] }, "\" }"]] }
              }]
            }
          }

Я использовал Inputпараметр для передачи текста JSON. По этому поводу не так много документации. Я просто хотел найти правильный способ сделать это.

1 ответ

Я нашел решение. Я неправильно ссылался на параметр в лямбде.

Моя лямбда-функция была такой:

def func(event, context, alarmActions)
{
   print(alarmActions)
}

Это сработало, когда я сделал следующее обновление:

def func(event, context)
{
   print(event['alarmActions'])
}
Другие вопросы по тегам