我想启动一个ec2实例,然后终止它,并确保在实例终止时EBS存储也被删除,所以我需要设置deleteonternation标志。 我用boto试过了:
conn = boto.ec2.connect_to_region('us-east',\
aws_access_key_id=os.getenv('aws_access_key_id'),\
aws_secret_access_key=os.getenv('aws_secret_access_key'))
groups = conn.get_all_security_groups(filters={'group-name': ['xxx']})
reservation = conn.run_instances(
ami,
key_name=os.getenv('key_name'),
instance_type=instance_type,
security_groups=groups)
tag = os.getenv('BUILD_NUMBER', None)
instance = reservation.instances[0]
# Note: setting boto.ec2.blockdevicemapping.BlockDeviceType().delete_on_termination = True
# does not help.
instance.modify_attribute('blockDeviceMapping', ['/dev/sda1=1'])
上面代码的最后一行是我使用的技巧。它适用于某些实例,但对于我要使用的实例,我遇到以下错误:
^{pr2}$有什么办法实现我所描述的吗。在
更新: 我跑了:
conn.get_instance_attribute(instance_id=instance.id, attribute='blockDeviceMapping')['blockDeviceMapping']
{u'/dev/sda1': <boto.ec2.blockdevicemapping.BlockDeviceType object at 0x2a62190>}
所以这个闭塞装置是正确的。在
我知道了,想和大家分享一下:
相关问题 更多 >
编程相关推荐