我有一个AMI,Windows Server 2008作为EBS根设备。我可以使用boto和远程桌面启动它的实例,但我似乎无法安装它的临时存储。我的BlockDeviceMapping有问题吗?
这是我的代码:
import boto
from boto.ec2.connection import EC2Connection
conn = EC2Connection(mykey, mysecretkey)
bdm = boto.ec2.blockdevicemapping.BlockDeviceMapping({'/dev/xvdb':'ephemeral0'})
conn.run_instances(myami, key_name=mykeyname,security_groups=[mysecgroup],block_device_map=bdm)
当我运行此代码时,一个实例会启动并且我可以访问,但我只看到根设备已安装。
答案 0 :(得分:5)
我明白了。我见过一些例子让我相信块设备映射应该是字符串到字符串映射,但它实际上应该是BlockDeviceType映射的字符串。以下是我如何使用它:
from boto.ec2.connection import EC2Connection
from boto.ec2.blockdevicemapping import BlockDeviceType, BlockDeviceMapping
conn = EC2Connection(mykey, mysecretkey)
xvdb = BlockDeviceType()
xvdb.ephemeral_name='ephemeral0'
bdm = BlockDeviceMapping()
bdm['/dev/xvdb'] = xvdb
conn.run_instances(myami, key_name=mykeyname,security_groups=[mysecgroup],block_device_map=bdm)
当我登录时,我可以看到我的短暂驾驶。并非它不会作为块设备显示在AWS管理控制台中。您仍然只能看到您的根设备。
Here是一个代码示例/论坛问题,帮我解决了问题。