Amazon SQS DeleteMessage API 호출을 사용할 때 "ReceiptHandleIsInvalid" 또는 "InvalidParameterValue" 오류 문제를 해결하려면 어떻게 해야 하나요?

2분 분량
0

Amazon Simple Queue Service(Amazon SQS) 대기열에서 메시지를 삭제하려고 하면 "ReceiptHandleIsInvalid" 또는 "InvalidParameterValue" 오류 메시지가 나타납니다.

간략한 설명

Amazon SQS 대기열에서 메시지를 수신하면 FIFO(First-In-First-Out) 및 표준 대기열에 대한 해당 메시지의 수신 핸들도 받게 됩니다. 메시지를 삭제하거나 표시 여부를 변경할 때는 확인 핸들이 필요합니다.

수신 핸들이 올바르지 않으면 다음 예와 비슷한 오류가 발생합니다.

"An error occurred (ReceiptHandleIsInvalid) when calling the DeleteMessage operation: The input receipt handle 'YOUR RECEIPT HANDLE' is not a valid receipt handle."

수신 핸들이 만료되면 다음 예와 비슷한 오류가 발생합니다.

"An error occurred (InvalidParameterValue) when calling the DeleteMessage operation: Value 'YOUR RECEIPT HANDLE' for parameter ReceiptHandle is invalid. Reason: The receipt handle has expired."

확인 핸들은 가시성 제한 기간이 지나면 만료됩니다. 가시성 제한 시간이 만료되면 메시지가 대기열로 돌아갑니다. 소비자로부터 메시지를 다시 받으면 새 수신 핸들을 받게 됩니다. 이 오류는 최신 수신 핸들 대신 이전 수신 핸들을 사용했기 때문에 발생합니다.

**참고:**표준 SQS 대기열을 사용하면 이전 수신 핸들이 제대로 작동할 수 있습니다. 하지만 DeleteMessage API 호출에는 최신 수신 핸들을 사용하는 것이 좋습니다.

해결 방법

부정확하거나 만료된 수신 핸들 오류를 방지하려면 올바른 수신 핸들을 사용하여 SQS 대기열 가시성 제한 기간 내에 메시지를 삭제하세요.

메시지를 두 번 이상 수신하는 경우 가장 최근의 ReceiveMessage API 호출 응답을 검토하고 ReceiptHandle 값을 확인하세요. 그런 다음 DeleteMessage API 호출을 수행할 때 식별된 ReceiptHandle 값을 사용합니다.

또한 DeleteMessage API를 호출할 때 다음 오류가 발생할 수 있습니다.

"An error occurred (ReceiptHandleIsInvalid) when calling the DeleteMessage operation: The receipt handle "YOUR RECEIPT HANDLE" is not valid for this queue."

이 오류는 다른 SQS 대기열에 있는 수신 핸들이 있는 메시지를 삭제하려고 할 때 발생합니다. 이 오류를 방지하려면 메시지가 있는 SQS 대기열에서 올바른 수신 핸들을 사용하세요.

관련 정보

Amazon SQS의 모범 사례

댓글 없음

관련 콘텐츠