API Gateway에서 WebSocket API 통합 응답 설정 - Amazon API Gateway

API Gateway에서 WebSocket API 통합 응답 설정

통합 응답 개요

API Gateway의 통합 응답은 백엔드 서비스의 응답을 모델링하고 조작하는 한 방법입니다. WebSocket API 통합 응답과 REST API 설정을 비교한 아래 설명을 보면 몇 가지 차이점이 있지만 개념상 동작은 같습니다.

WebSocket 라우팅은 양방향 또는 단방향 통신으로 구성할 수 있습니다.

  • 라우팅이 양방향 통신을 위해 구성되면 통합 응답을 통해 REST API에 대한 통합 응답과 마찬가지로 반환된 메시지 페이로드에 대한 변환을 구성할 수 있습니다.

  • 라우팅이 단방향 통신을 위해 구성된 경우, 통합 응답 구성에 관계없이 메시지가 처리된 후 WebSocket 채널을 통해 응답이 반환되지 않습니다.

경로 응답을 설정하지 않으면 API Gateway가 경로 응답을 통해 백엔드 응답을 전달하지 않습니다. 경로 응답 설정에 대한 자세한 내용은 API Gateway에서 WebSocket API에 대한 라우팅 응답 설정 섹션을 참조하세요.

양방향 커뮤니케이션을 위한 통합 응답

통합은 프록시 통합과 비 프록시 통합으로 나눌 수 있습니다.

중요

프록시 통합의 경우, API Gateway가 자동으로 백엔드 출력을 호출자에게 전체 페이로드로 전달합니다. 통합 응답이 없습니다.

비 프록시 통합의 경우 최소한 하나의 통합 응답을 설정해야 합니다.

  • 명시적 선택을 할 수 없을 때 통합 응답 중 하나가 catch-all 역할을 하는 것이 이상적입니다. 이 기본 경우는 통합 응답 키 $default 설정으로 표현됩니다.

  • 다른 모든 경우에는 통합 응답 키가 정규 표현식으로 사용됩니다. "/expression/" 형식을 따라야 합니다.

비 프록시 HTTP 통합의 경우:

  • API Gateway가 백엔드 응답의 HTTP 상태 코드와 일치시키려고 합니다. 이 경우 통합 응답 키가 정규식으로 사용됩니다. 일치 항목을 찾을 수 없으면 $default가 통합 응답으로 선택됩니다.

  • 템플릿 선택 표현식은 위에서 설명한 대로 작동합니다. 예:

    • /2\d\d/: 성공적인 응답 수신 및 변환

    • /4\d\d/: 잘못된 요청 오류 수신 및 변환

    • $default: 예기치 않은 모든 응답 수신 및 변환

템플릿 선택 표현식에 대한 자세한 내용은 템플릿 선택 표현식 섹션을 참조하세요.

API Gateway 콘솔을 사용하여 통합 응답 설정

API Gateway 콘솔을 사용하여 WebSocket API에 대한 라우팅 통합 응답을 설정하려면 다음을 수행하세요.

  1. https://console.aws.amazon.com/apigateway에서 API Gateway 콘솔에 로그인합니다.

  2. WebSocket API를 선택하고 경로를 선택합니다.

  3. 통합 요청 탭을 선택한 다음 통합 응답 설정 섹션에서 통합 응답 생성을 선택합니다.

  4. 응답 키에 응답 선택 표현식을 평가한 후 보내는 메시지에 있는 응답 키에서 찾을 수 있는 값을 입력합니다. 예를 들어 잘못된 요청 오류를 수신하고 변환하려면 /4\d\d/를 입력하고 템플릿 선택 표현식과 일치하는 모든 응답을 수신하고 변환하려면 $default를 입력할 수 있습니다.

  5. 템플릿 선택 표현식에 보내는 메시지를 평가하기 위한 선택 표현식을 입력합니다.

  6. 응답 생성을 선택합니다.

  7. 매핑 템플릿을 정의하여 반환된 메시지 페이로드의 변환을 구성할 수도 있습니다. 템플릿 생성을 선택합니다.

  8. 키 이름을 입력합니다. 기본 템플릿 선택 표현식을 선택하는 경우 \$default를 입력합니다.

  9. 응답 템플릿에서 코드 편집기에 매핑 템플릿을 입력합니다.

  10. 템플릿 생성을 선택합니다.

  11. API 배포를 선택하여 API를 배포합니다.

API에 연결하려면 다음 wscat 명령을 사용합니다. wscat에 대한 자세한 정보는 wscat를 사용하여 WebSocket API에 연결하고 메시지 보내기 섹션을 참조하십시오.

wscat -c wss://api-id.execute-api.us-east-2.amazonaws.com/test

경로를 호출하면 반환된 메시지 페이로드가 반환됩니다.

AWS CLI를 사용하여 통합 응답 설정

AWS CLI를 사용하여 WebSocket API에 대한 통합 응답을 설정하려면 create-integration-response 명령을 직접적으로 호출합니다. 다음 CLI 명령은 $default 통합 응답을 생성하는 예를 보여줍니다.

aws apigatewayv2 create-integration-response \ --api-id vaz7da96z6 \ --integration-id a1b2c3 \ --integration-response-key '$default'