ManagedKafkaEventSourceProps Struct
Properties for a MSK event source.
Example
import { ManagedKafkaEventSource } from 'aws-cdk-lib/aws-lambda-event-sources';
// Your MSK cluster arn
const clusterArn = 'arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4';
declare const myFunction: lambda.Function;
// Enable basic event and error metrics
myFunction.addEventSource(new ManagedKafkaEventSource({
clusterArn,
topic: 'basic-monitoring',
startingPosition: lambda.StartingPosition.LATEST,
// Provisioned mode is required for observability features
provisionedPollerConfig: {
minimumPollers: 2,
maximumPollers: 10,
},
metricsConfig: {
metrics: [
lambda.MetricType.EVENT_COUNT,
lambda.MetricType.ERROR_COUNT
]
}
}));
from aws_cdk.aws_lambda_event_sources import ProvisionedPollerConfig
from aws_cdk.aws_lambda_event_sources import ManagedKafkaEventSource
# my_function: lambda.Function
# Your MSK cluster arn
cluster_arn = "arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4"
# Enable basic event and error metrics
my_function.add_event_source(ManagedKafkaEventSource(
cluster_arn=cluster_arn,
topic="basic-monitoring",
starting_position=lambda_.StartingPosition.LATEST,
# Provisioned mode is required for observability features
provisioned_poller_config=ProvisionedPollerConfig(
minimum_pollers=2,
maximum_pollers=10
),
metrics_config=lambda.MetricsConfig(
metrics=[lambda_.MetricType.EVENT_COUNT, lambda_.MetricType.ERROR_COUNT
]
)
))
import software.amazon.awscdk.services.lambda.eventsources.ManagedKafkaEventSource;
Function myFunction;
// Your MSK cluster arn
String clusterArn = "arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4";
// Enable basic event and error metrics
myFunction.addEventSource(ManagedKafkaEventSource.Builder.create()
.clusterArn(clusterArn)
.topic("basic-monitoring")
.startingPosition(StartingPosition.LATEST)
// Provisioned mode is required for observability features
.provisionedPollerConfig(ProvisionedPollerConfig.builder()
.minimumPollers(2)
.maximumPollers(10)
.build())
.metricsConfig(MetricsConfig.builder()
.metrics(List.of(MetricType.EVENT_COUNT, MetricType.ERROR_COUNT))
.build())
.build());
// Install: dotnet add package Amazon.CDK.Lib
using Amazon.CDK.AWS.Lambda.EventSources;
Function myFunction;
// Your MSK cluster arn
var clusterArn = "arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4";
// Enable basic event and error metrics
myFunction.AddEventSource(new ManagedKafkaEventSource(new ManagedKafkaEventSourceProps {
ClusterArn = clusterArn,
Topic = "basic-monitoring",
StartingPosition = StartingPosition.LATEST,
// Provisioned mode is required for observability features
ProvisionedPollerConfig = new ProvisionedPollerConfig {
MinimumPollers = 2,
MaximumPollers = 10
},
MetricsConfig = new MetricsConfig {
Metrics = new [] { MetricType.EVENT_COUNT, MetricType.ERROR_COUNT }
}
}));
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
import "github.com/aws/aws-cdk-go/awscdk"
var myFunction Function
// Your MSK cluster arn
clusterArn := "arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4"
// Enable basic event and error metrics
myFunction.AddEventSource(awscdk.NewManagedKafkaEventSource(&ManagedKafkaEventSourceProps{
ClusterArn: jsii.String(ClusterArn),
Topic: jsii.String("basic-monitoring"),
StartingPosition: lambda.StartingPosition_LATEST,
// Provisioned mode is required for observability features
ProvisionedPollerConfig: &ProvisionedPollerConfig{
MinimumPollers: jsii.Number(2),
MaximumPollers: jsii.Number(10),
},
MetricsConfig: &MetricsConfig{
Metrics: []MetricType{
lambda.MetricType_EVENT_COUNT,
lambda.MetricType_ERROR_COUNT,
},
},
}))
Properties
batchSizeoptionalnumberbatch_sizeoptionalint | floatbatchSizeoptionalNumberBatchSizeoptionaldoubleBatchSizeoptional*float64= 100#notes
Your function receives an event with all the retrieved records.
Valid Range:
- Minimum value of 1
- Maximum value of:
- 1000 for
DynamoEventSource - 10000 for
KinesisEventSource,ManagedKafkaEventSourceandSelfManagedKafkaEventSource
- 1000 for
bisectBatchOnErroroptionalbooleanbisect_batch_on_erroroptionalboolbisectBatchOnErroroptionalBooleanBisectBatchOnErroroptionalboolBisectBatchOnErroroptional*bool= false#consumerGroupIdoptionalstringconsumer_group_idoptionalstrconsumerGroupIdoptionalStringConsumerGroupIdoptionalstringConsumerGroupIdoptional*string= none#notes
The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. The value must have a length between 1 and 200 and full the pattern '[a-zA-Z0-9-/:_+=.@-]'.
enabledoptionalbooleanenabledoptionalboolenabledoptionalBooleanEnabledoptionalboolEnabledoptional*bool= true#filterEncryptionoptionalIKeyfilter_encryptionoptionalIKeyfilterEncryptionoptionalIKeyFilterEncryptionoptionalIKeyFilterEncryptionoptionalIKey= none#filtersoptional{ [key: string]: any }[]filtersoptionaltyping.List[typing.Mapping[str, Any]]filtersoptionalList<Map<String, Object>>FiltersoptionalIDictionary<string, object>[]Filtersoptional*[]*map[string]interface{}= none#logLeveloptionalEventSourceMappingLogLevellog_leveloptionalEventSourceMappingLogLevellogLeveloptionalEventSourceMappingLogLevelLogLeveloptionalEventSourceMappingLogLevelLogLeveloptionalEventSourceMappingLogLevel#Default: No logging
maxBatchingWindowoptionalDurationmax_batching_windowoptionalDurationmaxBatchingWindowoptionalDurationMaxBatchingWindowoptionalDurationMaxBatchingWindowoptionalDuration#Default: Duration.seconds(0) for Kinesis, DynamoDB, and SQS event sources, Duration.millis(500) for MSK, self-managed Kafka, and Amazon MQ.
Maximum of Duration.minutes(5).
maxRecordAgeoptionalDurationmax_record_ageoptionalDurationmaxRecordAgeoptionalDurationMaxRecordAgeoptionalDurationMaxRecordAgeoptionalDuration= -1#The default value is -1, which sets the maximum age to infinite. When the value is set to infinite, Lambda never discards old records. Record are valid until it expires in the event source.
metricsConfigoptionalMetricsConfigmetrics_configoptionalMetricsConfigmetricsConfigoptionalMetricsConfigMetricsConfigoptionalMetricsConfigMetricsConfigoptionalMetricsConfig#Default: Enhanced monitoring is disabled
onFailureoptionalIEventSourceDlqon_failureoptionalIEventSourceDlqonFailureoptionalIEventSourceDlqOnFailureoptionalIEventSourceDlqOnFailureoptionalIEventSourceDlq#Default: discarded records are ignored
Supported destinations:
- {@link KafkaDlq } - Send failed records to a Kafka topic
- SNS topics - Send failed records to an SNS topic
- SQS queues - Send failed records to an SQS queue
- S3 buckets - Send failed records to an S3 bucket
provisionedPollerConfigoptionalProvisionedPollerConfigprovisioned_poller_configoptionalProvisionedPollerConfigprovisionedPollerConfigoptionalProvisionedPollerConfigProvisionedPollerConfigoptionalProvisionedPollerConfigProvisionedPollerConfigoptionalProvisionedPollerConfig#Default: no provisioned pollers
When specified, allows control over the minimum and maximum number of pollers that can be provisioned to process events from the source.
reportBatchItemFailuresoptionalbooleanreport_batch_item_failuresoptionalboolreportBatchItemFailuresoptionalBooleanReportBatchItemFailuresoptionalboolReportBatchItemFailuresoptional*bool= false#retryAttemptsoptionalnumberretry_attemptsoptionalint | floatretryAttemptsoptionalNumberRetryAttemptsoptionaldoubleRetryAttemptsoptional*float64#Default: -1 (infinite retries)
Set to -1 for infinite retries (until the record expires in the event source).
schemaRegistryConfigoptionalISchemaRegistryschema_registry_configoptionalISchemaRegistryschemaRegistryConfigoptionalISchemaRegistrySchemaRegistryConfigoptionalISchemaRegistrySchemaRegistryConfigoptionalISchemaRegistry= none#secretoptionalISecretsecretoptionalISecretsecretoptionalISecretSecretoptionalISecretSecretoptionalISecret= none#startingPositionStartingPositionstarting_positionStartingPositionstartingPositionStartingPositionStartingPositionStartingPositionStartingPositionStartingPositionrequired#startingPositionTimestampoptionalnumberstarting_position_timestampoptionalint | floatstartingPositionTimestampoptionalNumberStartingPositionTimestampoptionaldoubleStartingPositionTimestampoptional*float64#Default: no timestamp