我有大约55个EMR集群(所有集群都被终止)并且一直在尝试使用 boto 中的 list_clusters 方法检索整个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>
我应该在标记参数中提供什么,以便我可以正确地对查询进行分页?
谢谢!
答案 0 :(得分:0)
尝试
emr_object.describe_jobflows(states=["TERMINATED"])
它有效!此方法返回所有集群。
答案 1 :(得分:0)
你可以第一次传入无。
如果你回来的ClusterListResult有一个标记属性,那么你可以在以后传递它,例如。
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