python - 如何使用 Boto 自行终止正在运行的实例?
问题描述
我需要从 AutoScalingGroup 终止一个实例,因为 ASG 的策略使横向扩展的实例运行的时间比预期的要长。在完成运行 python 进程后,我需要终止所述实例。
该代码已经使用 Boto 访问其他 AWS 服务,因此我希望利用 Boto 自行终止。有人告诉我,我需要在终止之前将实例与其 ASG 分离以避免副作用。
知道我该如何进行这种分离和自我终止吗?
解决方案
可以使用以下命令从 Auto Scaling 组中删除实例detach_instances()
:
从指定的 Auto Scaling 组中删除一个或多个实例。
分离实例后,您可以独立于 Auto Scaling 组对其进行管理。
如果您未指定减少所需容量的选项,Amazon EC2 Auto Scaling 会启动实例以替换分离的实例。
response = client.detach_instances(
InstanceIds=[
'string',
],
AutoScalingGroupName='string',
ShouldDecrementDesiredCapacity=True|False
)
因此,步骤将是:
- 获取要移除的Instance ID
- 称呼
detach_instances(InstanceIds=['i-xxx'], ShouldDecrementDesiredCapacity=True)
- 称呼
terminate_instances(InstanceIds=['i-xxx'])
这可以从实例本身运行,也可以从 Internet 上的任何位置运行。
推荐阅读
- c# - SqlException 未处理,C#
- python - 找不到满足 ssl 认证问题要求的版本。(对于 Pycharm,终端)
- angular - 如何在不导入 node_modules 的情况下获得 NestJS 生产的分布?
- python - 用引用替换多列的唯一值
- javascript - obj=var 和 obj=fn 有什么区别
- php - PHP ImageMagick ReadImage() 坏了
- rest - 使用 reqwest 重用连接
- ios - 无法在 Xcode 中使用 firebase auth 构建颤振应用程序
- python - 通过回调函数在 keras/tensorflow 中动态更新变量
- reactjs - React Spring翻译动画不起作用并且单击列表项似乎被延迟