启动新实例时,我一直在使用逻辑来指定磁盘大小。但是,问题在于它需要知道DeviceName
,具体取决于实例类型。通常是/dev/sda1
,但是在p3dn.24xlarge
实例上,默认磁盘却出现在/dev/xvda
设备上,所以我的实例最终有2个卷:
/dev/xvda 8 gp2 vol-06402d0bcb07d3b96
/dev/sda1 500 gp2 vol-0e2593027d73fbc52
我可以将p3dn作为特殊情况进行硬连接,但是不确定是否将来有可能打破这种情况,是否有更好的建议?
代码
assert disk_size > 0
ebs = {
'VolumeSize': disk_size,
'VolumeType': 'gp2',
}
args['BlockDeviceMappings'] = [{
'DeviceName': '/dev/sda1',
'Ebs': ebs
}]
instances = ec2.create_instances(**args)
答案 0 :(得分:0)
image = list(ec2.images.filter(ImageIds=['my-image-id']))[0]
args['BlockDeviceMappings'] = [{
'DeviceName': image.root_device_name,
'Ebs': ebs
}]