What is @aws-sdk/client-kinesis?
@aws-sdk/client-kinesis is an AWS SDK for JavaScript package that allows developers to interact with Amazon Kinesis, a platform for real-time data streaming. This package provides methods to create, manage, and interact with Kinesis streams, enabling real-time processing of data.
What are @aws-sdk/client-kinesis's main functionalities?
Create Stream
This feature allows you to create a new Kinesis stream. The code sample demonstrates how to create a stream named 'my-stream' with one shard.
const { KinesisClient, CreateStreamCommand } = require('@aws-sdk/client-kinesis');
const client = new KinesisClient({ region: 'us-east-1' });
const command = new CreateStreamCommand({ StreamName: 'my-stream', ShardCount: 1 });
client.send(command).then(
(data) => console.log('Stream created:', data),
(error) => console.error('Error creating stream:', error)
);
Put Record
This feature allows you to put a record into a Kinesis stream. The code sample demonstrates how to put a record with data 'my-data' into the stream 'my-stream' using a partition key.
const { KinesisClient, PutRecordCommand } = require('@aws-sdk/client-kinesis');
const client = new KinesisClient({ region: 'us-east-1' });
const command = new PutRecordCommand({
StreamName: 'my-stream',
Data: Buffer.from('my-data'),
PartitionKey: 'partition-key'
});
client.send(command).then(
(data) => console.log('Record put:', data),
(error) => console.error('Error putting record:', error)
);
Get Records
This feature allows you to get records from a Kinesis stream. The code sample demonstrates how to get records from the shard 'shardId-000000000000' of the stream 'my-stream'.
const { KinesisClient, GetRecordsCommand, GetShardIteratorCommand } = require('@aws-sdk/client-kinesis');
const client = new KinesisClient({ region: 'us-east-1' });
const shardIteratorCommand = new GetShardIteratorCommand({
StreamName: 'my-stream',
ShardId: 'shardId-000000000000',
ShardIteratorType: 'TRIM_HORIZON'
});
client.send(shardIteratorCommand).then(
(shardIteratorData) => {
const getRecordsCommand = new GetRecordsCommand({ ShardIterator: shardIteratorData.ShardIterator });
return client.send(getRecordsCommand);
}
).then(
(recordsData) => console.log('Records:', recordsData.Records),
(error) => console.error('Error getting records:', error)
);
List Streams
This feature allows you to list all Kinesis streams in your account. The code sample demonstrates how to list all streams.
const { KinesisClient, ListStreamsCommand } = require('@aws-sdk/client-kinesis');
const client = new KinesisClient({ region: 'us-east-1' });
const command = new ListStreamsCommand({});
client.send(command).then(
(data) => console.log('Streams:', data.StreamNames),
(error) => console.error('Error listing streams:', error)
);
Other packages similar to @aws-sdk/client-kinesis
kinesis-client
kinesis-client is a lightweight client for interacting with Amazon Kinesis. It provides basic functionalities for creating streams, putting records, and getting records. Compared to @aws-sdk/client-kinesis, it offers a simpler interface but lacks some advanced features and configurations.
aws-kinesis-agg
aws-kinesis-agg is a client library for aggregating and de-aggregating records for Amazon Kinesis. It is particularly useful for optimizing the number of records sent to Kinesis by aggregating multiple records into a single Kinesis record. This package complements @aws-sdk/client-kinesis by providing additional functionality for record aggregation.
kinesis-streams
kinesis-streams is a Node.js library for working with Amazon Kinesis streams. It provides a higher-level abstraction over the Kinesis API, making it easier to work with streams and records. Compared to @aws-sdk/client-kinesis, it offers a more user-friendly API but may not support all low-level operations.
@aws-sdk/client-kinesis
Description
AWS SDK for JavaScript Kinesis Client for Node.js, Browser and React Native.
Amazon Kinesis Data Streams Service API Reference
Amazon Kinesis Data Streams is a managed service that scales elastically for real-time
processing of streaming big data.
Installing
To install this package, simply type add or install @aws-sdk/client-kinesis
using your favorite package manager:
npm install @aws-sdk/client-kinesis
yarn add @aws-sdk/client-kinesis
pnpm add @aws-sdk/client-kinesis
Getting Started
Import
The AWS SDK is modulized by clients and commands.
To send a request, you only need to import the KinesisClient
and
the commands you need, for example ListShardsCommand
:
const { KinesisClient, ListShardsCommand } = require("@aws-sdk/client-kinesis");
import { KinesisClient, ListShardsCommand } from "@aws-sdk/client-kinesis";
Usage
To send a request, you:
- Initiate client with configuration (e.g. credentials, region).
- Initiate command with input parameters.
- Call
send
operation on client with command object as input. - If you are using a custom http handler, you may call
destroy()
to close open connections.
const client = new KinesisClient({ region: "REGION" });
const params = {
};
const command = new ListShardsCommand(params);
Async/await
We recommend using await
operator to wait for the promise returned by send operation as follows:
try {
const data = await client.send(command);
} catch (error) {
} finally {
}
Async-await is clean, concise, intuitive, easy to debug and has better error handling
as compared to using Promise chains or callbacks.
Promises
You can also use Promise chaining
to execute send operation.
client.send(command).then(
(data) => {
},
(error) => {
}
);
Promises can also be called using .catch()
and .finally()
as follows:
client
.send(command)
.then((data) => {
})
.catch((error) => {
})
.finally(() => {
});
Callbacks
We do not recommend using callbacks because of callback hell,
but they are supported by the send operation.
client.send(command, (err, data) => {
});
v2 compatible style
The client can also send requests using v2 compatible style.
However, it results in a bigger bundle size and may be dropped in next major version. More details in the blog post
on modular packages in AWS SDK for JavaScript
import * as AWS from "@aws-sdk/client-kinesis";
const client = new AWS.Kinesis({ region: "REGION" });
try {
const data = await client.listShards(params);
} catch (error) {
}
client
.listShards(params)
.then((data) => {
})
.catch((error) => {
});
client.listShards(params, (err, data) => {
});
Troubleshooting
When the service returns an exception, the error will include the exception information,
as well as response metadata (e.g. request id).
try {
const data = await client.send(command);
} catch (error) {
const { requestId, cfId, extendedRequestId } = error.$metadata;
console.log({ requestId, cfId, extendedRequestId });
}
Getting Help
Please use these community resources for getting help.
We use the GitHub issues for tracking bugs and feature requests, but have limited bandwidth to address them.
To test your universal JavaScript code in Node.js, browser and react-native environments,
visit our code samples repo.
Contributing
This client code is generated automatically. Any modifications will be overwritten the next time the @aws-sdk/client-kinesis
package is updated.
To contribute to client you can check our generate clients scripts.
License
This SDK is distributed under the
Apache License, Version 2.0,
see LICENSE for more information.
Client Commands (Operations List)
AddTagsToStream
Command API Reference / Input / Output
CreateStream
Command API Reference / Input / Output
DecreaseStreamRetentionPeriod
Command API Reference / Input / Output
DeleteResourcePolicy
Command API Reference / Input / Output
DeleteStream
Command API Reference / Input / Output
DeregisterStreamConsumer
Command API Reference / Input / Output
DescribeLimits
Command API Reference / Input / Output
DescribeStream
Command API Reference / Input / Output
DescribeStreamConsumer
Command API Reference / Input / Output
DescribeStreamSummary
Command API Reference / Input / Output
DisableEnhancedMonitoring
Command API Reference / Input / Output
EnableEnhancedMonitoring
Command API Reference / Input / Output
GetRecords
Command API Reference / Input / Output
GetResourcePolicy
Command API Reference / Input / Output
GetShardIterator
Command API Reference / Input / Output
IncreaseStreamRetentionPeriod
Command API Reference / Input / Output
ListShards
Command API Reference / Input / Output
ListStreamConsumers
Command API Reference / Input / Output
ListStreams
Command API Reference / Input / Output
ListTagsForStream
Command API Reference / Input / Output
MergeShards
Command API Reference / Input / Output
PutRecord
Command API Reference / Input / Output
PutRecords
Command API Reference / Input / Output
PutResourcePolicy
Command API Reference / Input / Output
RegisterStreamConsumer
Command API Reference / Input / Output
RemoveTagsFromStream
Command API Reference / Input / Output
SplitShard
Command API Reference / Input / Output
StartStreamEncryption
Command API Reference / Input / Output
StopStreamEncryption
Command API Reference / Input / Output
SubscribeToShard
Command API Reference / Input / Output
UpdateShardCount
Command API Reference / Input / Output
UpdateStreamMode
Command API Reference / Input / Output