Event source mapping is a crucial concept within the AWS Certified Developer – Associate (DVA-C02) exam. This feature in AWS Lambda lets you read items from a stream or queue and then send them for processing in Lambda function. In simpler terms, an event source mapping becomes a bridge between a data source and your Lambda function.
Major Real-World Applications of Event Source Mapping:
- Event Stream Processing: It can process, filter, and pattern match incoming event streams.
- Data Ingestion into Compute Environments: It can ingest large volumes of incoming data into storage, databases, and compute environments.
- Workflow Automation: It can help automate your workflows by executing tasks when events occur.
Event Source Types
In AWS Lambda, the event-source types are divided into two categories; ‘push’ model and ‘pull’ model.
- Push model: In this model, AWS Lambda invokes your Lambda function synchronously or asynchronously. AWS services like Amazon SNS or AWS CloudFormation are examples of push-based event source types that invoke the associated Lambda function directly.
- Pull model: In this model, AWS Lambda polls incoming event source data and invokes your Lambda function. Here, AWS Lambda “pulls” your information. AWS services like Amazon Kinesis Data Streams, Amazon SQS, or AWS DynamoDB are examples of pull-based event source types.
Below is a comparison table that shows the key differences between the ‘push’ and ‘pull’ models:
Push Model | Pull Model | |
---|---|---|
Invoker | AWS Service | Lambda |
Invocation type | Synchronous / Asynchronous | Polling |
Examples | SNS, CloudFormation | SQS, Kinesis, DynamoDB |
Mapping Configurations
When creating an event source mapping, you specify several configuration parameters that dictate how the events are processed. These include:
- Batch size: This defines the maximum number of items to return with a single invocation of your function.
- Maximum batching window: This sets an amount of time to gather records before invoking the function.
- Parallelization factor: This specifies how many function invocations to run concurrently for each shard.
- Maximum retry attempts: This dictates the number of times AWS Lambda should retry on failure before the event source mapping is marked as failed.
- Maximum record age: Determines the age of the last record that Lambda sends to a function for processing.
- Bisect batch on function error: This allows for the splitting of a batch into two upon function error.
An example code creating an event source mapping using AWS CLI would look like this:
aws lambda create-event-source-mapping --function-name my-function --batch-size 500 \
--maximum-batching-window-in-seconds 120 --event-source-arn arn:aws:kinesis:us-west-2:123456789012:stream/my-stream --starting-position TRIM_HORIZON
This command maps a Kinesis stream named ‘my-stream’ to a Lambda function called ‘my-function’. The batch size is set to 500 and the maximum batching window is 120 seconds. The `starting-position` parameter is set to `TRIM_HORIZON` which signifies that Lambda begins reading records from the start of the stream.
To summarize, mastering the concepts of event source mapping is vital for success in AWS Certified Developer – Associate (DVA-C02) exam, as it interlinks different AWS services and provides a solid foundation for creating seamless serverless applications. By taking advantage of AWS Lambda and event source mappings, developers can create highly scalable, event-driven applications with minimal administrative overhead and operational costs.
Practice Test
True or False: Event source mapping is a service provided by AWS to integrate Lambda functions with other AWS services.
- True
- False
Answer: True
Explanation: Event source mapping is provided by AWS Lambda. It allows AWS services such as Amazon S3, Kinesis Data Streams, or DynamoDB to trigger a Lambda function.
Which among the following services can trigger an AWS Lambda function directly?
- A) Amazon S3
- B) AWS IoT Core
- C) All of the above
- D) None of the above
Answer: C) All of the above
Explanation: AWS Lambda functions can be directly triggered by various AWS services including both Amazon S3 and AWS IoT Core, along with others such as Kinesis and DynamoDB.
What does AWS Lambda do when it detects an error while executing a function with event source mapping?
- A) It never retries
- B) It always retries the function twice
- C) The behavior can be configured
- D) It sends an error message
Answer: C) The behavior can be configured
Explanation: The behavior of AWS Lambda when it encounters an error can be configured. By default, it retries the function twice, but this can be changed according to the specific requirements.
True or False: You can pause an event source mapping.
- True
- False
Answer: True
Explanation: Yes, you can pause event source mappings in AWS Lambda. This can be useful during debugging, preventing new invocations while still preserving the existing event source mapping.
What is an effective strategy for handling errors in Lambda with an event source mapping?
- A) Dead-letter queues
- B) Setting up CloudWatch alarms
- C) Setting Lambda to retry
- D) All of the above
Answer: D) All of the above
Explanation: All these options can be effectively utilized to handle errors in AWS Lambda with event source mapping. These strategies can provide a resilient error handling mechanism.
True or False: Event source mapping supports all AWS services as event sources.
- True
- False
Answer: False
Explanation: While a lot of AWS services can be configured as event sources, not all AWS services are supported.
True or False: Every event source mapping is associated with one and only one Lambda function.
- True
- False
Answer: True
Explanation: Each event source mapping in AWS Lambda is associated with one Lambda function. However, a single function can have multiple event source mappings.
Which of the following can you specify when creating an Event Source Mapping?
- A. The maximum age of a record that Lambda sends to your function.
- B. The batch window for your function.
- C. The maximum number of times to retry when the function returns an error.
- D. All of the above.
Answer: D. All of the above.
Explanation: When creating an Event Source Mapping, you can specify the maximum record age, the batch window, and the maximum number of retries.
True or False: The order in which AWS Lambda processes a batch of records is predictable and remains consistent.
- True
- False
Answer: False
Explanation: AWS Lambda does not guarantee order when processing a batch of records. It’s best to treat it as a concurrent operation to avoid any order dependency.
True or False: AWS Lambda supports concurrent stream processing for Kinesis and DynamoDB streams.
- True
- False
Answer: True
Explanation: AWS Lambda allows you to process Kinesis and DynamoDB streams concurrently by dividing the stream into batches or shards. This lets you achieve higher data throughput in your stream processing.
Interview Questions
What is event source mapping in AWS?
Event source mapping is an AWS service feature that lets you set up Lambda functions to react to data changes in a Kinesis data stream, a DynamoDB stream, or an SQS queue.
How does AWS Lambda handle failures when processing the batch of records with event source mapping?
If AWS Lambda function fails to process any record in a batch before the batch “iterates out,” the function returns an error and AWS retries the batch until processing succeeds or the data expires.
Which services can be used as an event source in AWS Lambda?
Amazon Kinesis, Amazon SQS and Amazon DynamoDB are the services that can be used as an event source in AWS Lambda.
Which IAM permissions are required to create an event source mapping?
The ‘lambda:CreateEventSourceMapping’, ‘lambda:UpdateEventSourceMapping’ and the ‘lambda:GetEventSourceMapping’ permissions are required to create an event source mapping.
What happens if you delete an event source mapping?
If you delete an event source mapping, it stops fetching records from the source. Existing records are not affected, but your function no longer receives the event source records.
What is the maximum batch size for event source mapping with Amazon Kinesis?
The maximum batch size for event source mapping with Amazon Kinesis is 10,000 records.
Can event records order be maintained while using event source mapping in AWS Lambda?
Yes. While using Amazon Kinesis or Amazon DynamoDB as an event source, setting the function’s concurrency can ensure it processes events in order.
When is an error thrown by an event source mapping in AWS Lambda?
An error is thrown by an event source mapping in AWS Lambda if the mapping is unable to read an event source or if the function is throttled.
How can you manage the concurrency of an AWS Lambda function with event source mapping?
You can manage the concurrency of an AWS Lambda function with event source mapping by setting a reserved concurrency limit or by configuring provisioned concurrency.
How long does AWS retain records in case of a polling failure?
AWS Lambda retries the batch until processing succeeds or the data expires, which, in the case of DynamoDB Streams, Kinesis data streams, and Simple Queue Service, is 24 hours.
When does an event source mapping become “idle”?
An event source mapping becomes “idle” when it is open but doesn’t read records for more than 5 minutes, or doesn’t meet the maximum batch size for more than 5 minutes.
What is the self-managed event source in AWS Lambda?
A self-managed event source in AWS Lambda refers to an HTTP endpoint, xmlrpc endpoint, an email address, or a queue where you run or manage the service that routes events to your Lambda function.