我有一个ec2实例的实例ID。如何使用if语句检查该ec2实例是否正在运行?我正在使用Python和Boto3。
答案 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')