如何使用Boto自终止其运行的实例?

时间:2018-10-10 23:08:38

标签: python amazon-web-services amazon-ec2 boto

我需要从AutoScalingGroup终止实例,因为ASG的策略使扩展实例的运行时间超出了预期。完成运行python进程后,我需要终止该实例。

代码已经使用Boto访问其他AWS服务,因此我希望利用Boto自我终止。有人告诉我,在终止实例之前,需要先将实例与其ASG分离,以免产生副作用。

有什么主意我可以去做这种超脱和自我终结吗?

1 个答案:

答案 0 :(得分:0)

可以使用detach_instances()将实例从Auto Scaling组中删除:

  

从指定的Auto Scaling组中删除一个或多个实例。

     

分离实例后,您可以独立于Auto Scaling组进行管理。

     

如果您未指定减少所需容量的选项,则Amazon EC2 Auto Scaling会启动实例来替换已分离的实例。

response = client.detach_instances(
    InstanceIds=[
        'string',
    ],
    AutoScalingGroupName='string',
    ShouldDecrementDesiredCapacity=True|False
)

因此,步骤将是:

  • 获取要删除的实例ID
  • 致电detach_instances(InstanceIds=['i-xxx'], ShouldDecrementDesiredCapacity=True)
  • 致电terminate_instances(InstanceIds=['i-xxx'])

这可以从实例本身运行,也可以从Internet上的任何地方运行。