Как подключить временное хранилище к экземпляру Windows ec2 с помощью boto?

У меня есть 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)

Когда я запускаю этот код, запускается экземпляр, и я могу получить доступ, но вижу только смонтированное корневое устройство.


person oob    schedule 06.05.2012    source источник
comment
Я не знаю boto, но это выглядит так, как будто оно сопоставляет имя устройства с драйвером устройства, но ничего не делает для форматирования или монтирования устройства в пространство имен.   -  person sarnold    schedule 06.05.2012
comment
@сарнольд хмммм. мое чтение документации, похоже, указывает на то, что aws сделает монтирование за вас, но я могу ошибаться. см. раздел «Доступ к хранилищам инстансов в инстансах Windows с поддержкой Amazon EBS» здесь: docs .amazonwebservices.com/AWSEC2/latest/UserGuide/   -  person oob    schedule 06.05.2012


Ответы (1)


Я понял. Я видел несколько примеров, которые заставили меня поверить, что карта блочного устройства должна быть картой строки в строку, но на самом деле это должна быть карта строки в 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 как блочное устройство. Вы по-прежнему видите только свое корневое устройство.

Вот пример кода/вопрос на форуме, который мне помог понять это.

person oob    schedule 06.05.2012