【发布时间】:2013-05-09 16:42:31
【问题描述】:
我有两个与 Amazon ec2 API 相关的问题。 虽然我真的很想使用 python 和 boto 包,但我就是这样 呈现下面的代码,我得到完全相同的结果 等效的 shell ec2-* 命令。
首先,我想从基于 Debian 的公共 AMI 映像中生成一个实例, 但我想要一个更大的根“分区”(因为我想安装额外的 图像中没有的 Debian 软件包)。文档引导我 相信我应该这样做:
import boto.ec2 as BE
import boto.ec2.blockdevicemapping as BEM
conn=BE.connect_to_region('us-east-1')
bdt=BEM.BlockDeviceType()
# I want a 10G root device, not a 1G
bdt.size=10
bdm=BEM.BlockDeviceMapping()
bdm['/dev/sda1']=bdt
reservations=conn.run_instances('ami-1234abcd', key_name='mykey',
instance_type='m1.medium', block_device_map=bdm)
但是,这似乎完全没有效果。实例生成良好, 正确的图像和一切,但根设备仍然只有 1G :-(
那么,我想也许我需要以某种方式初始化 BlockDeviceMapping 在我修改它之前的图像。我试过这样:
bdm=conn.get_image_attribute('ami-1234abcd', attribute='blockDeviceMapping')
这会导致一些奇怪的异常跟踪显示“已尝试” 未经授权的操作'或类似的。即使是图像也会发生这种情况 我自己通过冻结另一个实例创建的!
在创建设备时修改设备配置很容易 可怕的网络界面中的实例。请告诉我怎么做 以编程方式!谢谢。
【问题讨论】:
-
您是否在启动实例后尝试调整文件系统的大小?
标签: python amazon-ec2 amazon boto