You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用boto3 Kinesis分页器ListStreams未返回NextToken问题求助

Kinesis流分页查询中未找到NextToken的问题

问题描述

我正按照Kinesis的ListStreams文档列出Kinesis流,目前拥有300多个Kinesis流,尝试使用paginator = client.get_paginator('list_streams')来获取流名称。

我的代码如下:

import boto3
session = boto3.Session(profile_name='', region_name='us-east-1')
client = session.client('kinesis')
paginator = client.get_paginator('list_streams')
response_iterator = paginator.paginate(
    PaginationConfig={
        'MaxItems': 10,
        'PageSize': 5,
    }
)
for page in response_iterator:    
    print(page)

但在返回结果中找不到NextToken,返回示例如下:

{'StreamNames': [streamnames], 'HasMoreStreams': True, 'ResponseMetadata': {'RequestId': 'e7e044f5-2ebd-45bd-bc07-4c724269adef', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '', 'x-amz-id-2': '', 'date': 'Thu, 10 Nov 2022 14:10:15 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '1705'}, 'RetryAttempts': 0}}
{'StreamNames': [streamnames], 'HasMoreStreams': True, 'ResponseMetadata': {'RequestId': 'd9a32e03-2ab0-4edc-8244-26844664a68e', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '', 'x-amz-id-2': '', 'date': 'Thu, 10 Nov 2022 14:10:15 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '1711'}, 'RetryAttempts': 0}}

解决方案

这是正常现象,Kinesis的ListStreams API并不采用NextToken做分页标记,它的分页逻辑依赖两个核心参数:

  • HasMoreStreams:值为True时表示还有未返回的流数据
  • ExclusiveStartStreamName:下一次调用时传入上一页返回的最后一个流名称,以此获取后续分页数据

boto3的分页器已经帮你封装了这套分页逻辑,你无需手动处理分页标记,直接遍历response_iterator就能自动获取所有分页的流数据。如果需要手动控制分页流程,可以绕过分页器,直接循环调用list_streams接口:

import boto3

session = boto3.Session(profile_name='', region_name='us-east-1')
client = session.client('kinesis')

exclusive_start_stream = None
while True:
    response = client.list_streams(
        ExclusiveStartStreamName=exclusive_start_stream,
        Limit=5
    )
    print(response['StreamNames'])
    if not response['HasMoreStreams']:
        break
    exclusive_start_stream = response['StreamNames'][-1]

内容的提问来源于stack exchange,提问作者jebaseelan ravi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 04:46:10