使用Python获取Elastic beanstalk的所有环境名称列表

时间:2017-10-31 10:04:34

标签: python amazon-web-services boto3

我使用下面的python代码来获取AWS Elastic Beanstalk的ApplicationName和EnvironmentName。谁能告诉我如何使用for循环或其他方式打印/获取所有环境名称。感谢

#!/usr/bin/env python3
import boto3
import json

def get_info():
    try:
        eb = boto3.client('elasticbeanstalk',"us-east-1")
        response = eb.describe_environments()
        app_name=(response['Environments'][0]['ApplicationName'])
        env_name=(response['Environments'][0]['EnvironmentName'])
        print app_name
        print env_name
    except:
        raise

if __name__ == '__main__':
    get_info()

2 个答案:

答案 0 :(得分:1)

我不确定代码,因为我目前无法测试它,但是,假设response['Environments']是一个列表,以下内容应该可行。请注意,如果它不是列表,那么它将无法工作,或者您可能需要稍微更改一下代码才能获得正确的结果。

#!/usr/bin/env python3
import boto3
import json

def get_info():
    try:
        eb = boto3.client('elasticbeanstalk',"us-east-1")
        response = eb.describe_environments()
        for item in response['Environments']:
            app_name = response['Environments'][item]['ApplicationName']
            env_name = response['Environments'][item]['EnvironmentName']
            print app_name
            print env_name
    except:
        raise

if __name__ == '__main__':
    get_info()

另外,鉴于您正在使用try-except块,我会说捕获您想捕获的特定异常总是更明智。我不确定会是哪一个,但all-catch除了通常不是一个好主意。

答案 1 :(得分:0)

感谢@SRC;我对您的脚本进行了以下更改,以使其对我有用。

 app_name = item['ApplicationName']
 env_name = item['EnvironmentName']