Передача параметров в лямбда-функцию цели события 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'])
}