我有写的Boto程序(不boto3!)。该程序成功创建AMI,但与标准的根卷。我加BlockDeviceMappings像boto3但是有错误的一群。
ami_id = instance.create_image(name=get_name("ami"),
description="MP\
%s" % (get_name("ami")[-3:]),
BlockDeviceMappings=[
{
'DeviceName': '/dev/sda1',
'Ebs': {
'VolumeSize': 30,
},
},
],)
经过这个脚本,不正确的语法。什么将成为博托正确的语法?
像你所说,你的语法是错误的。我没有试过,但是这应该给你一个线索。 boto.ec2.blockdevicemapping
类boto.ec2.blockdevicemapping.BlockDeviceMapping(连接=无)
创建EC2实例时表示BlockDeviceTypes的集合。
dev_sda1 = BlockDeviceType()
dev_sda1.size = 100 # change root volume to 100GB instead of default
bdm = BlockDeviceMapping()
bdm[‘/dev/sda1’] = dev_sda1
ami_id = instance.create_image(name='...', block_device_mapping=bdm, ....)
基于该helloV建议我修改了代码,但最终的脚本是有些不同。在伯特(未boto3)一个不能包括block_device_mapping入instance.create_image,需要使用的方法connection.create_image。因此,工作代码如下:
dev_sda1 = BlockDeviceType()
dev_sda1.size = 30 # change root volume to 30GB instead of default
bdm = BlockDeviceMapping()
bdm['/dev/sda1'] = dev_sda1
ami_id = ec2_connection.create_image(instance.id, name="NewAmi, description="NewAMI",
block_device_mapping=bdm)