Amazon API Gateway WebSocket API에서 발생하는 410 GoneException 오류 문제를 해결하려면 어떻게 해야 합니까?

2분 분량
0

Amazon API Gateway WebSocket API에 메시지를 게시할 때 표시되는 “410 GoneException” 오류를 해결하고 싶습니다.

간략한 설명

다음과 같은 이유로 “410 GoneException” 오류가 표시될 수 있습니다.

  • 연결이 설정되기 전에 WebSocket API에 메시지가 게시되었음
  • 연결이 종료되었거나 존재하지 않음
  • 클라이언트가 연결이 해제된 이후 동일한 connectionId를 사용하여 재연결을 시도함
  • connectionID가 유효하지 않음

참고: WebSocket API의 경우 백엔드에서 콜백 응답을 보내려면 connectionId가 필요합니다.

해결 방법

WebSocket API 오류를 해결하려면 Amazon CloudWatch Logs를 켜십시오. 로그 수준에서 정보를 선택하여 모든 요청에 대한 실행 로그를 생성합니다. 실행 로그에는 대부분의 API 오류를 식별하고 문제를 해결하는 데 사용할 수 있는 정보가 포함되어 있습니다. 예를 들면 다음과 같습니다.

자세한 내용은 API Gateway용 CloudWatch 로그 형식을 참고하십시오.

연결을 설정하려면 WebSocket API에 메시지를 게시하기 전에 AWS SDK ApiGatewayManagementApi를 사용하여 getConnection 작업을 호출하십시오.

$connect 경로와 통합된 Lambda 함수에서 postToConnection을 요청하지 마십시오. 클라이언트 연결이 설정된 후 메시지를 게시하려면 다음 단계를 완료하십시오.

  1. 상위 함수에서 비동기식으로 호출되는 하위 Lambda 함수를 생성합니다.
  2. 새 연결을 시작합니다. 이후 $connect 경로가 호출되고 상위 함수는 connectionId를 전달하는 하위 함수를 호출합니다.
  3. Lambda 하위 함수는 connectionId를 수신하고 getConnection 작업을 호출하여 연결이 유효한지 확인합니다.
  4. postToConnection 메서드를 사용하여 메시지를 보냅니다.

관련 정보

API Gateway의 WebSocket API 개요

connectionId 또는 사용자 지정 토큰을 API Gateway WebSocket API의 헤더로 VPC 링크 통합에 전달하려면 어떻게 해야 합니까?

AWS 공식
AWS 공식업데이트됨 한 달 전