簡體   English   中英

將參數傳遞給 AWS Cloudwatch 事件目標 lambda function

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM