AWS boto3列出codepipelines

时间:2017-09-08 09:17:21

标签: python linux amazon-web-services boto boto3

我正在尝试列出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'>

1 个答案:

答案 0 :(得分:1)

你误解了nextToken的含义。它用于分页。第一次,您在没有nextToken参数的情况下进行呼叫。如果回复的hasMoreResults设置为True,那么在下一次通话中,请使用前一次通话回复中返回的marker

  while pipelines['hasMoreResults']:
    pipelines = code_pipeline.list_pipelines(nextToken=pipelines['marker'])

List Pipelines

请求语法

response = client.list_pipelines(
    marker='string'
)

<强>参数

  

marker(string) - 要返回的结果的起点。   对于第一次调用,此值应为空。只要有   更多结果,继续使用标记值调用ListPipelines   从上一次调用中检索下一组结果。

响应语法

{
    'pipelineIdList': [
        {
            'id': 'string',
            'name': 'string'
        },
    ],
    'marker': 'string',
    'hasMoreResults': True|False
}

标记(字符串)

  

下一页结果的起点。查看下一页   结果,再次使用此标记值调用ListPipelinesOutput。如果   值为null,没有更多结果。

hasMoreResults(boolean)

  

表示a是否可以获得更多结果   随后的电话。