DynamoDB
The object describing a DynamoDB
event source type. For more information, see Using AWS Lambda with Amazon DynamoDB in the AWS Lambda Developer Guide.
AWS SAM generates an AWS::Lambda::EventSourceMapping resource when this event type is set.
Syntax
To declare this entity in your AWS Serverless Application Model (AWS SAM) template, use the following syntax.
YAML
BatchSize:
Integer
BisectBatchOnFunctionError:Boolean
DestinationConfig:DestinationConfig
Enabled:Boolean
FilterCriteria:FilterCriteria
FunctionResponseTypes:List
KmsKeyArn:String
MaximumBatchingWindowInSeconds:Integer
MaximumRecordAgeInSeconds:Integer
MaximumRetryAttempts:Integer
MetricsConfig:MetricsConfig
ParallelizationFactor:Integer
StartingPosition:String
StartingPositionTimestamp:Double
Stream:String
TumblingWindowInSeconds:Integer
Properties
-
BatchSize
-
The maximum number of items to retrieve in a single batch.
Type: Integer
Required: No
Default: 100
AWS CloudFormation compatibility: This property is passed directly to the
BatchSize
property of anAWS::Lambda::EventSourceMapping
resource.Minimum:
1
Maximum:
1000
-
BisectBatchOnFunctionError
-
If the function returns an error, split the batch in two and retry.
Type: Boolean
Required: No
AWS CloudFormation compatibility: This property is passed directly to the
BisectBatchOnFunctionError
property of anAWS::Lambda::EventSourceMapping
resource. -
DestinationConfig
-
An Amazon Simple Queue Service (Amazon SQS) queue or Amazon Simple Notification Service (Amazon SNS) topic destination for discarded records.
Type: DestinationConfig
Required: No
AWS CloudFormation compatibility: This property is passed directly to the
DestinationConfig
property of anAWS::Lambda::EventSourceMapping
resource. -
Enabled
-
Disables the event source mapping to pause polling and invocation.
Type: Boolean
Required: No
AWS CloudFormation compatibility: This property is passed directly to the
Enabled
property of anAWS::Lambda::EventSourceMapping
resource. -
FilterCriteria
-
A object that defines the criteria to determine whether Lambda should process an event. For more information, see AWS Lambda event filtering in the AWS Lambda Developer Guide.
Type: FilterCriteria
Required: No
AWS CloudFormation compatibility: This property is passed directly to the
FilterCriteria
property of anAWS::Lambda::EventSourceMapping
resource. -
FunctionResponseTypes
-
A list of the response types currently applied to the event source mapping. For more information, see Reporting batch item failures in the AWS Lambda Developer Guide.
Valid values:
ReportBatchItemFailures
Type: List
Required: No
AWS CloudFormation compatibility: This property is passed directly to the
FunctionResponseTypes
property of anAWS::Lambda::EventSourceMapping
resource. -
KmsKeyArn
-
The Amazon Resource Name (ARN) of the key to encrypt information related to this event.
Type: String
Required: No
AWS CloudFormation compatibility: This property is passed directly to the
KmsKeyArn
property of anAWS::Lambda::EventSourceMapping
resource. -
MaximumBatchingWindowInSeconds
-
The maximum amount of time to gather records before invoking the function, in seconds.
Type: Integer
Required: No
AWS CloudFormation compatibility: This property is passed directly to the
MaximumBatchingWindowInSeconds
property of anAWS::Lambda::EventSourceMapping
resource. -
MaximumRecordAgeInSeconds
-
The maximum age of a record that Lambda sends to a function for processing.
Type: Integer
Required: No
AWS CloudFormation compatibility: This property is passed directly to the
MaximumRecordAgeInSeconds
property of anAWS::Lambda::EventSourceMapping
resource. -
MaximumRetryAttempts
-
The maximum number of times to retry when the function returns an error.
Type: Integer
Required: No
AWS CloudFormation compatibility: This property is passed directly to the
MaximumRetryAttempts
property of anAWS::Lambda::EventSourceMapping
resource. -
MetricsConfig
-
An opt-in configuration to get enhanced metrics for event source mappings that capture each stage of processing. For an example, see MetricsConfig event.
Type: MetricsConfig
Required: No
AWS CloudFormation compatibility: This property is passed directly to the
MetricsConfig
property of anAWS::Lambda::EventSourceMapping
resource. -
ParallelizationFactor
-
The number of batches to process from each shard concurrently.
Type: Integer
Required: No
AWS CloudFormation compatibility: This property is passed directly to the
ParallelizationFactor
property of anAWS::Lambda::EventSourceMapping
resource. -
StartingPosition
-
The position in a stream from which to start reading.
-
AT_TIMESTAMP
– Specify a time from which to start reading records. -
LATEST
– Read only new records. -
TRIM_HORIZON
– Process all available records.
Valid values:
AT_TIMESTAMP
|LATEST
|TRIM_HORIZON
Type: String
Required: Yes
AWS CloudFormation compatibility: This property is passed directly to the
StartingPosition
property of anAWS::Lambda::EventSourceMapping
resource. -
-
StartingPositionTimestamp
-
The time from which to start reading, in Unix time seconds. Define
StartingPositionTimestamp
whenStartingPosition
is specified asAT_TIMESTAMP
.Type: Double
Required: No
AWS CloudFormation compatibility: This property is passed directly to the
StartingPositionTimestamp
property of anAWS::Lambda::EventSourceMapping
resource. -
Stream
-
The Amazon Resource Name (ARN) of the DynamoDB stream.
Type: String
Required: Yes
AWS CloudFormation compatibility: This property is passed directly to the
EventSourceArn
property of anAWS::Lambda::EventSourceMapping
resource. -
TumblingWindowInSeconds
-
The duration, in seconds, of a processing window. The valid range is 1 to 900 (15 minutes).
For more information, see Tumbling windows in the AWS Lambda Developer Guide.
Type: Integer
Required: No
AWS CloudFormation compatibility: This property is passed directly to the
TumblingWindowInSeconds
property of anAWS::Lambda::EventSourceMapping
resource.
Examples
MetricsConfig event
The following is an example of a resource that uses the MetricsConfig
property to capture each stage of processing for their event source mappings.
Resources: FilteredEventsFunction: Type: AWS::Serverless::Function Properties: CodeUri: s3://sam-demo-bucket/metricsConfig.zip Handler: index.handler Runtime: nodejs16.x Events: KinesisStream: Type: Kinesis Properties: Stream: !GetAtt KinesisStream.Arn StartingPosition: LATEST MetricsConfig: Metrics: - EventCount
DynamoDB event source for existing DynamoDB table
DynamoDB event source for a DynamoDB table that already exists in an AWS account.
YAML
Events: DDBEvent: Type: DynamoDB Properties: Stream: arn:aws:dynamodb:us-east-1:123456789012:table/TestTable/stream/2016-08-11T21:21:33.291 StartingPosition: TRIM_HORIZON BatchSize: 10 Enabled: false
DynamoDB Event for DynamoDB Table Declared in Template
DynamoDB Event for a DynamoDB table that is declared in the same template file.
YAML
Events: DDBEvent: Type: DynamoDB Properties: Stream: !GetAtt MyDynamoDBTable.StreamArn # This must be the name of a DynamoDB table declared in the same template file StartingPosition: TRIM_HORIZON BatchSize: 10 Enabled: false