3

我有一个使用 Windows Server 2008 作为 EBS 根设备的 AMI。我可以使用 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)

当我运行此代码时,会启动一个实例并且我可以访问,但我只看到已安装的根设备。

4

1 回答 1

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 管理控制台中。您仍然只能看到您的根设备。

是一个帮助我弄清楚的代码示例/论坛问题。

于 2012-05-06T19:30:40.600 回答