如何使用 boto3 从 Amazon EBS 快照创建 AMI

使用 boto3 lib 在 AWS 中创建映像 (AMI) 时,提供以下参数:


ec2.create_image(Name=name, BlockDeviceMappings=[{'DeviceName':device_name,'Ebs':{'SnapshotId':snapshot_id, 'DeleteOnTermination': delete_on_term,

            'VolumeSize':10, 'VolumeType':'gp2'}}])

我收到此错误:Missing required parameter in input: "InstanceId" 但是当我从用户界面创建图像时,不需要实例 ID。


在下图中,您可以看到我可以从“快照”页面创建图像,而无需指定实例 ID。

http://img.mukewang.com/62a834530001403119170949.jpg

有人知道解决方法吗?谢谢。



Helenr
浏览 116回答 3
3回答

摇曳的蔷薇

使用此函数 register_image 从快照创建图像response = client.register_image(    ImageLocation='string',    Architecture='i386'|'x86_64'|'arm64',    BlockDeviceMappings=[        {            'DeviceName': 'string',            'VirtualName': 'string',            'Ebs': {                'DeleteOnTermination': True|False,                'Iops': 123,                'SnapshotId': 'string',                'VolumeSize': 123,                'VolumeType': 'standard'|'io1'|'gp2'|'sc1'|'st1',                'Encrypted': True|False,                'KmsKeyId': 'string'            },            'NoDevice': 'string'        },    ],    Description='string',    DryRun=True|False,    EnaSupport=True|False,    KernelId='string',    Name='string',    BillingProducts=[        'string',    ],    RamdiskId='string',    RootDeviceName='string',    SriovNetSupport='string',    VirtualizationType='string')

呼啦一阵风

从这里的官方文档: https ://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.create_image“InstanceId”是必需的 - 它必须包含您尝试从中创建图像的实例 ID。

翻翻过去那场雪

从控制台创建映像时,选择选择实例并选择创建映像选项。因此控制台使用要传递的选定实例 ID 来创建图像。当您需要使用 boto3 创建图像时,您需要告诉 API 您正在为哪个实例创建图像,因此您需要传入参数。尝试这个ec2.create_image(instance_id=yourInstanceId, Name=name, BlockDeviceMappings=[{'DeviceName':device_name,'Ebs':{'SnapshotId':snapshot_id, 'DeleteOnTermination': delete_on_term,            'VolumeSize':10, 'VolumeType':'gp2'}}])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python