Скрипт на Python для AWS для сбора информации обо всех экземплярах в текущем регионе. Он должен группировать их по AMI и количеству инстансов, использующих их

#python #amazon-web-services #amazon-ec2

Вопрос:

Скрипт на Python для AWS для сбора информации обо всех экземплярах в текущем регионе. Он должен группировать их по AMI и количеству экземпляров, которые их используют. Мой вопрос….Я могу заставить этот скрипт извлекать 1 из моих 4 экземпляров из моей учетной записи со всей необходимой мне информацией в формате словаря. но я не могу заставить его перечислить все AMI …. Как мне заставить его извлекать остальные запущенные?

введите код здесь import boto3 import pprint

 session = boto3.Session(profile_name ='kenjiro310', region_name='us-east-2')
# Let's use Amazon EC2
ec2_client = boto3.client('ec2', region_name="us-east-2")

response = ec2_client.describe_images(Owners=['self'])
pprint.pprint(response)
 

Комментарии:

1. ОК. В чем ваш вопрос?

2. Мой вопрос таков…. Я могу заставить этот скрипт извлекать 1 из моих 4 экземпляров из моей учетной записи со всей необходимой мне информацией в формате словаря. но я не могу заставить его перечислить все AMI …. Как мне заставить его извлекать остальные запущенные?

Ответ №1:

Вероятно, использование ресурса ec2 удобнее:

 import boto3

ec2_resource = boto3.resource('ec2')
ec2_instances = ec2_resource.instances.filter(Filters=[{
    'Name': 'instance-state-name',
    'Values': ['running']
}])
instances = []
for ec2_instance in ec2_instances:
    instances.append({
        "ami": ec2_instance.image_id,
        "id": ec2_instance.id, 
        "public_ip": ec2_instance.public_ip_address

    })
print(instances)
 

Это доступные атрибуты.