2016-03-03 51 views
1

我正在使用boto以cluster_id標記返回實例,該標記是唯一標識集羣的字符串uuid。AWS boto標記在通過驗證過濾標記過濾時返回0個實例

我試圖使用boto來返回具有該標記的實例,以確保集羣已經配置並準備就緒。因此,當具有cluster_id標記的單個實例的數量與期望的數量相匹配時,羣集已準備就緒,我的程序可以開始下一步的自動化。

這些實例在一個自動縮放組中,但我不知道爲什麼boto返回0.我已經驗證了cluster_id在程序中是一樣的,並且每個實例的aws都是一樣的。預訂只是返回0

Python代碼

ec2_conn = boto.connect_ec2(aws_access_key_id=aws_access_key_id, 
          aws_secret_access_key=aws_secret_access_key) 
reservations = ec2_conn.get_all_instances(filters={"tag:cluster_id":str(cluster_id_tag)}) 
instances = [i for r in reservations for i in r.instances] 
number_of_instances = len(instances) 

cluster_id var in the program = 50a5fab0-e166-11e5-9ee9-a45e60e4b9b1 

ASG標籤:

ElasticClientNode no           Yes 
Name    elasticsearch-loading-master-nodes-cluster Yes 
a_or_b   a           Yes 
cluster_id  50a5fab0-e166-11e5-9ee9-a45e60e4b9b1   Yes 
version   1.0           Yes 

實例標記

ElasticClientNode   no           Show Column 
Name      elasticsearch-loading-master-nodes-cluster Hide Column 
a_or_b     a            Show Column 
aws:autoscaling:groupName elasticsearch         Show Column 
cluster_id    50a5fab0-e166-11e5-9ee9-a45e60e4b9b1   Show Column 
version     1.0           Show Column 
+0

你能否用其他標籤查詢,例如'Name'? – helloV

+0

它適合我。其他一些測試方法。在'get_all_instances'之前打印'cluster_id_tag'並且看到你想要的值。 – helloV

回答

1

答案用connect_to_region不connect_ec2

ec2_conn = boto.ec2.connect_to_region("us-west-2", 
           aws_access_key_id=aws_access_key_id, 
           aws_secret_access_key=aws_secret_access_key)