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

AWS Kinesis流写入成功但控制台无数据显示问题求助

Kinesis流写入成功但控制台无数据显示的排查方案

问题描述

我在AWS Kinesis中创建了一个流(截图:Kinesis流创建完成的界面),使用AWS官方文档中的脚本向流写入记录:

import datetime
import json
import random
import boto3

STREAM_NAME = "apache-flink-demo-input-1"


def get_data():
    return {
        'event_time': datetime.datetime.now().isoformat(),
        'ticker': random.choice(['AAPL', 'AMZN', 'MSFT', 'INTC', 'TBV']),
        'price': round(random.random() * 100, 2)}


def generate(stream_name, kinesis_client):
    while True:
        data = get_data()
        print(data)
        response = kinesis_client.put_record(
            StreamName=stream_name,
            Data=json.dumps(data),
            PartitionKey="1")
        print(response)
        print()


if __name__ == '__main__':
    generate(STREAM_NAME,
             boto3.client(
                 'kinesis',
                 aws_access_key_id="XXXX", # Hidden
                 aws_secret_access_key="XXXX",  # Hidden
                 region_name='us-west-1'))

每条写入请求都返回成功响应:

{'ShardId': 'shardId-000000000003', 'SequenceNumber': '49644599907995286627749093391250621075271860022832791602', 'ResponseMetadata': {'RequestId': 'f0e04f67-94fa-934b-ad60-6e3e40d06706', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'f0e04f67-94fa-934b-ad60-6e3e40d06706', 'x-amz-id-2': 'KLepCUNwgrZMY639W6QhdyFRsfeiqAnBqdLWdPSdDKxgDnGUqRGNly/dCPE/GHGVhUN3YXXB98PUvtWRHidOM4PRI4/edeaI', 'date': 'Sat, 16 Sep 2023 21:33:13 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '110'}, 'RetryAttempts': 0}}

但Kinesis控制台仪表板中没有显示任何数据(截图:Kinesis控制台无数据的仪表板界面)。

排查解决步骤

1. 核对控制台区域与流所在区域

脚本中指定的流区域是us-west-1(美国西部俄勒冈),务必确认当前打开的Kinesis控制台处于同一区域——区域不匹配是最常见的“看不到数据”原因。

2. 调整控制台时间范围并刷新

  • Kinesis控制台默认时间范围可能未覆盖你写入数据的时段,手动调整为「最近15分钟」或自定义时间段,覆盖你执行写入脚本的时间。
  • 点击控制台的刷新按钮,强制加载最新数据。

3. 主动读取流数据验证写入结果

既然写入响应返回成功,直接读取流内数据确认是否真的写入:

# 第一步:获取分片迭代器
aws kinesis get-shard-iterator --stream-name apache-flink-demo-input-1 --shard-id shardId-000000000003 --shard-iterator-type TRIM_HORIZON --region us-west-1
# 第二步:用返回的ShardIterator值替换下方占位符,读取记录
aws kinesis get-records --shard-iterator <你的ShardIterator值> --region us-west-1

如果能读取到你写入的JSON数据,说明数据已存在,只是控制台显示延迟或配置问题;如果读不到,再排查写入逻辑或权限问题。

4. 确认IAM权限与流名称正确性

  • 检查脚本使用的IAM用户是否拥有kinesis:PutRecord权限,且资源ARN正确指向目标流:arn:aws:kinesis:us-west-1:<你的AWS账户ID>:stream/apache-flink-demo-input-1。
  • 再次核对脚本中的STREAM_NAME与控制台创建的流名称完全一致(Kinesis流名称大小写敏感)。

5. 等待控制台显示延迟

Kinesis的实时指标和数据显示可能存在1-5分钟的延迟,尤其是新创建的流。等待几分钟后再刷新控制台查看。


内容的提问来源于stack exchange,提问作者Edward Igushev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 12:17:47