Study DVA-C02 Lambda Events, VPC Access, and Errors: key concepts, common traps, and exam decision cues.
Lambda is central to DVA-C02, but the exam is not just asking whether you know Lambda exists. It is testing whether you understand how runtime settings, event-source semantics, VPC access, retries, destinations, and code shape change real application behavior.
Dead-letter queue (DLQ): Queue or topic that receives records that could not be processed successfully after the normal retry path.
Destination: Configured target that receives a record of successful or failed asynchronous Lambda invocation results.
The stem usually wants you to classify one of these lanes:
| Requirement | Strong first thought |
|---|---|
| Lambda must reach private subnets or databases | VPC networking configuration |
| handler times out or scales unpredictably | memory, timeout, concurrency, and cold-start tuning |
| async invocation loses failed events | destinations or DLQ path |
| replayed events cause duplicate side effects | idempotent handler logic |
The fastest way to miss Lambda questions is to start with memory or timeout before understanding the trigger model.
| Invocation shape | What DVA-C02 wants you to think about |
|---|---|
| synchronous | immediate response, caller-visible error handling |
| asynchronous | retries, destinations, safe replay behavior |
| poll-based | batching, reprocessing, ordering, and visibility into failed records |
If the question mentions duplicates or delayed retries, think about the event-source model before you think about raw compute sizing.
At the developer level, these settings are not “just ops knobs”:
Small Python example:
1import json
2import os
3
4TABLE_NAME = os.environ["TABLE_NAME"]
5
6def handler(event, context):
7 record_id = event["id"]
8 return {
9 "statusCode": 200,
10 "body": json.dumps({"table": TABLE_NAME, "recordId": record_id}),
11 }
The exam point is that configuration belongs outside the code artifact when the value changes across environments.
When Lambda needs private resources such as an RDS instance in private subnets, the exam expects you to remember:
Many DVA-C02 distractors pretend VPC access is only an infrastructure detail. For developers, it directly affects application reachability and failure modes.
This is one of the most important practical developer skills in the exam.
1def process_order(event, seen_ids: set[str]) -> str:
2 order_id = event["orderId"]
3 if order_id in seen_ids:
4 return "duplicate ignored"
5
6 # perform side effect once
7 seen_ids.add(order_id)
8 return "processed"
In production you would back this with durable state, not an in-memory set. The exam lesson is simpler: if retries or replays can happen, the handler must avoid duplicating side effects such as extra charges, double emails, or repeated downstream writes.
DVA-C02 does not expect deep Lambda micro-benchmarking. It does expect you to know the common first moves:
If the issue is repeated failure under retries, tuning alone is usually the wrong first answer.