Amazon web services AWS:从代码部署触发器向Lambda传递参数

Amazon web services AWS:从代码部署触发器向Lambda传递参数,amazon-web-services,aws-lambda,aws-code-deploy,Amazon Web Services,Aws Lambda,Aws Code Deploy,我有lambda函数,它通过传递自动缩放组名称来创建新的启动配置。它起作用了 我已经创建了代码deploy,并附加了一个触发器,以便在部署成功时执行Lambda函数。但是我得到了这个错误 “targetASG”:KeyError回溯(最近一次调用上次):文件 lambda_处理程序ASG中的第12行“/var/task/lambda_function.py”= asObj.description_auto_scaling_组(AutoScalingGroupNames=[event['targe

我有lambda函数,它通过传递自动缩放组名称来创建新的启动配置。它起作用了 我已经创建了代码deploy,并附加了一个触发器,以便在部署成功时执行Lambda函数。但是我得到了这个错误

“targetASG”:KeyError回溯(最近一次调用上次):文件 lambda_处理程序ASG中的第12行“/var/task/lambda_function.py”= asObj.description_auto_scaling_组(AutoScalingGroupNames=[event['targetASG'])) KeyError:'targetASG'


targetASG是我的参数,但我看不到任何可以定义它的地方(触发器、SNS)。如何从code deploy传递此参数?

您可以为SNS和定义Lambda端点

  • 登录AWS管理控制台并在打开Amazon SNS控制台

  • 在左侧导航窗格中,单击主题,然后单击要订阅Lambda端点的主题

  • 单击操作,然后单击订阅主题

  • 在协议下拉框中,选择AWS Lambda

  • 在端点下拉框中,选择Lambda函数的ARN

  • 在版本或别名下拉框中,选择要使用的可用版本或别名。您还可以选择$LATEST来指定Lambda函数的最新版本。如果不想指定版本或别名,还可以选择默认值,该值在功能上与$LATEST相同。有关更多信息,请参见AWS Lambda函数版本控制和别名

  • 单击创建订阅


  • 不幸的是,今天的CodeDeploy不支持客户在调用钩子函数时传递额外元数据/参数的方法


    作为一种解决方法,您必须在钩子函数中实现逻辑,以便在本例中调出目标ASG名称。

    好的,因此我已如上所述创建了SNS,提供了别名默认值,并创建了包含以下内容的测试{“targetASG”:“ASG”}但我并没有在任何地方定义上述参数,所以当我从代码部署触发SNS时,我的lambda函数不知道它。有解决办法吗?