boto3 改变 AWS ec2 实例状态
boto3 changing AWS ec2 instance state
根据 Boto3 docs and this diagram
EC2 实例有 6 种状态:
'pending'|'running'|'shutting-down'|'terminated'|'stopping'|'stopped'
我想知道如何以编程方式将状态设置为这些状态之一。
我有一些代码可以查看我的 ec2 实例中每个实例的所有状态。
ec2 = boto3.resource("ec2", region_name="us-west-2")
vpc = ec2.Vpc("vpc-123456")
for instance in vpc.instances.all():
for tag in instance.tags:
print(instance.state["Name"])
我得到了
的输出
running
running
running
running
...
...
我想知道是否可以将这些状态更改为 pending
或 shutting-down
。
类似 instance.set("stopping")
的内容。我知道也许如果我将一个实例设置为 stopping
的状态,我将在下次检查该实例时获得 stopped
状态。
您不能直接更改 EC2 实例状态值。状态会根据您对 launch/start/stop/terminate 个实例执行的操作而变化。查看以下 Boto3 EC2 client 方法:
run_instances()
start_instances()
stop_instances()
terminate_instances()
您可以使用 Instance.stop()
、Instance.reboot()
、Insance.terminate()
资源方法。
根据 Boto3 docs and this diagram
EC2 实例有 6 种状态:
'pending'|'running'|'shutting-down'|'terminated'|'stopping'|'stopped'
我想知道如何以编程方式将状态设置为这些状态之一。
我有一些代码可以查看我的 ec2 实例中每个实例的所有状态。
ec2 = boto3.resource("ec2", region_name="us-west-2")
vpc = ec2.Vpc("vpc-123456")
for instance in vpc.instances.all():
for tag in instance.tags:
print(instance.state["Name"])
我得到了
的输出running
running
running
running
...
...
我想知道是否可以将这些状态更改为 pending
或 shutting-down
。
类似 instance.set("stopping")
的内容。我知道也许如果我将一个实例设置为 stopping
的状态,我将在下次检查该实例时获得 stopped
状态。
您不能直接更改 EC2 实例状态值。状态会根据您对 launch/start/stop/terminate 个实例执行的操作而变化。查看以下 Boto3 EC2 client 方法:
run_instances()
start_instances()
stop_instances()
terminate_instances()
您可以使用 Instance.stop()
、Instance.reboot()
、Insance.terminate()
资源方法。