Configuring error handling settings for Lambda asynchronous invocations - Amazon Lambda
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

Configuring error handling settings for Lambda asynchronous invocations

Use the following settings to configure how Lambda handles errors and retries for asynchronous function invocations:

  • MaximumEventAgeInSeconds: The maximum amount of time, in seconds, that Lambda keeps an event in the asynchronous event queue before discarding it.

  • MaximumRetryAttempts: The maximum number of times that Lambda retries events when the function returns an error.

Use the Lambda console or Amazon CLI to configure error handling settings on a function, a version, or an alias.

Console
To configure error handling
  1. Open the Functions page of the Lambda console.

  2. Choose a function.

  3. Choose Configuration and then choose Asynchronous invocation.

  4. Under Asynchronous invocation, choose Edit.

  5. Configure the following settings.

    • Maximum age of event – The maximum amount of time Lambda retains an event in the asynchronous event queue, up to 6 hours.

    • Retry attempts – The number of times Lambda retries when the function returns an error, between 0 and 2.

  6. Choose Save.

Amazon CLI

To configure asynchronous invocation with the Amazon CLI, use the put-function-event-invoke-config command. The following example configures a function with a maximum event age of 1 hour and no retries.

aws lambda put-function-event-invoke-config \ --function-name error \ --maximum-event-age-in-seconds 3600 \ --maximum-retry-attempts 0

The put-function-event-invoke-config command overwrites any existing configuration on the function, version, or alias. To configure an option without resetting others, use update-function-event-invoke-config. The following example configures Lambda to send a record to a standard SQS queue named destination when an event can't be processed.

aws lambda update-function-event-invoke-config \ --function-name my-function \ --destination-config '{"OnFailure":{"Destination": "arn:aws-cn:sqs:us-east-1:123456789012:destination"}}'

You should see the following output:

{
    "LastModified": 1573686021.479,
    "FunctionArn": "arn:aws-cn:lambda:us-east-1:123456789012:function:my-function:$LATEST",
    "MaximumRetryAttempts": 0,
    "MaximumEventAgeInSeconds": 3600,
    "DestinationConfig": {
        "OnSuccess": {},
        "OnFailure": {}
    }
}

When an invocation event exceeds the maximum age or fails all retry attempts, Lambda discards it. To retain a copy of discarded events, configure a failed-event destination.