本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
WebSocket 選取表示式
APIGateway 使用選擇表達式作為評估請求和響應上下文並生成密鑰的一種方式。然後,密鑰用於從一組可能的值中進行選擇,通常由您(API開發人員)提供。所支援的實際變數組將取決於特定表達式,各表達式詳細說明如下。
所有表達式的語言都遵循同一組規則:
-
變數字首會加上
"$"
。 -
大括號可用來明確定義變數邊界,例如
"${request.body.version}-beta"
。 -
支援多個變數,但僅會評估一次 (無遞迴評估)。
-
貨幣符號 (
$
) 可用"\"
逸出。在定義映射至預留$default
金鑰 (如"\$default"
) 的表達式時,這條規則十分實用。 -
有時需要模式格式,此時,表達式前後應以斜線 (
"/"
) 包裝,例如應符合"/2\d\d/"
狀態碼的2
。XX
路由回應選擇表達式
路由回應係用來將後端到用戶端的回應建模。對於 WebSocket APIs,路由響應是可選的。定義時,它會向 API Gateway 發出信號,它應該在收到 WebSocket 消息時向客戶端返回響應。
路由回應選擇表達式的評估將產生路由回應金鑰。最後,此金鑰將用於從RouteResponses
與API. 然而,目前僅支援 $default
金鑰。
API鍵選取表示式
當服務確定只有在客戶端提供有效的API密鑰時才應該繼續給定的請求時,才會評估此表達式。
目前僅支援兩個值:$request.header.x-api-key
及 $context.authorizer.usageIdentifierKey
。
API對映選取表示式
系統會評估此運算式,以決定使用自訂網域發出請求時要選取的API階段。
目前,僅支援的值為 $request.basepath
。
WebSocket選取表示式摘要
下表概述了中選取項表示式的使用案例 WebSocketAPIs:
選擇表達式 | 判斷值為下列的金鑰 | 備註 | 範例使用案例 |
---|---|---|---|
Api.RouteSelectionExpression |
Route.RouteKey |
所支援的 $default 為全部截獲路由。 |
根據用戶端要求的內容路由 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 的金鑰 |
目前不支援。 |