DOP-C02 Practice Question 19: Lambda Async on Failure Destination
AWS Certified DevOps Engineer – Professional (DOP-C02) · Test 2 · question 9 of 10
An AWS Lambda function is invoked asynchronously by Amazon EventBridge to process order events. Occasionally an event fails every retry and is silently discarded, and the on-call team has no record of what happened. They want each discarded event captured in an Amazon SQS queue that an existing replay tool reads. Each captured record must contain both the original event payload and the function's error response, so that the engineer can triage without searching the logs. The configuration must also be settable per function alias, because the live and canary aliases need separate queues.
Which configuration meets these requirements?
Show answer and explanation
Answer:
For asynchronous invocations, Lambda can send an *invocation record* to a destination when an event fails all processing attempts or exceeds its maximum age. Standard SQS queues are supported. The record is a JSON document with requestContext (including the condition, such as RetriesExhausted), the original requestPayload, and the responseContext and responsePayload carrying the function's error. That is the event and the error together in one message. Destinations can be configured on a function, a function *version*, or an *alias*, so live and canary can each point at their own queue.
Option A fails on two points. For dead-letter queues, "Lambda only sends the content of the event, without details about the response", which leaves the engineer to search the logs. Dead-letter queues can also be set only at the function level, and versions use the unpublished function's setting, so per-alias queues are impossible.
Option B only postpones the loss. Retries and event age decide how long Lambda keeps trying. When the last attempt fails, the event is still discarded unless a destination or queue captures it.
Option D picks an unsupported target type. The Lambda docs list an SQS FIFO queue as an unsupported destination type. Deliveries to it fail and Lambda emits the DestinationDeliveryFailures metric, so nothing is captured.
Reference: Capturing records of Lambda asynchronous invocations