Amazon API Gateway WebSocket API로 410 GoneException 오류를 해결하려면 어떻게 해야 하나요?

2분 분량
0

Amazon API Gateway WebSocket API에 다음과 비슷한 메시지를 게시하려고 할 때 "410 GoneException" 오류가 발생합니다. ... "errorMessage": "GoneException: 410" ... 이 문제를 해결하려면 어떻게 해야 하나요?

간략한 설명

다음과 같은 경우 "410 GoneException" 오류가 발생할 수 있습니다.

  • 연결이 설정되기 전에 WebSocket API에 메시지가 게시되었습니다.
  • 연결이 종료되었거나 연결이 더 이상 존재하지 않습니다.
  • 클라이언트가 연결을 끊었다가 동일한 connectionId를 사용하여 다시 연결하려고 했습니다.

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

해결 방법

WebSocket API 오류를 해결하려면 Amazon CloudWatch Logs를 켜세요.

참고: 로그 수준에서 정보를 선택하여 모든 요청에 대한 실행 로그를 생성합니다.

실행 로그에는 대부분의 API 오류를 식별하고 해결하는 데 사용할 수 있는 정보가 포함되어 있습니다. 예를 들어 다음과 같습니다.

각 로깅 유형에 대한 자세한 내용은 API Gateway용 CloudWatch 로그 형식을 참조하세요.

WebSocket API에 메시지를 게시하기 전에 AWS SDK ApiGatewayManagementApi API를 사용하여 getConnection 작업을 호출하여 연결이 설정되었는지 확인하세요.

$connect 경로와 통합된 Lambda 함수에서 postToConnection 요청하지 마세요. 예를 들어, 클라이언트 연결이 설정된 후에 메시지를 게시하려면 다음과 같이 하세요.

  1. 상위 함수에서 비동기적으로 호출되는 하위 Lambda 함수를 생성합니다.
  2. 새 연결이 시작되면 $connect 라우트가 호출되고 상위 함수가 connectionId를 전달하는 하위 함수를 호출합니다.
  3. Lambda 하위 함수는 connectionId를 수신하고 getConnection 작업을 호출하여 연결이 유효한지 확인합니다. 그런 다음 postToConnection 메서드를 사용하여 메시지가 전송됩니다.

관련 정보

API Gateway의 WebSocket API에 대한 정보

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

AWS 공식
AWS 공식업데이트됨 일 년 전