【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。

 



發佈了65 篇原創文章 · 獲贊 66 · 訪問量 92萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章