【Amazon EC2 Python API系列】获取实例信息

上一节我们提到了如何连接EC2,也就是boto.ec2.connect_to_region()方法。在连接到EC2后,我们可以获取当前所在区域的instance信息,下面我们来看几种常用的方法。首先还是先连接到EC2:

import boto
conn = boto.ec2.connect_to_region('ap-northeast-1')

reservations = conn.get_all_instances()

这个方法会获取class boto.resultset.ResultSet 并返回一个list值。类似于:

[Reservation:xxxxxxx, Reservation:xxxxxxx]

这里要理解reservation的概念,它不是instance的id,它是包含instance的一个object或者理解为action。

我们可以在AWS的控制台中通过手动的 Launch instance来理解:

在我们手动launch一个实例的时候,我们可以配置instance的type、network、count等等一系列的属性值,最后Launch出我们想要的instance。当然我们可以一次Launch一个instance也可以一次launch N多个instance。一个成功Launch的过程就是一个reservation,所以一个reservation里可以包含1个instance也可以包含N多次instance,也就是说reservation是一个成功Launch所产生的对象。

前面我们获取到了所有的reservation,而且这是一个列表,那么列表中第一个元素reservations[0]就是该区域目前存在的第一个被Launch的动作。我们通过这个元素可以取出该reservation中的instance信息。

instances = reservations[0].instances

这里获取到的instances 同样是一个list,这里的元素就是具体的instance的id,也就是AWS控制台上可以看到的Instance_ID,一个id对应一个instance。

instance = instances[0]
这样我们就可以取到instance,它是一个  class 'boto.ec2.instance.Instance',也就是一个实例化后的instance class。

它有非常多的属性可以供我们查看,我们可以使用instance.__doc__来查看它的说明我文档,你能在这里找到所有的属性值。AWS控制台上大多数的值都可以在这里获取,比如常用的:

state 运行状态

launch_time 创建日期

ip_address public ip

private_ip_address private ip

更多属性值可以参考官方文档http://boto.readthedocs.org/en/latest/ref/ec2.html#module-boto.ec2.instance

下一节我们讲解如何通过boto Launch一个instance。

 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值