【发布时间】:2019-09-12 21:06:26
【问题描述】:
我要做的是在实例达到警报状态时将其设置为待机模式。我已经设置了一个警报来检测我的实例何时达到 90% CPU 一段时间。警报当前通过调用 Lambda 函数的 SNS 发送 Slack 和文本消息。我想补充的是让实例进入待机模式。实例位于自动缩放组中。
我发现您可以通过 CLI 使用以下命令执行此操作:
aws autoscaling enter-standby --instance-ids i-66b4f7d5be234234234 --auto-scaling-group-name my-asg --should-decrement-desired-capacity
你也可以用 boto3 做到这一点:
response = client.enter_standby(
InstanceIds=[
'string',
],
AutoScalingGroupName='string',
ShouldDecrementDesiredCapacity=True|False
)
我假设我需要编写另一个将由 SNS 触发的 Lambda 函数,该函数将使用 boto3 代码来执行此操作?
在我开始之前有更好/更简单的方法吗?
我已经将事件中的 InstanceId 传递给 Lambda,因此我必须在事件中添加 ASG 名称。
当我已经拥有实例 ID 时,是否有办法在 Lambda 函数中获取 ASG 名称?那么我就不必将它与事件一起传递。
谢谢!
【问题讨论】:
标签: aws-lambda amazon-cloudwatch