我正在尝试列出AWS上的所有管道,并将nextToken作为会话令牌传递。 然而,这似乎没有用,有什么想法吗?
import boto3
def list_pipelines():
session = boto3.Session(
aws_access_key_id="AKIAJMO63R4OAY6HMXUQ",
aws_secret_access_key="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"
)
credentials = session.get_credentials()
print credentials
code_pipeline = boto3.client('codepipeline')
pipelines = code_pipeline.list_pipelines(nextToken=credentials.token)
for i in pipelines:
print i
def main():
list_pipelines()
if __name__ == "__main__":
main()
输出:
botocore.exceptions.ParamValidationError: Parameter validation failed:
Invalid type for parameter nextToken, value: None, type: <type 'NoneType'>, valid types: <type 'basestring'>
答案 0 :(得分:1)
你误解了nextToken
的含义。它用于分页。第一次,您在没有nextToken
参数的情况下进行呼叫。如果回复的hasMoreResults
设置为True
,那么在下一次通话中,请使用前一次通话回复中返回的marker
。
while pipelines['hasMoreResults']:
pipelines = code_pipeline.list_pipelines(nextToken=pipelines['marker'])
请求语法
response = client.list_pipelines(
marker='string'
)
<强>参数强>
marker(string) - 要返回的结果的起点。 对于第一次调用,此值应为空。只要有 更多结果,继续使用标记值调用ListPipelines 从上一次调用中检索下一组结果。
响应语法
{
'pipelineIdList': [
{
'id': 'string',
'name': 'string'
},
],
'marker': 'string',
'hasMoreResults': True|False
}
标记(字符串)
下一页结果的起点。查看下一页 结果,再次使用此标记值调用ListPipelinesOutput。如果 值为null,没有更多结果。
hasMoreResults(boolean)
表示a是否可以获得更多结果 随后的电话。