跳至主要内容

Amazon AppSync

Amazon AppSync 常见问题

Amazon AppSync 常见问题

全部打开

Amazon AppSync 是一项新服务,可让开发人员跨设备和用户实时管理和同步移动应用程序数据,同时允许在移动设备处于离线状态时访问和更改数据。

该服务还允许开发人员通过使用一种名为 GraphQL 的查询语言,选择在发生更改时自动将哪些数据同步到每个用户的设备,从而最大限度地降低存储和带宽需求,优化用户体验。

这些功能可帮助开发人员在几分钟内构建跨浏览器、移动应用程序、Alexa 技能和 IoT 设备的实时协作体验,并且这些体验不受断网影响。

Amazon AppSync 可用于构建移动应用程序,使其能够跨设备同步用户和应用程序数据、在断开连接后保持继续运行,并提供实时协作体验。这类应用程序在各个行业广泛使用。例如:

  • 含实时记分板的游戏应用程序
  • 新闻源和财务数据
  • 客户服务控制面板
  • 支持离线使用的共享钱包、旅行或行程跟踪
  • 支持内容源和搜索/发现/消息收发功能的社交媒体
  • 支持点赞、消息收发和“地理/附近感知”功能的约会应用程序
  • 支持离线查询和 CRUD 操作的现场服务应用程序
  • 文档协作
  • 三维协作(例如共享白板)
  • 支持多角色(如外科手术医生和旁观人员、老师和学生)的 AR/VR
  • 支持离线工作并保持同步最新状态的多设备(如 Alexa、移动设备、Web 设备、IoT 设备)和多模式应用程序(如任务列表)
  • 支持在线指示和聊天记录的聊天应用程序

Amazon AppSync 开发工具包支持 iOS、Android 和 JavaScript。JavaScript 支持跨 Web 框架(例如 React 和 Angular)及技术(例如 React Native 和 Ionic)。您还可以使用开源客户端连接到 AppSync GraphQL 终端节点以使用其他平台(例如通用 HTTP 库或简单 CURL 命令)。

GraphQL 是一种数据语言,使客户端应用程序能够从服务器获取、更改和订阅数据。在 GraphQL 查询中,客户端将指定服务器返回数据时如何对数据进行结构化处理。这样,客户端便可以按所需的格式仅查询所需的数据。

GraphQL 架构是对客户端应用程序赖以运行的数据功能的定义。例如,schema 可以定义哪些查询可用,或应用程序如何在无需了解底层数据源的情况下订阅数据。架构由应用程序数据模型可以利用的类型系统定义。

不用。Amazon AppSync 可以使用简单的 UI 构建器自动设置整个 API、架构并连接数据源,让您可在几秒内在数据模型内键入内容。然后,您可以立即开始在客户端应用程序中使用终端节点。该控制台还为功能齐全的应用程序提供了许多示例 schema 和数据来源。

可以。借助 Amazon AppSync,您可以使用采用 GraphQL 架构的 Amazon DynamoDB、Amazon Lambda 和 Amazon Elasticsearch Service 中的现有表、函数和域。 Amazon AppSync 允许您使用现有的亚马逊云科技资源创建数据来源,并使用映射模板配置交互。

GraphQL 请求作为“解析程序”执行,并且需要转换为适用于 Amazon AppSync 集成的不同亚马逊云科技服务的相应消息格式。例如,针对字段的 GraphQL 查询需要分别转换为适用于 Amazon DynamoDB、Amazon Lambda 和 Amazon Elasticsearch Service 的独有格式。为此,Amazon AppSync 提供了映射模板,这些模板使用 Apache Velocity 模板语言(VTL)编写,让您可以提供自定义逻辑来满足自身需求。Amazon AppSync 还提供了适用于不同的服务和实用程序功能额内置模板,以增强可用性。

应用程序数据静态存储在您的亚马逊云科技账户中,而非 Amazon AppSync 服务中。您可以通过使用 Amazon AppSync 的安全控件来保护应用程序对此数据的访问,这些安全控件包括 Amazon Identity and Access Management(IAM)以及 Amazon Cognito 用户池。此外,通过传递经过身份验证的请求的用户上下文,您还可以使用 Amazon AppSync 中的映射模板对资源执行精细访问控制逻辑。

是的。Amazon AppSync 支持针对任何数据源的订阅,因此,当数据发生变化时,AppSync 会使用基于 WebSocket 的 MQTT 或纯 WebSocket 立即将变化结果传递给订阅事件流的客户端。

使用 GraphQL 时,Amazon AppSync 的可用数据来源让您可以充分利用 Amazon DynamoDB、Amazon Elasticsearch Service 和 Amazon Lambda 提供的功能。索引和条件检查等功能以及映射模板可从 DynamoDB 返回全面的结果。您的应用程序可以使用模糊搜索、地理位置搜索等使用案例,以及 Amazon Elasticsearch Service 提供的更多使用案例。最后,Lambda 可用于串行请求或批处理请求,以从其他来源(如 Amazon Aurora)返回数据。

目前已有许多区域支持 Amazon AppSync。有关更多详细信息,请参阅亚马逊云科技区域表

Amazon AppSync 可以从现有 DynamoDB 表(包括对表的主要架构和索引的推断)自动生成 GraphQL 架构。导入完成后,无需编码即可使用 GraphQL 进行查询、监控数据变化和订阅推送。AppSync 还会将非主要属性从 GraphQL 类型“自动映射”到 DynamoDB 属性。

客户可以手动或使用控制台创建 GraphQL 架构,Amazon AppSync 可以自动为您预置 Amazon DynamoDB 表和相应的索引。此外,AppSync 会将数据来源连接到“GraphQL 解析程序”,使您可以仅关注应用程序代码和数据结构。

您可以使用任何 HTTP 或 GraphQL 客户端连接到 AppSync 上的 GraphQL API。我们建议您使用经过优化的 Amplify 客户端来连接到 AppSync 后端。根据您的应用程序使用案例,可选择以下选项:

  • 对于 DynamoDB 数据源,请使用 Amplify 客户端中的 DataStore 类别。它提供了最佳的开发人员体验以及内置的冲突检测和解决方案。
  • 如需在无离线使用需求的情况下使用非 DynamoDB 数据来源,请使用 Amplify 客户端中的 API(GraphQL)类别。
  • 如需在有离线使用需求的情况下使用非 DynamoDB 数据来源,请使用 AppSync 开发工具包。