num*_*s1x 3 python amazon-ec2 boto
我正在尝试创建一个简单的脚本,我可以使用python中的boto模块构建它.我想定义一些允许我创建和终止实例的函数.我在获取终止部分所需的实例ID时遇到问题.我可以从get_all_instances()属性获取预留ID,但我无法找到一种简单的方法来获取给定的预留ID,并从中获取实例ID.
如果它不是很明显,我是python的新手,并没有把等同于不同类型的东西挂起来.
如果我有预订ID,res =预订:r-xxxxxxx,我还没有在API doc中找到如何调用相关的实例ID.有人能指出我正确的方向吗?
我要说的第一点是保留可以有多个与之关联的实例.它并不总是一对一的映射.如果您调用run_instances
并请求创建多个实例,则所有实例都将与同一个预留相关联.
你说你正在使用这种get_all_instances
方法.此方法返回Reservation对象列表.每个Reservation对象都可能有多个与之关联的Instance对象.Reservation对象并不是那么有用,所以通常你想要做的就是立即将Reservation对象列表转换为Instance对象列表.一种方法是:
import boto.ec2
conn = boto.ec2.connect_to_region('us-west-2') # or whatever region you want
reservations = conn.get_all_instances() # could limit results with filters
instances = []
for r in reservations:
instances.extend(r.instances)
Run Code Online (Sandbox Code Playgroud)
该变量instances
现在应该是Instance对象的列表.每个Instance对象都有一个名为的属性id
,包含它的唯一实例id.
执行相同操作的更紧凑的方法是使用嵌套列表推导,如下所示:
# same first three lines as above
instances = [i for r in reservations for i in r.instances]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7557 次 |
最近记录: |