#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)
Это доступные атрибуты.