내용으로 건너뛰기

API Gateway WebSocket API 연결 오류를 해결하려면 어떻게 해야 합니까?

2분 분량
0

Amazon API Gateway WebSocket API에 연결하려고 하면 오류가 발생합니다.

간략한 설명

API Gateway WebSocket API 연결 오류는 다음과 같은 이유로 발생할 수 있습니다.

  • 권한이 부족하여 백엔드에 요청을 보낼 수 없음
  • API ID, AWS 리전 및 API 단계에 대한 잘못된 필드
  • 백엔드 통합 오류
  • AWS Identity and Access Management(IAM) 인증 오류

해결 방법

백엔드에 요청을 보내는 데 필요한 권한이 WebSocket API에 있는지 확인

API Gateway는 IAM 역할, 정책, 태그 및 AWS Lambda Authorizer를 사용하여 WebSocket API에 대한 액세스를 제어합니다. 백엔드에 요청을 보내려면 API Gateway에 이러한 리소스에 대한 올바른 권한이 있어야 합니다. 자세한 내용은 API Gateway의 WebSocket API에 대한 액세스 제어 및 관리를 참조하십시오.

또한 WebSocket API 통합 요청을 올바르게 구성했는지 확인하십시오.

요청을 올바른 API ID, 리전 및 API 단계로 전송했는지 확인

요청의 경우 요청 정보를 확인해야 합니다. 다음 예제 요청 URL에서 다음 필드가 올바른지 확인하십시오.

wss://a1b2c3d4e5.execute-api.us-east-1.amazonaws.com/production
  • WebSocket API ID는 a1b2c3d4e5입니다.
  • 요청에 대한 리전은 us-east-1입니다.
  • API 단계 이름 production이 존재합니다.

CloudWatch 로그에서 오류 확인

자세한 문제 해결 정보를 보려면 API Gateway WebSocket API 문제 해결을 위해 Amazon CloudWatch 로그를 켜십시오. 백엔드에 Lambda 함수를 통합하는 경우 CloudWatch 로그에서 오류를 확인하십시오. 자세한 내용은 CloudWatch Logs에 Lambda 함수 로그 전송을 참조하십시오.

API 요청이 서명되었는지 확인

API 메서드에 대해 IAM 인증을 활성화하는 경우 API 요청이 Signature Version 4(SigV4)로 서명되었는지 확인하십시오. 자세한 내용은 서명된 AWS API 요청 생성을 참조하십시오.

API Gateway API에 대한 IAM 인증을 활성화하려면 다음 단계를 완료하십시오.

  1. API Gateway 콘솔에서 Websocket API를 선택합니다.
  2. 경로에서 $connect를 선택합니다.
    참고: $connect 경로에 대해서만 권한 부여 설정을 지정할 수 있습니다. 권한 부여 설정은 $connect 경로뿐만 아니라 전체 API에 적용됩니다. $connect 경로는 다른 경로를 보호합니다. $connect 경로는 모든 연결에서 호출되기 때문에 $connect 경로는 다른 모든 경로를 보호합니다.
  3. 경로 요청 아래의 경로 요청 설정에서 편집을 선택합니다.
  4. 권한 부여의 경우 드롭다운 목록에서 AWS IAM을 선택한 다음, 변경 사항 저장을 선택합니다.
  5. 변경 사항을 적용하려면 WebSocket API를 배포합니다.

관련 정보

CloudWatch 지표로 WebSocket API 실행 모니터링

AWS Lambda REQUEST 권한 부여자를 사용한 WebSocket API 액세스 제어