managing-amazon-kinesis-data-streams

Configure serverless delivery channels from Kinesis Data Streams to S3 and Iceberg tables.

2.5k|282|Updated Apr 23, 2026
One-click install
npx skills add https://github.com/aws/agent-toolkit-for-aws --skill managing-amazon-kinesis-data-streams
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: managing-amazon-kinesis-data-streams
Source: https://github.com/aws/agent-toolkit-for-aws/tree/main/skills/specialized-skills/analytics-skills/managing-amazon-kinesis-data-streams
Command: npx skills add https://github.com/aws/agent-toolkit-for-aws --skill managing-amazon-kinesis-data-streams

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Setting up managed delivery from Amazon Kinesis Data Streams to Amazon S3 or Apache Iceberg tables on S3 Tables involves many failure-prone details: IAM execution roles, KMS key policies, Glue Schema Registry schemas, output key templates, DLQ configuration, and CloudWatch monitoring. This Skill provides the exact configurations, constraints, and troubleshooting guidance to get channels working correctly.

Core Features & Use Cases

  • Streaming Tables Delivery: Deliver stream records to Apache Iceberg tables on S3 Tables with GSR/JSON schema mapping, TIME_HOUR partitioning, and Athena query setup via Lake Formation.
  • General-Purpose S3 Delivery: Deliver records to S3 buckets with compression (GZIP/ZSTD), storage classes, and customizable output key templates.
  • Operations & Troubleshooting: CloudWatch metrics and alarms, delivery logging, DLQ handling, channel lifecycle management, and diagnosis of FAILED or suspended channels.
  • Use Case: A data engineer needs to make Kinesis stream data queryable in Athena without managing consumers or Firehose. The Skill walks through creating an ON_DEMAND-compatible channel with the correct IAM role, schema registry, and partitioning so data lands in Iceberg tables within minutes.

Quick Start

Ask the agent to create a Kinesis delivery channel that streams records from your ON_DEMAND stream into an Iceberg table on S3 Tables, including the IAM role and monitoring setup.

Frequently Asked Questions about managing-amazon-kinesis-data-streams

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I deliver Kinesis Data Streams records to S3 without Firehose?

Create a delivery channel on an ON_DEMAND stream using the Kinesis CreateChannel API with an S3 destination configuration. Channels are serverless, consume no shard capacity, and support compression, storage classes, and output key templates with 300-900 second freshness.

How to stream Kinesis data into Apache Iceberg tables on S3 Tables?

Create a streaming tables channel with a Glue Schema Registry JSON schema, a partition spec using the TIME_HOUR transform, and an S3 Tables destination. Records are converted to Parquet with inline compaction and become queryable in Athena within minutes.

What are the limitations of Kinesis Data Streams delivery channels?

Channels are append-only with no CDC, schema evolution, backfill, or transformations, and require ON_DEMAND streams in the same Region as the destination. Data freshness is 300-900 seconds. For transformations or CDC, use Managed Service for Apache Flink instead.

Why is my Kinesis channel ACTIVE but no data arrives in S3?

Common causes include records produced before the channel became ACTIVE (no backfill occurs), missing CloudWatch Logs permissions hiding delivery errors, or KMS and IAM permission failures. Check delivery logs, the DLQ, and CloudTrail for AccessDenied events.

Does Kinesis streaming tables support schema evolution?

No, schema evolution is not supported. Records matching a new schema version fail validation and go to the DLQ. You must revert the producer schema or delete and recreate the channel with the new schema.

Why did my Kinesis delivery channel enter FAILED or suspended state?

FAILED results from invalid role ARNs, insufficient permissions, or missing destinations, and is not recoverable. Suspension occurs when the destination table is deleted or bucket ownership mismatches. Both states require fixing the cause and recreating the channel.