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

问题描述 投票:1回答:3

如何使用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'}}}
python amazon-web-services boto3
3个回答
0
投票

来自文档:

提供此AWS账户可见的所有集群的状态。

表示您可能无权使用您提供的会话凭据列出这些群集。尝试使用awi正在使用的凭据,看看它是否有效。


0
投票

群集最初处于等待状态,当有针对群集运行的作业时,它将更改为“正在运行”状态。在您的情况下,如果群集中至少运行了1个作业,它将仅返回Id。

将其更改为:

ClusterStates=['WAITING', 'RUNNING'] 

0
投票

试试这个

import boto3
client = boto3.client("emr")
running_clust = client.list_clusters(ClusterStates=['WAITING'])

print(running_clust)

使用'等待','跑步','开始'等

  • 项目清单
热门问题
推荐问题
最新问题