boto3更改AWS ec2实例状态

时间:2016-02-18 19:19:49

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

根据Boto3 docs和此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
...
...

我想知道我是否可以将这些状态更改为pendingshutting-down

instance.set("stopping")的某些内容。我理解也许如果我将一个实例设置为状态stopping,那么下次我检查这个实例时,我会得到stopped状态。

2 个答案:

答案 0 :(得分:11)

您不能直接更改EC2实例状态值。状态根据您启动/启动/停止/终止实例所采取的操作而更改。请查看以下Boto3 EC2 client方法:

run_instances()
start_instances()
stop_instances()
terminate_instances()

答案 1 :(得分:2)

您可以使用Instance.stop()Instance.reboot()Insance.terminate()资源方法。