配置 Lambda 异步调用的错误处理设置 - AWS Lambda

配置 Lambda 异步调用的错误处理设置

使用以下设置来配置 Lambda 如何处理异步函数调用的错误和重试:

使用 Lambda 控制台或 AWS CLI 配置有关函数、版本或别名的错误处理设置。

Console
配置错误处理
  1. 打开 Lamba 控制台的 Functions(函数)页面。

  2. 选择函数。

  3. 选择 Configuration(配置),然后选择 Asynchronous invocation(异步调用)

  4. Asynchronous invocation (异步调用) 下,选择 Edit (编辑)

  5. 配置以下设置。

    • Maximum age of event(事件的最长期限)– Lambda 在异步事件队列中保留事件的最长时间(最长 6 小时)。

    • Retry attempts(重试次数)– 函数返回错误时 Lambda 重试的次数(0 到 2 之间)。

  6. 选择保存

AWS CLI

要通过 AWS CLI 配置异步调用,请使用 put-function-event-invoke-config 命令。以下示例配置一个最长事件期限为 1 小时且无重试的函数。

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

put-function-event-invoke-config 命令覆盖函数、版本或别名上的任何现有配置。要配置某个选项而不重置其他选项,请使用 update-function-event-invoke-config。以下示例配置 Lambda,以便在无法处理事件时将记录发送到名为 destination 的标准 SQS 队列。

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

您应看到以下输出:

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

当调用事件超过最长期限或所有重试均失败时,Lambda 会丢弃该事件。要保留已丢弃事件的副本,请配置失败事件目标