在API閘道中設定 WebSocket API整合回應 - Amazon API 网关

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在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閘道主控台設定路由整合回應:

  1. https://console.aws.amazon.com/ap igateway 登入API閘道主控台。

  2. 選擇您的路線 WebSocket API並選擇您的路線。

  3. 選擇整合請求索引標籤,然後在整合回應設定區段中,選擇建立整合回應

  4. 回應金鑰中輸入值,此值將可在評估回應選擇表達式之後,於傳出訊息的回應金鑰中找到。例如,您可以輸入 /4\d\d/ 來接收和轉換錯誤的請求錯誤,或者輸入 $default 來接收並轉換符合範本選擇表達式的所有回應。

  5. 範本選擇表達式中,輸入選擇表達式以評估傳出訊息。

  6. 選擇建立回應

  7. 您也可以定義對應範本,以設定傳回訊息承載的轉換。選擇建立範本

  8. 輸入金鑰名稱。如果您要選擇預設範本選擇表達式,請輸入 \$default

  9. 在程式碼編輯器中,針對回應範本輸入您的映射範本。

  10. 選擇建立範本

  11. 選擇部署API以部署API.

使用下面的 wscat 命令連接到您的. API 如需有關 wscat 的詳細資訊,請參閱 用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'