2017-11-02 8 views
0

私は次のpython boto3コードを持っています。それは正常に私のすべてのAutoScalingGroupの名前を取得する "サブ"の値を持つ "サブ環境"JMESPathを使用してAWS自動スケーリンググループ内の2つのタグを検索します

私が本当に望むのは、この "foo"の値を持つ "StackName"を追加することです私は正確に私が望む結果を得る。私はJMESPathに慣れていないので、これを行う方法がわかりません。

def get_autoscale_groups(): 
asg_name_list =[] 

while True: 
    paginator = client.get_paginator('describe_auto_scaling_groups') 
    page_iterator = paginator.paginate(
     PaginationConfig={'PageSize': 100} 
    ) 
    for page in page_iterator: 

     filtered_asgs = page_iterator.search(
      'AutoScalingGroups[] | [?contains(Tags[?Key==`{}`].Value, `{}`)]'.format(
      'SubEnvironment', 'teal') 
      #Want to add 'StackName', 'foo' somehow 
     ) 

     for asg in filtered_asgs: 
      asg_name_list.append(asg['AutoScalingGroupName']) 
    try: 
     marker = page['Marker'] 
     print(marker) 

    except KeyError: 
     break 

#print(asg_name_list) 
return asg_name_list 
+0

をこれは役立つはずます。http:// jmespath .org/specification.html?highlight = boolean#and-expressions。タグ(?Key == 'a').Value、' b')&& contains(タグ[?Key == 'c'] .Value、' d') – jarmod

答えて

0

Code:

import boto3 
asg_name_list =[] 

client = boto3.client('autoscaling') 
while True: 
    paginator = client.get_paginator('describe_auto_scaling_groups') 
    page_iterator = paginator.paginate(
     PaginationConfig={'PageSize': 100} 
    ) 
    for page in page_iterator: 

     filtered_asgs = page_iterator.search(
      'AutoScalingGroups[] | [?contains(Tags[?Key==`{}`].Value, `{}`) && contains(Tags[?Key==`{}`].Value,`{}`)]'.format(
      'SubEnvironment', 'teal','StackName','foo') 
     ) 

     for asg in filtered_asgs: 
      asg_name_list.append(asg['AutoScalingGroupName']) 
    try: 
     marker = page['Marker'] 
     print(marker) 

    except KeyError: 
     break 

print(asg_name_list) 

あなただけのAWS-CLIコマンドをしたい場合は、以下のいずれかを使用します。

aws autoscaling describe-auto-scaling-groups --query 'AutoScalingGroups[?contains(Tags[?Key==`SubEnvironment`].Value,`teal`) && contains(Tags[?Key==`StackName`].Value,`foo`)].[AutoScalingGroupName]' --output text 
関連する問題