我使用下面的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()
答案 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']