Как запрашивать изображения AMI из консоли AWS в зависимости от их статуса: доступно с помощью Python boto3? - PullRequest
0 голосов
/ 14 сентября 2018

Мне нужно получить подробную информацию об изображениях AMI из консоли AWS в зависимости от их состояния: доступно.

Когда я пытался, он застревает и не печатает ни одной строки.

Python code 1:

conn = boto3.resource('ec2')
image = conn.describe_images()
print(image) # prints nothing
for img in image:
  image_count.append(img)
print("img count ->" + str(len(image_count)))
#prints nothing

Есть ли какие-нибудь точные ключевые слова для этого изображения AMI? Пожалуйста, исправьте меня

Ответы [ 2 ]

0 голосов
/ 15 сентября 2018

Важно понимать, что для AMI каждый AMI предоставляется.

Если вы хотите перечислить только AMI, принадлежащие вашей учетной записи, используйте Owners=self:

import boto3

ec2_client = boto3.client('ec2')

images = ec2_client.describe_images(Owners=['self'])

available = [i['ImageId'] for i in images['Images'] if i['State'] == 'available']
0 голосов
/ 14 сентября 2018

Если вы хотите выполнить свою собственную фильтрацию, измените значение describe_images(Filters...) на describe_images(). Примечание: describe_images() возвращает много данных. Будьте готовы подождать несколько минут. В моей системе 89 362 изображения для нас-восток-1.

import boto3

client = boto3.client('ec2')

image_count = []

response = client.describe_images(Filters=[{'Name': 'state', 'Values': ['available']}])

if 'Images' in response:
    for img in response['Images']:
        image_count.append(img)

print("img count ->" + str(len(image_count)))
...