主要功能

GraphQL

简化数据访问和查询

AWS AppSync 使用 GraphQL 这一数据语言,让客户端应用程序可以从服务器提取、更改和订阅数据。在 GraphQL 查询中,客户端可以指定数据在由服务器返回时所采用的结构。这使得客户端可以只查询自己需要并且采用所需格式的数据。此外,GraphQL 还包含一项名为“introspection”的功能,让项目中的新开发人员在无需了解后端的情况下就能找到可用数据。

实时数据访问和更新

在客户端和设备间即时更新

借助 AWS AppSync,您可以使用 GraphQL Subscriptions 来指定应以实时方式提供数据的哪些部分。GraphQL Subscriptions 是应用程序代码中的简单语句,可以告诉服务应该实时更新哪些数据。

离线数据同步

即使在离线状态下也可以与数据互动并更新数据

AWS AppSync 支持离线编程模式,在这种模式下,用户不仅可以离线使用应用程序数据,还可以添加和更新数据。当设备离线时,应用程序 UI 会自动利用离线数据进行更新。借助 AppSync,您可以定义如何离线缓存数据,并定义 AppSync 在不同的网络状况下应该如何管理缓存更新。

在应用程序内查询、筛选和搜索数据

预配置对 AWS 数据源的访问

AWS AppSync 让客户端应用程序能够使用 GraphQL 来指定数据需求,这样就能只提取所需数据,并且服务器和客户端都可以进行筛选。AWS AppSync 支持 AWS Lambda、Amazon DynamoDB 和 Amazon Elasticsearch,因此 GraphQL 操作可以是简单查找、复杂查询和映射、全文搜索、模糊/关键字搜索或地理位置查找。

企业安全性和精细访问控制

控制您的数据

AWS AppSync 可以根据应用程序的需求来实现多种级别的数据访问和授权。简单访问可以由密钥提供保护,而更严格的权限可以通过 AWS Identity and Access Management 使用角色来控制。此外,AWS AppSync 还集成了 Amazon Cognito 用户池 (以便使用电子邮件和密码功能),集成了多种社交服务提供商 (Facebook、Google+ 和 Login with Amazon),并支持使用 SAML 的企业联合身份。客户可以使用组功能来处理用户和角色的逻辑结构,还可以针对应用程序访问使用 OAuth 功能。

