Boto3 ec2 ​​description_images слишком медленный - PullRequest
0 голосов
/ 31 мая 2019

У меня есть этот фрагмент кода для получения изображений машин Amazon:

session.client('ec2', region_name=AWS_DEFAULT_REGION).describe_images(ExecutableUsers=[
               'all',
           ],
           Filters=[
               {
                   'Name': 'platform',
                   'Values': [
                       'windows',
                   ]
               },
               {
                   'Name': 'state',
                   'Values': [
                       'available',
                   ]
               },
               {
                   'Name': 'image-type',
                   'Values': [
                       'machine',
                   ]
               },
               {
                   'Name': 'virtualization-type',
                   'Values': [
                       'hvm',
                   ]
               },
               {
                   'Name': 'root-device-type',
                   'Values': [
                       'ebs',
                   ]
               },
           ],
           Owners=[
               '679593333241', # all public ami's from amazon as owner
           ])

Это работает, но ответ слишком медленный, я знаю, что список AMI очень длинный, но мне не нужны всеAMI в списке, мне нужны только самые популярные элементы AMI (red hat, amazon linux, centos и т. Д.), Если я использую Owners = ['self'], возвращается ноль, как мне составить список элементов AMI сортировки, напримерв консоли aws в меню быстрого запуска при запуске нового экземпляра (см. изображение)?в этом списке 38 элементов.

quickstart menu

1 Ответ

1 голос
/ 31 мая 2019

Вместо использования describe_images() может потребоваться использовать особую функцию Amazon EC2 Systems Manager - хранилище параметров , которая может предоставить идентификатор AMI последних AMI, управляемых Amazon.

Например:

aws ssm get-parameters --names /aws/service/ecs/optimized-ami/amazon-linux-2/recommended --region us-east-1

Возвращает:

{
    "Parameters": [
        {
            "Name": "/aws/service/ecs/optimized-ami/amazon-linux-2/recommended",
            "Type": "String",
            "Value": "{\"schema_version\":1,\"image_name\":\"amzn2-ami-ecs-hvm-2.0.20181017-x86_64-ebs\",\"image_id\":\"ami-0a6be20ed8ce1f055\",\"os\":\"Amazon Linux 2\",\"ecs_runtime_version\":\"Docker version 18.06.1-ce\",\"ecs_agent_version\":\"1.21.0\"}",
            "Version": 1,
            "LastModifiedDate": 1539908415.817,
            "ARN": "arn:aws:ssm:us-east-1::parameter/aws/service/ecs/optimized-ami/amazon-linux-2/recommended"
        }
    ],
    "InvalidParameters": []
}

См:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...