AWS:从代码部署触发器将参数传递给Lambda

时间:2018-05-30 07:07:52

标签: amazon-web-services aws-lambda aws-code-deploy

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

  

' targetASG':KeyError Traceback(最近一次调用最后一次):文件   " /var/task/lambda_function.py" ;,第12行,lambda_handler ASG =   asObj.describe_auto_scaling_groups(AutoScalingGroupNames = [活动[' targetASG']])   KeyError:' targetASG'

targetASG是我的参数,但我没有看到我可以定义的任何地方(触发器,SNS)。如何从代码部署中传递此参数?

2 个答案:

答案 0 :(得分:0)

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

作为一种解决方法,在这种情况下,您必须在钩子函数中实现逻辑以提取目标ASG名称。

答案 1 :(得分:-1)

您可以为SNS和SNS page定义Lambda端点。

  1. 登录AWS管理控制台并在https://console.aws.amazon.com/sns/v2/home打开Amazon SNS控制台。

  2. 在左侧导航窗格中,单击“主题”,然后单击要为其订阅Lambda端点的主题。

  3. 单击“操作”,然后单击“订阅主题”。

  4. 在“协议”下拉框中,选择“AWS Lambda。

  5. 在Endpoint下拉框中,选择Lambda函数的ARN。

  6. 在“版本或别名”下拉框中,选择要使用的可用版本或别名。您也可以选择$ LATEST来指定最新版本的Lambda函数。如果您不想指定版本或别名,也可以选择default,它在功能上与$ LATEST相同。有关更多信息,请参阅AWS Lambda函数版本控制和别名。

  7. 点击创建订阅。