如何使用if语句检查ec2实例是否正在运行?

时间:2019-06-21 03:48:31

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

我有一个ec2实例的实例ID。如何使用if语句检查该ec2实例是否正在运行?我正在使用Python和Boto3。

2 个答案:

答案 0 :(得分:3)

我认为重要的是默认情况下,只描述正在运行的实例。因此,如果要检查不必要的实例正在运行的状态,则需要指定“IncludeAllInstances”选项。所以它应该是这样的:

response = ec2_client.describe_instance_status(InstanceIds=['i-12345'], IncludeAllInstances=True)
if response['InstanceStatuses'][0]['InstanceState']['Name'] == 'running':
    print('It is running')

答案 1 :(得分:1)

使用boto3 Resource方法:

import boto3

ec2_resource = boto3.resource('ec2', region_name='ap-southeast-2')

instance = ec2_resource.Instance('i-12345')
if instance.state['Name'] == 'running':
    print('It is running')

使用boto3客户端方法:

import boto3

ec2_client = boto3.client('ec2', region_name='ap-southeast-2')

response = ec2_client.describe_instance_status(InstanceIds=['i-12345'])
if response['InstanceStatuses'][0]['InstanceState']['Name'] == 'running':
    print('It is running')