Как создать экземпляр ec2 с помощью boto3
Можно ли создать экземпляр ec2, используя boto3 в python? Документ Boto3 здесь не помогает, и я не смог найти никаких полезных документов в интернете. пожалуйста, предоставьте некоторые примеры кодов / ссылок.
4 ответа:
API изменился, но он прямо там, в документации
# Boto 3 ec2.create_instances(ImageId='<ami-image-id>', MinCount=1, MaxCount=5)
Ссылка на документацию: http://boto3.readthedocs.org/en/latest/guide/migrationec2.html#launching-new-instances
См. API docs имеет все доступные опции для создания экземпляра
Http://boto3.readthedocs.org/en/latest/reference/services/ec2.html#EC2.Subnet.create_instances
Ссылка, которую вы действительно ищете в документации, - это
create_instances()
метод объекта ServiceResource . Это тип объекта, который вы вызываете, если создаете ресурс EC2 следующим образом:s = boto3.Session(region_name="us-west-1") ec2 = s.resource('ec2') ... instance = ec2.create_instances(**y_kwargs)
Это содержит более подробный пример и более длинный список доступных параметров.
Вы также можете получить значения параметров для инстансов AWS, которые уже запущены, используя интерфейс командной строки AWS:
$ aws ec2 describe-instances
При этом выводится файл JSON, из которого соответствующие параметры могут быть извлечены и переданы в Метод
create_instances()
. (Или вы можете использовать клиент boto и вызватьdescribe_instances()
метод .)(Примечание: Если вам интересно, в чем разница между клиентом и ресурсом, они служат разным целям для одной и той же цели - клиент является интерфейсом более низкого уровня, а ресурс-интерфейсом более высокого уровня.)
Вы можете запустить код, который я использовал, изboto3 docs . Вы можете добавлять или удалять параметры в соответствии с вашими требованиями, но это то, что вам обычно требуется:
import boto3 client = boto3.client('ec2', region_name='us-west-2') response = client.run_instances( BlockDeviceMappings=[ { 'DeviceName': '/dev/xvda', 'Ebs': { 'DeleteOnTermination': True, 'VolumeSize': 8, 'VolumeType': 'gp2' }, }, ], ImageId='ami-6cd6f714', InstanceType='t3.micro', MaxCount=1, MinCount=1, Monitoring={ 'Enabled': False }, SecurityGroupIds=[ 'sg-1f39854x', ], )