내용으로 건너뛰기

Lambda Amazon SQS 트리거가 비활성화된 이유는 무엇입니까?

2분 분량
0

Amazon Simple Queue Service(Amazon SQS) 대기열의 메시지를 처리하도록 AWS Lambda 함수를 구성했지만 SQS 트리거가 활성이 아닙니다.

간략한 설명

Lambda 함수를 사용해 Amazon SQS 대기열에서 메시지를 처리할 수 있습니다. 이벤트 소스 매핑이 이벤트 소스에서 읽어 와 Lambda 함수를 호출합니다.

Lambda 폴러는 Amazon SQS 대기열에 대해 지속적으로 ReceiveMessage API를 호출합니다. ReceiveMessage API 호출이 완료되지 않으면 AWS::Lambda::EventSourceMapping 리소스가 비활성화됩니다.

해결 방법

Lambda 함수 권한 확인

Lambda 함수 실행 역할에 ChangeMessageVisibility, DeleteMessage, GetQueueAttributesReceiveMessage API 작업에 대한 권한이 있어야 합니다.

AWS KMS 권한 확인

Amazon SQS 대기열을 AWS Key Management Service(AWS KMS) SSE-KMS 암호화로 구성한 경우, 다음을 확인하십시오.

참고: SSE-KMS로 암호화한 Amazon SQS 대기열은 AWS 교차 계정에서 Lambda 함수를 호출할 수 없습니다.

CloudTrail을 사용한 문제 해결

AWS CloudTrail Event History를 사용해 데이터 이벤트를 조회하고 오류 코드를 검토하여 문제를 해결할 수 있습니다.
참고: CloudTrail은 AWS 계정에 대해 기본적으로 활성화되어 있습니다.

AWS 계정의 이벤트를 지속적으로 기록하려면 트레일을 만드십시오. 트레일이 계정에서 수행된 API 호출의 로그를 만듭니다.
참고: CloudTrail 콘솔에서 최신 이벤트 기록을 볼 수도 있습니다.

다음 단계를 완료하십시오.

1. CloudTrail 콘솔을 엽니다.

2. 탐색 창에서 Event history(이벤트 기록)를 선택합니다.

3. 지침에 따라 사용 사례에 맞게 CloudTrail 이벤트를 보고 표시하고 필터링하십시오.

기록된 이벤트 기록을 CSV 또는 JSON 형식 파일로 다운로드할 수도 있습니다.

CloudTrail 이벤트 이름이 LambdaESMDisabled인지 확인하십시오. 이벤트 로그에는 데이터 이벤트 LambdaESMDisable 및 Amazon SQS 트리거가 활성이 아닌 이유에 관한 자세한 정보가 포함됩니다.

자세한 내용은 Using CloudTrail to troubleshoot deactivated Lambda event sources(CloudTrail을 사용해 비활성화된 Lambda 이벤트 소스 문제 해결)을 참조하십시오.

(선택 사항) CloudWatch 경보 만들기

Amazon SQS 지표에 대한 Amazon CloudWatch 경보를 만들어 수신, 전송, 삭제된 메시지 수 등에 대한 알림을 받을 수 있습니다. 예를 들어 Amazon SQS 지표 NumberOfMessagesReceived를 사용하면 최근 반송된 메시지 수를 얻을 수 있습니다. 이 수가 0이면 새 Lambda 함수를 호출해 Amazon SQS 트리거 상태를 확인하십시오. Amazon SQS 트리거가 여전히 비활성화되어 있으면 새 Lambda 함수를 사용해 활성화합니다.

자세한 내용은 Amazon SQS에 사용 가능한 CloudWatch 지표를 참조하십시오.

관련 정보

Amazon SQS 대기열에 대한 액세스 권한을 부여하려면 어떻게 해야 합니까?

Lambda 함수 오류 문제를 해결하려면 어떻게 해야 합니까?

AWS 공식업데이트됨 6달 전