如何使用Boto列出所有正在运行的EMR群集?

How do I list all running EMR clusters using Boto?(如何使用Boto列出所有正在运行的EMR群集?)

本文介绍了如何使用Boto列出所有正在运行的EMR群集?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用boto列出我的AWS帐户中的所有运行群集?使用命令行,我可以使用以下命令获取它们:
aws emr list-clusters --profile my-profile --region us-west-2 --active

但是,我想使用boto3做同样的事情。但是,以下代码不返回任何群集:

import boto3

session = boto3.Session(profile_name='my-profile')

client = session.client('emr', region_name= 'us-west-2')

response = client.list_clusters(
    ClusterStates=['RUNNING']
)

print response

结果:

{u'Clusters': [], 'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': '577f3961-bdc80772f266', 'HTTPHeaders': {'x-amzn-requestid': '577f3961-34e5-11e7-a12a-bdc80772f266', 'date': 'Tue, 09 May 2017 18:28:47 GMT', 'content-length': '15', 'content-type': 'application/x-amz-json-1.1'}}}

推荐答案

这里是分页器解决方案。

import boto3

boto3 = boto3.session.Session(region_name='ap-northeast-2')
emr = boto3.client('emr')

page_iterator = emr.get_paginator('list_clusters').paginate(
    ClusterStates=['RUNNING','WAITING']
)

for page in page_iterator:
    for item in page['Clusters']:
        print(item['Id'])

结果为

j-21*****
j-3S*****

这篇关于如何使用Boto列出所有正在运行的EMR群集?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:如何使用Boto列出所有正在运行的EMR群集?

基础教程推荐