Lambda 비동기 호출의 오류 처리 설정 구성
Lambda 비동기 호출의 오류 처리 설정 구성
다음 설정을 사용해 비동기 함수 호출에서 Lambda가 오류와 재시도를 처리하는 방식을 구성할 수 있습니다.
본문
MaximumEventAgeInSeconds: Lambda가 이벤트를 버리기 전에 비동기 이벤트 큐에 보관하는 최대 시간(초)입니다.MaximumRetryAttempts: 함수가 오류를 반환할 때 Lambda가 이벤트를 재시도하는 최대 횟수입니다.
함수, 버전, 별칭에 대한 오류 처리 설정은 Lambda 콘솔이나 AWS CLI로 구성합니다.
콘솔로 구성:
- Lambda 콘솔의 Functions 페이지를 엽니다.
- 함수를 선택합니다.
- Configuration을 선택한 뒤 Asynchronous invocation을 선택합니다.
- Asynchronous invocation 아래에서 Edit을 선택합니다.
- 다음 설정을 구성합니다.
- Maximum age of event – Lambda가 이벤트를 비동기 이벤트 큐에 보관하는 최대 시간으로, 최대 6시간입니다.
- Retry attempts – 함수가 오류를 반환할 때 Lambda가 재시도하는 횟수로, 0~2 사이입니다.
- Save를 선택합니다.
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를 사용하세요. 다음 예제는 이벤트를 처리할 수 없을 때 표준 SQS 큐 destination에 레코드를 보내도록 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는 이를 버립니다. 버려진 이벤트의 사본을 보존하려면 실패 이벤트 대상(failed-event destination)을 구성하세요.