Skip to content

StreamConsumer ​

The StreamConsumer resource allows you to manage AWS Kinesis StreamConsumers that provide a way to read and process data from Kinesis streams.

Minimal Example ​

Create a basic Kinesis StreamConsumer with required properties.

ts
import AWS from "alchemy/aws/control";

const basicStreamConsumer = await AWS.Kinesis.StreamConsumer("basicStreamConsumer", {
  ConsumerName: "MyStreamConsumer",
  StreamARN: "arn:aws:kinesis:us-east-1:123456789012:stream/MyKinesisStream",
  adopt: true // Adopt existing resource if it already exists
});

Advanced Configuration ​

Configure a Kinesis StreamConsumer with additional properties like specifying a unique consumer name.

ts
const advancedStreamConsumer = await AWS.Kinesis.StreamConsumer("advancedStreamConsumer", {
  ConsumerName: "UniqueStreamConsumerName",
  StreamARN: "arn:aws:kinesis:us-east-1:123456789012:stream/MyKinesisStream",
  adopt: false // Do not adopt if resource already exists
});

Reading Data from the Stream ​

Implement a consumer application that reads data from the Kinesis stream using the created StreamConsumer.

ts
import AWS from "alchemy/aws/control";

const consumerApplication = await AWS.Kinesis.StreamConsumer("dataReader", {
  ConsumerName: "DataReaderConsumer",
  StreamARN: "arn:aws:kinesis:us-east-1:123456789012:stream/MyKinesisStream"
});

// Example code to process data would be added here
console.log(`Consumer ARN: ${consumerApplication.Arn}`);

Updating an Existing StreamConsumer ​

Update an existing StreamConsumer to change its name or other properties.

ts
const updatedStreamConsumer = await AWS.Kinesis.StreamConsumer("updateStreamConsumer", {
  ConsumerName: "UpdatedStreamConsumerName",
  StreamARN: "arn:aws:kinesis:us-east-1:123456789012:stream/MyKinesisStream",
  adopt: true // This will allow the update to proceed if the consumer already exists
});