

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

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

AWS AppSync Events 和 Amazon API Gateway 都可为您的微服务提供托管的 WebSocket 体验。

[AWS AppSync Events](https://docs.aws.amazon.com/appsync/latest/eventapi/event-api-welcome.html) 通过使用 WebSocket 提供简化的实时消息传送体验。AWS AppSyncEvents 支持单播和组播消息传送，支持将通道灵活分组到命名空间，并支持通配符。通过使用 AWS AppSync Events，微服务之间可以通过多种方式通信。例如，接收实时数据的服务可以将数据转换并发布到相应的通道，订阅用户将在该通道上实时接收数据。

[API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) 还支持 WebSocket API。您可以定义与 AWS 服务（例如 AWS Lambda 和 Amazon DynamoDB）的集成，并配置映射到这些集成的路由选择表达式。API Gateway 提供专用路由，可用于授权和管理 WebSocket 连接。您可以视需要将 WebSocket 连接信息存储在 DynamoDB 等数据存储库中。利用此信息，可通过 REST API 基于特定连接 ID，向特定 WebSocket 连接发布消息。

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

请在下列情况下使用 AWS AppSync Events：
+ 您有多个按命名空间分组的消息传送通道，并且想要通过使用通配符来发布和订阅通道组。
+ 您的通信主要发生在不同系统之间，而非 AWS 服务之间。

请在下列情况下使用 API Gateway WebSocket API：
+ 您想要客户端与 AWS 服务集成建立实时持久连接。
+ 您想要自行管理 WebSocket 连接。例如，您可能想要允许其他系统在查询连接 ID 后向特定客户端发送消息。
+ 您想要使用 API Gateway 功能，例如分阶段部署或代理集成，或者想要配置自己的子协议。