Как создать 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 как хотите, ограничений нет. Я не уверен, что понимаю, в чем проблема, поскольку это "фиктивные" ресурсы, поэтому они могут быть в любом формате / содержать любое имя, которое вы хотите.