本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 API Gateway 中設定 WebSocket API 整合回應
下一節提供有關 WebSocket API 整合回應的簡短概觀,以及如何設定 WebSocket API 整合回應。
整合回應概觀
API Gateway 的整合回應是從後端服務建模並操控回應的方式。REST API 與 WebSocket API 整合回應的設定方式有些許差異,但概念上的行為相同。
WebSocket 路由可設定為雙向或單向通訊。
-
路由設定為雙向通訊時,整合回應可讓您設定回傳訊息承載的轉換,類似 REST API 的整合回應。
-
若路由設定為單向通訊,則不論整合回應的設定為何,WebSocket 管道在訊息處理後都不會回傳回應。
API Gateway 不會將後端回應傳遞至路由回應,除非您有設定路由回應。若要了解設定路由回應,請參閱 在 API Gateway 中設定 WebSocket API 的路由回應。
雙向通訊的整合回應
整合可分為代理整合和非代理整合。
重要
以代理整合而言,API Gateway 會自動將後端輸出以完整的承載傳遞至發起人。此時沒有整合回應。
以非代理整合而言,您必須設定至少一個整合回應:
-
在沒有明確選擇時,其中一個整合回應最好設定為全部截獲。將整合回應金鑰設定為
$default
就是此預設案例的代表。 -
在其他情況下,整合回應金鑰會以常規表達式運作,應遵循
"/expression/"
的格式。
以非代理 HTTP 整合而言:
-
API Gateway 將嘗試比對後端回應的 HTTP 狀態碼。整合回應金鑰此時會以常規表達式運作,若找不到配對項目,將選擇
$default
做為整合回應。 -
範本選擇表達式運作方式完全相同,如上所述。例如:
-
/2\d\d/
:接收並轉換成功的回應 -
/4\d\d/
:接收並轉換不正確的請求錯誤 -
$default
:接收並轉換所有意外回應
-
如需範本選擇表達式的更多資訊,請參閱 範本選擇表達式。
使用 API Gateway 主控台設定整合回應
使用 API Gateway 主控台設定 WebSocket API 的路由整合回應:
-
在以下網址登入 API Gateway 主控台:https://console.aws.amazon.com/apigateway
。 -
選擇您的 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
下列 create-integration-response 命令會建立$default
整合回應:
aws apigatewayv2 create-integration-response \ --api-id vaz7da96z6 \ --integration-id a1b2c3 \ --integration-response-key '$default'