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

Я использую moto, чтобы высмеивать aws для моего приложения. Мне интересно, можно ли создать ami в мото с определенным идентификатором изображения (например: ami-1a2b3c4d). Спасибо!

2 ответа

Вы хотите использовать предварительно загруженные ресурсы, такие как этот файл: https://github.com/spulec/moto/blob/master/moto/ec2/resources/amis.json .

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

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

(Скопировано с /questions/62499975/moto-kak-sozdat-ekzemplyar-ec2-invalidamiidnotfound/62627011#62627011)

Вот пример из документов:

from . import add_servers
from moto import mock_ec2

@mock_ec2
def test_add_servers():
    add_servers('ami-XXXXXXX', 2)

    client = boto3.client('ec2', region_name='us-west-1')
    instances = client.describe_instances()['Reservations'][0]['Instances']
    assert len(instances) == 2
    instance1 = instances[0]
    assert instance1['ImageId'] == 'ami-XXXXXXXX'

Вы можете выбрать AMI ID как хотите, ограничений нет. Я не уверен, что понимаю, в чем проблема, поскольку это "фиктивные" ресурсы, поэтому они могут быть в любом формате / содержать любое имя, которое вы хотите.

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