Amazon AppSync 常见问题

问:什么是 Amazon AppSync?

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

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

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

问:今天发布的这些功能可用来构建哪些类型的应用程序? 

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

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

问:Amazon AppSync 支持哪些应用程序开发者语言?

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

问:什么是 GraphQL? 

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

问:什么是 GraphQL 架构? 

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

问:开始使用 AppSync 前需要了解 GraphQL 吗? 

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

问:Amazon AppSync 可以与现有的 亚马逊云科技资源一起使用吗?

可以。借助 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 AppSync 结合使用,来保护应用程序对这些数据的访问,安全控件包括 Amazon Identity and Access Management (IAM) 以及 Amazon Cognito 用户池。此外,通过传递经过身份验证的请求的用户上下文,您还可以使用 Amazon AppSync 中的映射模板对资源执行精细访问控制逻辑。

问:Amazon AppSync 支持实时数据吗?

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

问:如何使用 Amazon AppSync 进行复杂查询? 

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

问:哪些 亚马逊云科技区域现已支持 Amazon AppSync?

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

问:AppSync 支持导入现有的 Amazon DynamoDB 表吗? 

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

问:Amazon AppSync 可用于创建数据库吗? 

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

问:若要将应用程序连接到 AppSync API,可以使用哪些客户端?

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

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

开始使用亚马逊云科技免费构建

开始使用亚马逊云科技免费构建

关闭
热线

热线

1010 0766
由光环新网运营的
北京区域
1010 0966
由西云数据运营的
宁夏区域