[英]Pass parameters to AWS Cloudwatch event target lambda function
我想將參數傳遞給由 AWS Cloudwatch 事件調用的 lambda function。 參數名稱是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 文本。 沒有太多關於它的文檔。 我只是想找到正確的方法來做到這一點。
我找到了解決方案。 我以錯誤的方式引用了 lambda 中的參數。
我的 lambda function 是這樣的:
def func(event, context, alarmActions)
{
print(alarmActions)
}
當我進行以下更新時它起作用了:
def func(event, context)
{
print(event['alarmActions'])
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.