AWS Lambda 함수가 Amazon SNS 토픽을 구독하고 있습니다. 모든 Lambda 호출 기록이 Amazon SQS 대기열에 추가되도록 해야 합니다. 이 요구 사항을 충족하는 솔루션은 무엇입니까?
정답 선택
옵션을 탭하여 정답을 확인하세요.
정답: 성공적인 호출을 캡처하기 위해 단일 비동기 호출 대상을 추가합니다. 해당 대상으로 SQS 대기열을 구성합니다. 메시지 전달 실패를 catch하기 위해 DestinationDeliveryFailures 지표에 대한 CloudWatch 경보를 생성합니다..
이것이 정답인 이유
Lambda 비동기 호출 대상은 함수 호출 결과를 다른 AWS 서비스로 라우팅하는 데 사용됩니다. 성공적인 호출 기록을 SQS 대기열에 추가하려면 SQS 대기열을 성공 대상(On Success)으로 구성해야 합니다. 이렇게 하면 모든 성공적인 호출에 대한 세부 정보가 SQS 대기열로 전송됩니다. DestinationDeliveryFailures 지표에 대한 CloudWatch 경보는 SQS로 메시지 전송 실패를 감지하여 누락된 기록이 없는지 확인하는 데 도움이 됩니다.
SQS 대기열을 데드 레터 큐(DLQ)로 구성하면 함수 호출이 실패한 경우에만 메시지가 전송되므로 모든 호출 기록을 캡처하지 못합니다. Lambda 함수 코드 내에서 SQS SendMessage API를 호출하는 것은 가능하지만, 이는 Lambda의 비동기 호출 대상 기능을 활용하지 않아 코드 복잡성을 증가시키고 관리 오버헤드를 초래할 수 있습니다. 두 개의 비동기 호출 대상을 성공과 실패에 대해 각각 구성하는 것은 불필요하며, 단일 성공 대상으로 충분합니다.