ProvisionedPollerConfig Struct
(Amazon MSK and self-managed Apache Kafka only) The provisioned mode configuration for the event source.
Example
ts
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
]
}
}));
python
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
]
)
))
java
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());
csharp
// 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 }
}
}));
go
// 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
maximumPollersoptionalnumbermaximum_pollersoptionalint | floatmaximumPollersoptionalNumberMaximumPollersoptionaldoubleMaximumPollersoptional*float64= 200#The maximum number of pollers that can be provisioned.
Valid Range: Minimum value of 1. Maximum value of 2000.
minimumPollersoptionalnumberminimum_pollersoptionalint | floatminimumPollersoptionalNumberMinimumPollersoptionaldoubleMinimumPollersoptional*float64= 1#The minimum number of pollers that should be provisioned.
Valid Range: Minimum value of 1. Maximum value of 200.
pollerGroupNameoptionalstringpoller_group_nameoptionalstrpollerGroupNameoptionalStringPollerGroupNameoptionalstringPollerGroupNameoptional*string#An optional identifier that groups multiple ESMs to share EPU capacity and reduce costs.
Default: not set, dedicated compute resource per event source.
ESMs with the same PollerGroupName share compute resources.