本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在API閘道中設定 WebSocket API整合回應
下節提供整合回應的簡要概觀,以 WebSocket API及如何設定 WebSocket API.
整合回應概觀
API閘道的整合回應是建模和操作從後端服務回應的一種方式。RESTAPI與 WebSocket API集成響應的設置有一些差異,但在概念上,行為是相同的。
WebSocket 路由可以設定為雙向或單向通訊。
-
當路由設定為雙向通訊時,整合回應可讓您在傳回的訊息承載上設定轉換,類似於的整合RESTAPIs回應。
-
如果將路由設定為單向通訊,則無論任何整合回應組態為何,在處理訊息之後,都不會透過通 WebSocket 道傳回任何回應。
API除非您設置了路由響應,否則 Gateway 不會將後端響應傳遞給路由響應。若要了解設定路由回應,請參閱 WebSocket APIs在API閘道中設定路由回應。
雙向通訊的整合回應
整合可分為代理整合和非代理整合。
重要
對於代理集成,APIGateway 會自動將後端輸出作為完整有效負載傳遞給呼叫者。此時沒有整合回應。
以非代理整合而言,您必須設定至少一個整合回應:
-
在沒有明確選擇時,其中一個整合回應最好設定為全部截獲。將整合回應金鑰設定為
$default
就是此預設案例的代表。 -
在其他情況下,整合回應金鑰會以常規表達式運作,應遵循
"/expression/"
的格式。
對於非代理HTTP整合:
-
API閘道會嘗試比對後端回應的HTTP狀態碼。整合回應金鑰此時會以常規表達式運作,若找不到配對項目,將選擇
$default
做為整合回應。 -
範本選擇表達式運作方式完全相同,如上所述。例如:
-
/2\d\d/
:接收並轉換成功的回應 -
/4\d\d/
:接收並轉換不正確的請求錯誤 -
$default
:接收並轉換所有意外回應
-
如需範本選擇表達式的更多資訊,請參閱 範本選擇表達式。
使用API閘道主控台設定整合回應
若要 WebSocket API使用API閘道主控台設定路由整合回應:
-
在 https://console.aws.amazon.com/ap
igateway 登入API閘道主控台。 -
選擇您的路線 WebSocket API並選擇您的路線。
-
選擇整合請求索引標籤,然後在整合回應設定區段中,選擇建立整合回應。
-
在回應金鑰中輸入值,此值將可在評估回應選擇表達式之後,於傳出訊息的回應金鑰中找到。例如,您可以輸入
/4\d\d/
來接收和轉換錯誤的請求錯誤,或者輸入$default
來接收並轉換符合範本選擇表達式的所有回應。 -
在範本選擇表達式中,輸入選擇表達式以評估傳出訊息。
-
選擇建立回應。
您也可以定義對應範本,以設定傳回訊息承載的轉換。選擇建立範本。
輸入金鑰名稱。如果您要選擇預設範本選擇表達式,請輸入
\$default
。-
在程式碼編輯器中,針對回應範本輸入您的映射範本。
-
選擇建立範本。
-
選擇部署API以部署API.
使用下面的 wscatwscat
的詳細資訊,請參閱 用wscat於連接到 WebSocket API 並向其發送消息。
wscat -c wss://
api-id
.execute-api.us-east-2
.amazonaws.com/test
當您呼叫路由時,傳回的訊息承載應傳回。
使用設定整合回應 AWS CLI
若要 WebSocket API使用 AWS CLI 呼叫create-integration-response指令來設定整合回應。下列CLI指令顯示建立$default
整合回應的範例:
aws apigatewayv2 create-integration-response \ --api-id vaz7da96z6 \ --integration-id a1b2c3 \ --integration-response-key '$default'