Class: AWSCDK::LambdaEventSources::StreamEventSourceProps
- Inherits:
-
BaseStreamEventSourceProps
- Object
- BaseStreamEventSourceProps
- AWSCDK::LambdaEventSources::StreamEventSourceProps
- Defined in:
- lambda_event_sources/stream_event_source_props.rb
Overview
The set of properties for streaming event sources shared by Dynamo and Kinesis.
Direct Known Subclasses
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.
-
#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 option.
-
#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 When specified, enables collection of additional metrics for the stream event source.
-
#on_failure ⇒ AWSCDK::Lambda::IEventSourceDlq?
readonly
An Amazon S3, Amazon SQS queue or Amazon SNS topic destination for discarded records.
-
#parallelization_factor ⇒ Numeric?
readonly
The number of batches to process from each shard concurrently.
-
#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.
-
#starting_position ⇒ AWSCDK::Lambda::StartingPosition
readonly
Where to begin consuming the stream.
-
#tumbling_window ⇒ AWSCDK::Duration?
readonly
The size of the tumbling windows to group records sent to DynamoDB or Kinesis Valid Range: 0 - 15 minutes.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(starting_position:, batch_size: nil, enabled: nil, max_batching_window: nil, provisioned_poller_config: nil, bisect_batch_on_error: nil, filter_encryption: nil, filters: nil, max_record_age: nil, metrics_config: nil, on_failure: nil, parallelization_factor: nil, report_batch_item_failures: nil, retry_attempts: nil, tumbling_window: nil) ⇒ StreamEventSourceProps
constructor
A new instance of StreamEventSourceProps.
- #to_jsii ⇒ Object
Constructor Details
#initialize(starting_position:, batch_size: nil, enabled: nil, max_batching_window: nil, provisioned_poller_config: nil, bisect_batch_on_error: nil, filter_encryption: nil, filters: nil, max_record_age: nil, metrics_config: nil, on_failure: nil, parallelization_factor: nil, report_batch_item_failures: nil, retry_attempts: nil, tumbling_window: nil) ⇒ StreamEventSourceProps
Returns a new instance of StreamEventSourceProps.
22 23 24 25 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 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 22 def initialize(starting_position:, batch_size: nil, enabled: nil, max_batching_window: nil, provisioned_poller_config: nil, bisect_batch_on_error: nil, filter_encryption: nil, filters: nil, max_record_age: nil, metrics_config: nil, on_failure: nil, parallelization_factor: nil, report_batch_item_failures: nil, retry_attempts: nil, tumbling_window: 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? @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? @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? @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? @parallelization_factor = parallelization_factor Jsii::Type.check_type(@parallelization_factor, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "parallelizationFactor") unless @parallelization_factor.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? @tumbling_window = tumbling_window Jsii::Type.check_type(@tumbling_window, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5EdXJhdGlvbiJ9")), "tumblingWindow") unless @tumbling_window.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
74 75 76 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 74 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.
101 102 103 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 101 def bisect_batch_on_error @bisect_batch_on_error end |
#enabled ⇒ Boolean? (readonly)
Default: true
If the stream event source mapping should be enabled.
79 80 81 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 79 def enabled @enabled end |
#filter_encryption ⇒ AWSCDK::KMS::IKey? (readonly)
Default: - none
Add Customer managed KMS key to encrypt Filter Criteria.
107 108 109 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 107 def filter_encryption @filter_encryption end |
#filters ⇒ Array<Hash{String => Object}>? (readonly)
Default: - None
Add filter criteria option.
112 113 114 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 112 def filters @filters 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).
87 88 89 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 87 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.
Valid Range:
- Minimum value of 60 seconds
- Maximum value of 7 days
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.
126 127 128 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 126 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 When specified, enables collection of additional metrics for the stream event source.
131 132 133 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 131 def metrics_config @metrics_config end |
#on_failure ⇒ AWSCDK::Lambda::IEventSourceDlq? (readonly)
Default: - discarded records are ignored
An Amazon S3, Amazon SQS queue or Amazon SNS topic destination for discarded records.
136 137 138 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 136 def on_failure @on_failure end |
#parallelization_factor ⇒ Numeric? (readonly)
Default: 1
The number of batches to process from each shard concurrently.
Valid Range:
- Minimum value of 1
- Maximum value of 10
146 147 148 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 146 def parallelization_factor @parallelization_factor 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.
96 97 98 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 96 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.
152 153 154 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 152 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).
Valid Range: -1 (infinite) or 0 to 10000
161 162 163 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 161 def retry_attempts @retry_attempts end |
#starting_position ⇒ AWSCDK::Lambda::StartingPosition (readonly)
Where to begin consuming the stream.
58 59 60 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 58 def starting_position @starting_position end |
#tumbling_window ⇒ AWSCDK::Duration? (readonly)
Default: - None
The size of the tumbling windows to group records sent to DynamoDB or Kinesis Valid Range: 0 - 15 minutes.
166 167 168 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 166 def tumbling_window @tumbling_window end |
Class Method Details
.jsii_properties ⇒ Object
168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 168 def self.jsii_properties { :starting_position => "startingPosition", :batch_size => "batchSize", :enabled => "enabled", :max_batching_window => "maxBatchingWindow", :provisioned_poller_config => "provisionedPollerConfig", :bisect_batch_on_error => "bisectBatchOnError", :filter_encryption => "filterEncryption", :filters => "filters", :max_record_age => "maxRecordAge", :metrics_config => "metricsConfig", :on_failure => "onFailure", :parallelization_factor => "parallelizationFactor", :report_batch_item_failures => "reportBatchItemFailures", :retry_attempts => "retryAttempts", :tumbling_window => "tumblingWindow", } end |
Instance Method Details
#to_jsii ⇒ Object
188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 |
# File 'lambda_event_sources/stream_event_source_props.rb', line 188 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, "bisectBatchOnError" => @bisect_batch_on_error, "filterEncryption" => @filter_encryption, "filters" => @filters, "maxRecordAge" => @max_record_age, "metricsConfig" => @metrics_config, "onFailure" => @on_failure, "parallelizationFactor" => @parallelization_factor, "reportBatchItemFailures" => @report_batch_item_failures, "retryAttempts" => @retry_attempts, "tumblingWindow" => @tumbling_window, }) result.compact end |