Class: AWSCDK::LambdaEventSources::KafkaEventSourceProps
- Inherits:
-
BaseStreamEventSourceProps
- Object
- BaseStreamEventSourceProps
- AWSCDK::LambdaEventSources::KafkaEventSourceProps
- Defined in:
- lambda_event_sources/kafka_event_source_props.rb
Overview
Properties for a Kafka event source.
Direct Known Subclasses
ManagedKafkaEventSourceProps, SelfManagedKafkaEventSourceProps
Instance Attribute Summary collapse
-
#batch_size ⇒ Numeric?
readonly
The largest number of records that AWS Lambda will retrieve from your event source at the time of invoking your function.
-
#bisect_batch_on_error ⇒ Boolean?
readonly
- If the function returns an error, split the batch in two and retry.
-
#consumer_group_id ⇒ String?
readonly
The identifier for the Kafka consumer group to join.
-
#enabled ⇒ Boolean?
readonly
If the stream event source mapping should be enabled.
-
#filter_encryption ⇒ AWSCDK::KMS::IKey?
readonly
Add Customer managed KMS key to encrypt Filter Criteria.
-
#filters ⇒ Array<Hash{String => Object}>?
readonly
Add filter criteria to Event Source.
-
#log_level ⇒ AWSCDK::Lambda::EventSourceMappingLogLevel?
readonly
Configuration for logging verbosity from the event source mapping poller.
-
#max_batching_window ⇒ AWSCDK::Duration?
readonly
The maximum amount of time to gather records before invoking the function.
-
#max_record_age ⇒ AWSCDK::Duration?
readonly
The maximum age of a record that Lambda sends to a function for processing.
-
#metrics_config ⇒ AWSCDK::Lambda::MetricsConfig?
readonly
Configuration for enhanced monitoring metrics collection.
-
#on_failure ⇒ AWSCDK::Lambda::IEventSourceDlq?
readonly
Add an on Failure Destination for this Kafka event.
-
#provisioned_poller_config ⇒ AWSCDK::LambdaEventSources::ProvisionedPollerConfig?
readonly
Configuration for provisioned pollers that read from the event source.
-
#report_batch_item_failures ⇒ Boolean?
readonly
- Allow functions to return partially successful responses for a batch of records.
-
#retry_attempts ⇒ Numeric?
readonly
- Maximum number of retry attempts.
-
#schema_registry_config ⇒ AWSCDK::Lambda::ISchemaRegistry?
readonly
Specific configuration settings for a Kafka schema registry.
-
#secret ⇒ AWSCDK::SecretsManager::ISecret?
readonly
The secret with the Kafka credentials, see https://docs.aws.amazon.com/msk/latest/developerguide/msk-password.html for details This field is required if your Kafka brokers are accessed over the Internet.
-
#starting_position ⇒ AWSCDK::Lambda::StartingPosition
readonly
Where to begin consuming the stream.
-
#starting_position_timestamp ⇒ Numeric?
readonly
The time from which to start reading, in Unix time seconds.
-
#topic ⇒ String
readonly
The Kafka topic to subscribe to.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(starting_position:, batch_size: nil, enabled: nil, max_batching_window: nil, provisioned_poller_config: nil, topic:, bisect_batch_on_error: nil, consumer_group_id: nil, filter_encryption: nil, filters: nil, log_level: nil, max_record_age: nil, metrics_config: nil, on_failure: nil, report_batch_item_failures: nil, retry_attempts: nil, schema_registry_config: nil, secret: nil, starting_position_timestamp: nil) ⇒ KafkaEventSourceProps
constructor
A new instance of KafkaEventSourceProps.
- #to_jsii ⇒ Object
Constructor Details
#initialize(starting_position:, batch_size: nil, enabled: nil, max_batching_window: nil, provisioned_poller_config: nil, topic:, bisect_batch_on_error: nil, consumer_group_id: nil, filter_encryption: nil, filters: nil, log_level: nil, max_record_age: nil, metrics_config: nil, on_failure: nil, report_batch_item_failures: nil, retry_attempts: nil, schema_registry_config: nil, secret: nil, starting_position_timestamp: nil) ⇒ KafkaEventSourceProps
Returns a new instance of KafkaEventSourceProps.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 26 def initialize(starting_position:, batch_size: nil, enabled: nil, max_batching_window: nil, provisioned_poller_config: nil, topic:, bisect_batch_on_error: nil, consumer_group_id: nil, filter_encryption: nil, filters: nil, log_level: nil, max_record_age: nil, metrics_config: nil, on_failure: nil, report_batch_item_failures: nil, retry_attempts: nil, schema_registry_config: nil, secret: nil, starting_position_timestamp: nil) @starting_position = starting_position Jsii::Type.check_type(@starting_position, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfbGFtYmRhLlN0YXJ0aW5nUG9zaXRpb24ifQ==")), "startingPosition") @batch_size = batch_size Jsii::Type.check_type(@batch_size, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "batchSize") unless @batch_size.nil? @enabled = enabled Jsii::Type.check_type(@enabled, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "enabled") unless @enabled.nil? @max_batching_window = max_batching_window Jsii::Type.check_type(@max_batching_window, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5EdXJhdGlvbiJ9")), "maxBatchingWindow") unless @max_batching_window.nil? @provisioned_poller_config = provisioned_poller_config.is_a?(Hash) ? ::AWSCDK::LambdaEventSources::ProvisionedPollerConfig.new(**provisioned_poller_config.transform_keys(&:to_sym)) : provisioned_poller_config Jsii::Type.check_type(@provisioned_poller_config, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfbGFtYmRhX2V2ZW50X3NvdXJjZXMuUHJvdmlzaW9uZWRQb2xsZXJDb25maWcifQ==")), "provisionedPollerConfig") unless @provisioned_poller_config.nil? @topic = topic Jsii::Type.check_type(@topic, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "topic") @bisect_batch_on_error = bisect_batch_on_error Jsii::Type.check_type(@bisect_batch_on_error, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "bisectBatchOnError") unless @bisect_batch_on_error.nil? @consumer_group_id = consumer_group_id Jsii::Type.check_type(@consumer_group_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "consumerGroupId") unless @consumer_group_id.nil? @filter_encryption = filter_encryption Jsii::Type.check_type(@filter_encryption, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfa21zLklLZXkifQ==")), "filterEncryption") unless @filter_encryption.nil? @filters = filters Jsii::Type.check_type(@filters, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsicHJpbWl0aXZlIjoiYW55In0sImtpbmQiOiJtYXAifX0sImtpbmQiOiJhcnJheSJ9fQ==")), "filters") unless @filters.nil? @log_level = log_level Jsii::Type.check_type(@log_level, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfbGFtYmRhLkV2ZW50U291cmNlTWFwcGluZ0xvZ0xldmVsIn0=")), "logLevel") unless @log_level.nil? @max_record_age = max_record_age Jsii::Type.check_type(@max_record_age, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5EdXJhdGlvbiJ9")), "maxRecordAge") unless @max_record_age.nil? @metrics_config = metrics_config.is_a?(Hash) ? ::AWSCDK::Lambda::MetricsConfig.new(**metrics_config.transform_keys(&:to_sym)) : metrics_config Jsii::Type.check_type(@metrics_config, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfbGFtYmRhLk1ldHJpY3NDb25maWcifQ==")), "metricsConfig") unless @metrics_config.nil? @on_failure = on_failure Jsii::Type.check_type(@on_failure, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfbGFtYmRhLklFdmVudFNvdXJjZURscSJ9")), "onFailure") unless @on_failure.nil? @report_batch_item_failures = report_batch_item_failures Jsii::Type.check_type(@report_batch_item_failures, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "reportBatchItemFailures") unless @report_batch_item_failures.nil? @retry_attempts = retry_attempts Jsii::Type.check_type(@retry_attempts, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "retryAttempts") unless @retry_attempts.nil? @schema_registry_config = schema_registry_config Jsii::Type.check_type(@schema_registry_config, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfbGFtYmRhLklTY2hlbWFSZWdpc3RyeSJ9")), "schemaRegistryConfig") unless @schema_registry_config.nil? @secret = secret Jsii::Type.check_type(@secret, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfc2VjcmV0c21hbmFnZXIuSVNlY3JldCJ9")), "secret") unless @secret.nil? @starting_position_timestamp = Jsii::Type.check_type(@starting_position_timestamp, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "startingPositionTimestamp") unless @starting_position_timestamp.nil? end |
Instance Attribute Details
#batch_size ⇒ Numeric? (readonly)
Default: 100
The largest number of records that AWS Lambda will retrieve from your event source at the time of invoking your function.
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
86 87 88 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 86 def batch_size @batch_size end |
#bisect_batch_on_error ⇒ Boolean? (readonly)
Default: false
- If the function returns an error, split the batch in two and retry.
117 118 119 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 117 def bisect_batch_on_error @bisect_batch_on_error end |
#consumer_group_id ⇒ String? (readonly)
Default: - none
The identifier for the Kafka consumer group to join.
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-/:_+=.@-]'.
125 126 127 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 125 def consumer_group_id @consumer_group_id end |
#enabled ⇒ Boolean? (readonly)
Default: true
If the stream event source mapping should be enabled.
91 92 93 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 91 def enabled @enabled end |
#filter_encryption ⇒ AWSCDK::KMS::IKey? (readonly)
Default: - none
Add Customer managed KMS key to encrypt Filter Criteria.
131 132 133 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 131 def filter_encryption @filter_encryption end |
#filters ⇒ Array<Hash{String => Object}>? (readonly)
Default: - none
Add filter criteria to Event Source.
137 138 139 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 137 def filters @filters end |
#log_level ⇒ AWSCDK::Lambda::EventSourceMappingLogLevel? (readonly)
Default: - No logging
Configuration for logging verbosity from the event source mapping poller.
142 143 144 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 142 def log_level @log_level end |
#max_batching_window ⇒ AWSCDK::Duration? (readonly)
Default: - Duration.seconds(0) for Kinesis, DynamoDB, and SQS event sources, Duration.millis(500) for MSK, self-managed Kafka, and Amazon MQ.
The maximum amount of time to gather records before invoking the function.
Maximum of Duration.minutes(5).
99 100 101 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 99 def max_batching_window @max_batching_window end |
#max_record_age ⇒ AWSCDK::Duration? (readonly)
Default: -1
The maximum age of a record that Lambda sends to a function for processing.
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.
151 152 153 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 151 def max_record_age @max_record_age end |
#metrics_config ⇒ AWSCDK::Lambda::MetricsConfig? (readonly)
Default: - Enhanced monitoring is disabled
Configuration for enhanced monitoring metrics collection.
156 157 158 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 156 def metrics_config @metrics_config end |
#on_failure ⇒ AWSCDK::Lambda::IEventSourceDlq? (readonly)
Default: - discarded records are ignored
Add an on Failure Destination for this Kafka event.
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
168 169 170 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 168 def on_failure @on_failure end |
#provisioned_poller_config ⇒ AWSCDK::LambdaEventSources::ProvisionedPollerConfig? (readonly)
Default: - no provisioned pollers
Configuration for provisioned pollers that read from the event source.
When specified, allows control over the minimum and maximum number of pollers that can be provisioned to process events from the source.
108 109 110 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 108 def provisioned_poller_config @provisioned_poller_config end |
#report_batch_item_failures ⇒ Boolean? (readonly)
Default: false
- Allow functions to return partially successful responses for a batch of records.
173 174 175 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 173 def report_batch_item_failures @report_batch_item_failures end |
#retry_attempts ⇒ Numeric? (readonly)
Default: -1 (infinite retries)
- Maximum number of retry attempts.
Set to -1 for infinite retries (until the record expires in the event source).
180 181 182 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 180 def retry_attempts @retry_attempts end |
#schema_registry_config ⇒ AWSCDK::Lambda::ISchemaRegistry? (readonly)
Default: - none
Specific configuration settings for a Kafka schema registry.
185 186 187 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 185 def schema_registry_config @schema_registry_config end |
#secret ⇒ AWSCDK::SecretsManager::ISecret? (readonly)
Default: none
The secret with the Kafka credentials, see https://docs.aws.amazon.com/msk/latest/developerguide/msk-password.html for details This field is required if your Kafka brokers are accessed over the Internet.
190 191 192 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 190 def secret @secret end |
#starting_position ⇒ AWSCDK::Lambda::StartingPosition (readonly)
Where to begin consuming the stream.
70 71 72 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 70 def starting_position @starting_position end |
#starting_position_timestamp ⇒ Numeric? (readonly)
Default: - no timestamp
The time from which to start reading, in Unix time seconds.
195 196 197 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 195 def @starting_position_timestamp end |
#topic ⇒ String (readonly)
The Kafka topic to subscribe to.
112 113 114 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 112 def topic @topic end |
Class Method Details
.jsii_properties ⇒ Object
197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 197 def self.jsii_properties { :starting_position => "startingPosition", :batch_size => "batchSize", :enabled => "enabled", :max_batching_window => "maxBatchingWindow", :provisioned_poller_config => "provisionedPollerConfig", :topic => "topic", :bisect_batch_on_error => "bisectBatchOnError", :consumer_group_id => "consumerGroupId", :filter_encryption => "filterEncryption", :filters => "filters", :log_level => "logLevel", :max_record_age => "maxRecordAge", :metrics_config => "metricsConfig", :on_failure => "onFailure", :report_batch_item_failures => "reportBatchItemFailures", :retry_attempts => "retryAttempts", :schema_registry_config => "schemaRegistryConfig", :secret => "secret", :starting_position_timestamp => "startingPositionTimestamp", } end |
Instance Method Details
#to_jsii ⇒ Object
221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 |
# File 'lambda_event_sources/kafka_event_source_props.rb', line 221 def to_jsii result = {} result.merge!(super) result.merge!({ "startingPosition" => @starting_position, "batchSize" => @batch_size, "enabled" => @enabled, "maxBatchingWindow" => @max_batching_window, "provisionedPollerConfig" => @provisioned_poller_config, "topic" => @topic, "bisectBatchOnError" => @bisect_batch_on_error, "consumerGroupId" => @consumer_group_id, "filterEncryption" => @filter_encryption, "filters" => @filters, "logLevel" => @log_level, "maxRecordAge" => @max_record_age, "metricsConfig" => @metrics_config, "onFailure" => @on_failure, "reportBatchItemFailures" => @report_batch_item_failures, "retryAttempts" => @retry_attempts, "schemaRegistryConfig" => @schema_registry_config, "secret" => @secret, "startingPositionTimestamp" => @starting_position_timestamp, }) result.compact end |