API Gateway 中的 WebSocket API 概觀 - Amazon API Gateway

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

API Gateway 中的 WebSocket API 概觀

在 API Gateway 中,您可以建立 WebSocket API 做為 AWS 服務 (例如 Lambda 或 DynamoDB) 或 HTTP 端點的狀態前端。WebSocket API 會根據自用戶端應用程式接收的訊息內容來後端。

WebSocket API 與 REST API 不同 (其會接收並回應請求),會支援用戶端應用程式和後端之間的雙向通訊。該後端可以將回呼訊息傳送到連線用戶端。

在 WebSocket API 中,是根據您設定的路由將傳入 JSON 訊息導向到後端整合。(會將非 JSON 訊息導向您設定的 $default 路由。)

路由包含的路由金鑰,是您可以在路由選擇表達式經評估後即預期的值。routeSelectionExpression 是在 API 層級定義的屬性。它指定的 JSON 屬性預計會出現在訊息承載。如需路由選擇表達式的詳細資訊,請參閱路由選擇表達式

例如,如果您的 JSON 訊息包含 action 屬性,以及您想要根據此屬性執行不同動作,路由選擇表達式可能會 ${request.body.action}。您的路由表將指定要執行哪一個動作,方法是將 action 屬性值與您在資料表中定義的自訂路由鍵值進行比對。

使用 WebSocket API 的路由

有三種預先定義的路由可供使用:$connect$disconnect$default。此外,您可以建立自訂路由。

  • API Gateway 會在用戶端和 WebSocket API 之間的持續連線進行起始化時呼叫 $connect 路由。

  • 當用戶端或伺服器中斷與 API 的連線時,API Gateway 會呼叫 $disconnect 路由。

  • 若發現相符的路由,針對該訊息評估路由選擇運算式後,API Gateway 即會呼叫自訂路由;該比對會判斷要叫用哪些整合。

  • 如果未發現相符路由,或無法針對該訊息來評估路由選擇表達式時,API Gateway 會呼叫 $default 路由。

如需 $connect$disconnect 路由的相關資訊,請參閱管理連線的使用者和用戶端應用程式:$connect 和 $disconnect 路由

如需 $default 路由和自訂路由的相關資訊,請參閱在 API Gateway 中調用與 $default Route 和自訂路由的後端整合

將資料傳送至連線的用戶端應用程式

後端服務可將資料傳送到連線的用戶端應用程式。您可以藉由執行以下動作來傳送電子郵件:

  • 使用整合以傳送回應,該回應會由您已定義的路由傳回到用戶端。

  • 您可以使用 @connections API 來傳送 POST 請求。如需詳細資訊,請參閱在後端服務使用 @connections 命令