Python 在boto中创建AWS ami的正确语法是什么?
我用boto而不是boto3!编写程序!。此程序成功创建了具有标准根卷的AMI。我在boto3中添加了BlockDeviceMappings,但出现了一系列错误Python 在boto中创建AWS ami的正确语法是什么?,python,amazon-web-services,boto,Python,Amazon Web Services,Boto,我用boto而不是boto3!编写程序!。此程序成功创建了具有标准根卷的AMI。我在boto3中添加了BlockDeviceMappings,但出现了一系列错误 ami_id = instance.create_image(name=get_name("ami"), description="MP\ %s" % (get_name("ami")[-3:]),
ami_id = instance.create_image(name=get_name("ami"),
description="MP\
%s" % (get_name("ami")[-3:]),
BlockDeviceMappings=[
{
'DeviceName': '/dev/sda1',
'Ebs': {
'VolumeSize': 30,
},
},
],)
已检查此脚本,但语法不正确。boto的正确语法是什么?正如您所提到的,您的语法是错误的。我没试过这个,但这应该能给你一个线索 类boto.ec2.blockdevicemapping.BlockDeviceMappingconnection=None 表示创建ec2时块设备类型的集合 实例
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的建议,我修改了代码,但最终的脚本有所不同。在boto not boto3中,不能将块\设备\映射包含到实例中。创建\映像,需要使用方法connection.create\映像。因此,工作代码如下:
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)
几乎正确,唯一需要使用ec2连接来创建具有boto中的块\设备\映射的图像。instance.create\u image没有用于块\u设备\u映射的选项。如果你改变,我会接受答案,谢谢