lis*_*sak 5 amazon-web-services coreos boto3 aws-ec2
我无法从文档和源代码中找出如何定义根设备的大小.
您可以使用BlockDeviceMappings部分指定N个附加块设备,您可以在其中声明其大小.但是没有办法设置根卷的大小.因此,它始终创建一个根卷大小为8GB的实例,这是默认值.
小智 12
今天我自己也谈到这个问题,原来的海报可能要迟到了,但是如果其他人偶然发现这个问题,我会做以下事情:
import boto3
ec2 = boto3.resource('ec2',
region_name='eu-west-1',
aws_access_key_id='my-key',
aws_secret_access_key='my-secret')
instance = ec2.create_instances(ImageId='my-image-id',
BlockDeviceMappings=[{"DeviceName": "/dev/xvda","Ebs" : { "VolumeSize" : 50 }}])
Run Code Online (Sandbox Code Playgroud)
上述已被截断(您需要传送多个参数到create_instances为其他值,InstanceType等),但本质上通过根设备(在这种情况下的/ dev/xvda)作为具有所需体积的BlockDeviceMappings值的一部分大小(上例中为50GB).
与 Steve Jeffereies 提到的一样,命名 DeviceName 是关键。我能够使用您通常在 AWS 控制台上看到的 /dev/sda1。以下是使用磁性的工作示例,
BlockDeviceMappings=[
{
'DeviceName': '/dev/sda1',
'Ebs': {
'VolumeSize': 30,
'VolumeType': 'standard'
}
}
]
Run Code Online (Sandbox Code Playgroud)
Joh*_*ein -1
请参阅Stackoverflow:如何使用 Boto 启动 EC2 实例,指定 EBS 的大小?
另外,还有一种通过AWS 命令行界面 (CLI)执行此操作的方法:
aws ec2 run-instances --image-id ami-xxxxxxxx --instance-type m1.xlarge --block-device-mappings '{"DeviceName": "/dev/sda1","Ebs" : { "VolumeSize" : 50 }}'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3277 次 |
| 最近记录: |