无法使用boto对EMR集群进行分页
我有大约55个EMR集群(它们都已经被终止了),我一直在尝试使用list_clusters方法从boto中获取这55个EMR集群的全部信息。我在网上找了很多关于如何处理boto结果集分页的例子,但都没有找到合适的。根据这个说法:
emr_object.list_clusters(cluster_states=["TERMINATED"], marker="what_should_i_use_here").clusters
我一直收到InvalidRequestException的错误:
boto.exception.EmrResponseError: EmrResponseError: 400 Bad Request
<ErrorResponse xmlns="http://elasticmapreduce.amazonaws.com/doc/2009-03-31">
<Error>
<Type>Sender</Type>
<Code>InvalidRequestException</Code>
<Message>Marker 'what_should_i_use_here' is not valid.</Message>
</Error>
<RequestId>555b91bd-c122-11e3-8e31-abc75abdb39d</RequestId>
</ErrorResponse>
我应该在marker参数中提供什么,以便我可以正确地进行查询的分页呢?
谢谢!
2 个回答
0
你第一次可以传入None。
如果你得到的ClusterListResult里面有一个叫做marker的属性,那么你之后可以把它传入,比如:
m=None
while True:
try:
cluster_list_result=emr_object.describe_jobflows(states=['TERMINATED'], marker=m)
.... Do whatever with cluster_list_result.clusters
m=cluster_list_result.marker # See if there are more
except AttributeError:
break
0
我试过用
emr_object.describe_jobflows(states=["TERMINATED"])
这个方法可以正常工作!它会返回所有的聚类。