Moto, как создать экземпляр EC2 - InvalidAMIID.NotFound

Используя moto , как вы можете создать экземпляр EC2, поскольку нет доступных AMI для запуска экземпляра. Это репо, похоже, «предварительно загружает» AMI, которые позже используются в тестах, но я не уверен, как они создаются https://github.com/spulec/moto/blob/master/tests/test_ec2/test_instances.py#L25https://github.com/spulec/moto/blob/master/moto/ec2/resources/amis.json

я пытался позвонить .describe_images(Owners=["amazon"])однако все AMI, возвращаемые при использовании в вызове run_instances, дают следующую ошибку.

      from moto import mock_ec2


@mock_ec2
def Test_create_ec2():
    boto3.client('ec2').run_instances(ImageId="ami-1234abcd", MinCount=1, MaxCount=1)

botocore.exceptions.ClientError: An error occurred (InvalidAMIID.NotFound) when calling the RunInstances operation: The image id '[ami-1234abcd]' does not exist

Эта проблема также связана с нерешенным вопросом Как создать ami с определенным идентификатором изображения с помощью moto?

1 ответ

Призыв к describe_imagesдает список всех доступных ImageId. Следующий тест работает против текущей ветки разработки Moto:

      @mock_ec2
def test_all_images():
    client = boto3.client("ec2", region_name="us-east-1")
    images = client.describe_images(Owners=["amazon"])["Images"]
    for image in images:
        client.run_instances(ImageId=image["ImageId"], MinCount=1, MaxCount=1)

Предварительно загруженные изображения взяты из этого файла:https://github.com/spulec/moto/blob/master/moto/ec2/resources/amis.json .

Если вы хотите заменить свои собственные AMI, вы можете использовать следующую переменную среды: MOTO_AMIS_PATH=/full/path/to/amis.json

Этот JSON-файл должен быть в том же формате, что и указанный выше. Обратите внимание, что переменная среды должна быть установлена ​​до того, как Moto будет инициализирован — эти AMI загружаются в тот момент, когда вы вызываете from moto import mock_ec2, поэтому переменная среды должна быть установлена ​​до того, как произойдет импорт.

Другие вопросы по тегам