

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

# AWS AppSync 事件和 API Gateway
<a name="appsync-api-gateway"></a>

AWS AppSync 事件和 Amazon API Gateway 都為您的微服務提供受管 WebSocket 體驗。

[AWS AppSync 事件](https://docs.aws.amazon.com/appsync/latest/eventapi/event-api-welcome.html)透過使用 WebSocket 提供簡化的即時傳訊體驗。 AWS AppSync Events 支援單點傳送和多點傳送傳訊，以及將頻道靈活分組到命名空間，並支援萬用字元。Microservices 可以使用 AWS AppSync Events 以各種方式互相通訊。例如，接收即時資料的服務可以轉換資料並將其發佈到適當的頻道，訂閱者將在此頻道中即時接收資料。

[API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) 也支援 WebSocket APIs。您可以定義與 的整合 AWS 服務，例如 AWS Lambda 和 Amazon DynamoDB，並設定映射到這些整合的路由選擇表達式。API Gateway 具有特殊路由，可用來授權和管理 WebSocket 連線。根據您的需求，您可以將 WebSocket 連線資訊存放在 DynamoDB 等資料存放區。使用此資訊，訊息可以透過 REST API 發佈至特定的 WebSocket 連線，並指定特定的連線 ID。

## 指引
<a name="appsync-api-gateway-guidance"></a>

在以下情況下使用 AWS AppSync 事件：
+ 您有多個訊息管道，這些管道會分組為命名空間，並想要使用萬用字元來發佈和訂閱頻道群組。
+ 您的通訊主要在不同系統之間，而不是在系統之間 AWS 服務。

在下列情況下使用 API Gateway WebSocket APIs：
+ 您想要讓用戶端擁有與 AWS 服務 整合的即時持久性連線。
+ 您想要自行管理 WebSocket 連線。例如，您可能想要允許其他系統在查詢連線 ID 之後，將訊息傳送到特定用戶端。
+ 您想要使用 API Gateway 功能，例如階段部署或代理整合，或您想要設定自己的子通訊協定。