WebSocket 선택 표현식
API Gateway는 요청 및 응답 컨텍스트를 평가하고 키를 생성하는 방법의 하나로 선택 표현식을 사용합니다. 이 경우 키는 일반적으로 API 개발자가 제공하는 가능한 값 집합 중에서 선택하는 데 사용됩니다. 지원되는 변수 집합은 특정 표현식에 따라 달라집니다. 각 표현식에 대해서는 아래에서 자세히 설명합니다.
모든 표현식에 대해 언어는 동일한 규칙 세트를 따릅니다.
-
변수에는
"$"
라는 접두사가 붙습니다. -
중괄호를 사용하여 변수 경계를 명시적으로 정의할 수 있습니다(예:
"${request.body.version}-beta"
). -
여러 변수가 지원되지만 평가는 한 번만 발생합니다(recursive 평가 없음).
-
달러 문자(
$
)는"\"
로 이스케이프될 수 있습니다. 예약된$default
키에 매핑되는 표현식을 정의할 때 가장 유용합니다(예:"\$default"
). -
경우에 따라 패턴 형식이 필요합니다. 이 경우 표현식은 슬래시(
"/"
)로 래핑해야 합니다(예:"/2\d\d/"
상태 코드와 일치하도록2
).XX
라우팅 응답 선택 표현식
라우팅 응답은 백엔드에서 클라이언트로 응답을 모델링하는 데 사용됩니다. WebSocket API에서 라우팅 응답은 선택 사항입니다. 정의되면, WebSocket 메시지 수신 시 클라이언트에 응답을 반환해야 한다는 신호를 API Gateway에 보냅니다.
라우팅 응답 선택 표현식의 평가는 라우팅 응답 키를 생성합니다. 결국 이 키는 API와 연결된 RouteResponses
중에서 하나를 선택하는 데 사용됩니다. 그러나 현재는 $default
키만 지원됩니다.
API 키 선택 표현식
클라이언트가 유효한 API 키를 제공하는 경우에만 요청이 진행되어야 한다고 서비스가 판단할 때 이 표현식이 평가됩니다.
현재 지원되는 두 가지 값은 $request.header.x-api-key
및 $context.authorizer.usageIdentifierKey
입니다.
API 매핑 선택 표현식
이 표현식은 사용자 지정 도메인을 사용하여 요청이 이루어질 때 선택되는 API 스테이지를 결정하기 위해 평가됩니다.
현재 지원되는 값은 $request.basepath
입니다.
WebSocket 선택 표현식 요약
다음 표는 WebSocket API의 선택 표현식 사용 사례를 요약한 것입니다.
선택 표현식 | 다음에 대한 키 평가 | 참고 | 사용 사례 |
---|---|---|---|
Api.RouteSelectionExpression |
Route.RouteKey |
$default 는 catch-all 라우팅으로 지원됩니다. |
클라이언트 요청 컨텍스트를 기반으로 WebSocket 메시지를 라우팅합니다. |
Route.ModelSelectionExpression |
Route.RequestModels 에 대한 키 |
선택. 비 프록시 통합에 제공되는 경우 모델 확인이 이루어집니다.
|
동일한 라우팅 내에서 요청 확인을 동적으로 수행합니다. |
Integration.TemplateSelectionExpression |
Integration.RequestTemplates 에 대한 키 |
선택. 수신 페이로드를 조작하기 위해 비 프록시 통합에 제공될 수 있습니다.
|
요청의 동적 속성을 기반으로 호출자의 요청을 조작합니다. |
Integration.IntegrationResponseSelectionExpression |
IntegrationResponse.IntegrationResponseKey |
선택. 비 프록시 통합을 위해 제공될 수 있습니다. 오류 메시지(Lambda의) 또는 상태 코드(HTTP 통합의)에 대한 패턴 일치로 작동합니다.
|
백엔드의 응답을 조작합니다. 백엔드의 동적 응답에 따라 수행할 작업을 선택하십시오(예: 특정 오류를 명확히 처리). |
IntegrationResponse.TemplateSelectionExpression |
IntegrationResponse.ResponseTemplates 에 대한 키 |
선택. 비 프록시 통합을 위해 제공될 수 있습니다. $default가 지원됩니다. |
경우에 따라 응답의 동적 속성은 동일한 라우팅 및 연결된 통합 내에서 다양한 변환을 지시할 수 있습니다.
|
Route.RouteResponseSelectionExpression |
RouteResponse.RouteResponseKey |
WebSocket 라우팅에 대한 양방향 통신을 시작하기 위해 제공되어야 합니다. 현재 이 값은 |
|
RouteResponse.ModelSelectionExpression |
RouteResponse.RequestModels 에 대한 키 |
현재 지원되지 않습니다. |