Lambda 비동기 호출에 대한 오류 처리 설정 구성 - AWS Lambda

Lambda 비동기 호출에 대한 오류 처리 설정 구성

다음 설정을 사용하여 Lambda가 오류를 처리하고 비동기 함수 호출을 재시도하는 방법을 구성하세요.

  • MaximumEventAgeInSeconds: Lambda가 이벤트를 삭제하기 전에 비동기 이벤트 대기열에서 이벤트를 유지하는 최대 시간(초)입니다.

  • MaximumRetryAttempts: 함수가 오류를 반환할 때 Lambda에서 이벤트를 재시도하는 최대 횟수입니다.

Lambda 콘솔 또는 AWS CLI를 사용하여 함수, 버전 또는 별칭에 대한 오류 처리 설정을 구성합니다.

Console
오류 처리를 구성하려면
  1. Lambda 콘솔의 함수 페이지를 엽니다.

  2. 함수를 선택합니다.

  3. 구성(Configuration)을 선택한 다음 비동기식 호출(Asynchronous invocation)을 선택합니다.

  4. 비동기식 호출에서 편집을 선택합니다.

  5. 다음 설정을 구성합니다.

    • 최대 이벤트 기간 - Lambda가 비동기 이벤트 대기열에서 이벤트를 유지하는 최대 시간입니다(최대 6시간).

    • 재시도 시도 - 함수가 오류를 반환할 때 Lambda 재시도 횟수입니다(0~2 사이).

  6. Save(저장)를 선택합니다.

AWS CLI

AWS CLI를 사용하여 비동기 간접 호출을 구성하려면 put-function-event-간접 호출-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-간접 호출-config를 사용합니다. 다음 예제에서는 이벤트를 처리할 수 없을 때 destination이라는 표준 SQS 대기열로 레코드를 전송하도록 Lambda를 구성합니다.

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는 해당 이벤트를 폐기합니다. 취소된 이벤트의 복사본을 유지하려면 실패한 이벤트 대상을 구성합니다.