常见问题

  • 问:什么是 AWS AppSync?

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

    此外,该服务还让开发人员可以使用一种名为 GraphQL 的查询语言来优化用户体验,具体方法是选择在进行更改时要自动同步到每位用户的设备的数据,并尽可能减少存储和带宽需求。

    利用这些功能,开发人员可以在几分钟内构建跨浏览器、移动应用程序、Alexa 技能和 IoT 设备的实时协作式体验,并且这些体验在网络连接断开时仍然可以实现。

  • 问:我可以使用现在发布的功能构建哪些类型的应用程序?

    AWS AppSync 可以用于构建能够在设备之间同步用户和应用程序数据、在断开连接后继续运行并且提供实时协作式体验的移动应用程序。这些应用程序可以用于各种领域。示例包括:

    • 带有实时记分牌的游戏应用程序
    • 新闻推送和财务数据
    • 客户服务控制面板
    • 共享钱包、出行或可以离线使用的行程跟踪
    • 带有内容推送和搜索/发现/消息收发功能的社交媒体
    • 带有点赞、消息收发和地理位置/接近感知功能的约会应用程序
    • 需要在断开连接时仍然支持查询和 CRUD 操作的现场服务应用程序
    • 文档协作
    • 3D 协作 (例如共享白板)
    • 包含多个参与者的 AR/VR (一起参加手术的医生、观摩者、教师和学生)
    • 需要离线工作并体现相同的最终一致状态的多设备 (例如 Alexa、移动设备、Web、IoT) 和多模式应用程序 (例如任务列表)
    • 包含状态指示和对话历史记录功能的聊天应用程序
  • 问:AWS AppSync 支持哪些应用程序开发语言?

    AWS AppSync 开发工具包支持 iOS、Android 和 JavaScript。JavaScript 支持涵盖了 React 和 Angular 等 Web 框架,以及 React Native 和 Ionic 等技术。您还可以使用开源客户端连接到 AppSync GraphQL 终端节点以便使用通用、HTTP 库等其他平台,甚至可以使用简单的 CURL 命令。

  • 问:什么是 GraphQL?

    GraphQL 是一种数据语言,让客户端应用程序可以从服务器提取、更改和订阅数据。在 GraphQL 查询中,客户端可以指定数据在由服务器返回时所采用的结构。这使得客户端可以只查询自己需要并且采用所需格式的数据。

  • 问:什么是 GraphQL 架构?

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

  • 问:AWS AppSync 可以为我创建数据库吗?

    客户可以手动或使用控制台来创建 GraphQL 架构,而 AWS AppSync 可以自动为您预置 Amazon DynamoDB 表格和适当的索引。此外,该服务还会将数据源连接到“GraphQL 解析程序”,让您只需关注自己的应用程序代码和数据结构即可。

  • 问:我可以将 AWS AppSync 用于现有的 AWS 资源吗?

    可以。借助 AWS AppSync,您可以将 Amazon DynamoDB、AWS Lambda 和 Amazon Elasticsearch Service 中的现有表、函数和域应用于 GraphQL 架构。AWS AppSync 让您可以使用现有的 AWS 资源来创建数据源,并使用映射模板来配置交互关系。

  • 问:什么是映射模板?

    GraphQL 请求将作为“解析程序”执行,并且需要针对 AWS AppSync 集成的不同 AWS 产品转换为适当的消息格式。例如,对一个字段的 GraphQL 查询,需要针对 Amazon DynamoDB、AWS Lambda 和 Amazon Elasticsearch Service 分别转换为一种唯一格式。AWS AppSync 为此类转换提供了映射模板,这些模板采用 Apache Velocity 模板语言 (VTL) 编写,让您可以提供自定义逻辑来满足自己的需求。此外,AWS AppSync 还针对不同的服务和实用工具功能提供了内置模板,以便提高可用性。

  • 问:AWS AppSync 怎样保护数据?

    应用程序数据以静态形式存储在您的 AWS 账户中,而不存储在 AWS AppSync 服务中。您可以将 AWS Identity and Access Management (IAM) 和 Amazon Cognito 用户池等安全控制措施与 AWS AppSync 结合使用,从而保护应用程序对这些数据的访问。此外,对于经过身份验证的请求,系统可以传递用户上下文,因此可以使用 AWS AppSync 中的映射模板对资源应用精细访问控制逻辑。

  • 问:我可以使用 AWS AppSync 实时提供数据吗?

    可以。AWS AppSync 支持订阅任何数据源,因此在发生突变时,该服务可以通过 Websockets 使用 MQTT 立即将结果传递给订阅事件流的客户端。

  • 问:如何使用 AWS AppSync 执行复杂查询?

    AWS AppSync 支持的数据源让您可以在使用 GraphQL 时充分利用 Amazon DynamoDB、Amazon Elasticsearch Service 和 AWS Lambda 提供的功能。利用索引和条件检查等功能以及各种映射模板,您可以让 DynamoDB 返回全面的结果。您的应用程序可以使用 Amazon Elasticsearch Service 提供的模糊搜索、地理位置搜索等功能。您还可以使用 Lambda 来处理序列请求或批处理请求,从 Amazon Aurora 等其他来源返回数据。

  • 问:哪些 AWS 区域支持 AWS AppSync?

    AWS AppSync 目前已在美国东部(弗吉尼亚北部)、美国西部(俄勒冈)、美国东部(俄亥俄)、欧洲(爱尔兰)、亚太地区(东京)和亚太地区(悉尼)等区域提供。

  • 问:我能够导入现有的 Amazon DynamoDB 表?

    AWS AppSync 可从现有的 Amazon DynamoDB 表自动生成 GraphQL 架构,包括对表的键架构和索引的推断。导入完毕后,可以使用零编码开发 GraphQL 查询、突变和订阅功能。AppSync 还会将非键属性从您的 GraphQL 类型“自动映射”到 DynamoDB 属性。

了解有关 AWS AppSync 定价的详细信息

访问定价页面
准备好开始使用了吗?
打开 AWS AppSync 控制台
还有更多问题?
联系我们