数据源 - Amazon AppSync
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

数据源

在上一节中,我们了解了架构定义数据的形状。不过,我们从未介绍这些数据来自哪里。在实际项目中,您的架构就像一个网关,它处理向服务器发出的所有请求。在发出请求时,架构充当与客户端交互的单个终端节点。架构访问和处理数据,并将其从数据源转发回客户端。请参阅下面的信息图:

Amazon AppSync 和 GraphQL 出色地实施了服务于前端的后端 (BFF) 解决方案。它们协同工作,通过抽象后端来降低大规模系统的复杂性。如果您的服务使用不同的数据源和/或微服务,您实际上可以在单个架构(超图)中定义每个源(子图)的数据形状以抽象掉一些复杂性。这意味着您的 GraphQL API 不限于使用一个数据源。您可以将任意数量的数据源与 GraphQL API 关联,并在代码中指定它们如何与服务进行交互。

正如您在信息图中看到的一样,GraphQL 架构包含客户端请求数据所需的所有信息。这意味着可以在单个请求中处理所有内容,而不是像 REST 那样在多个请求中进行处理。这些请求经过架构,这是服务的唯一终端节点。在处理请求时,解析器(在下一节中介绍)执行其代码以处理来自相关数据源的数据。在返回响应时,将使用架构中的数据填充与数据源关联的子图。

Amazon AppSync 支持很多不同的数据源类型。在下表中,我们将描述每种类型,列出每种类型的一些优点,并提供非常有用的链接以获取额外的背景信息。

数据来源 描述 优势 补充信息
Amazon DynamoDB “Amazon DynamoDB 是一种完全托管的 NoSQL 数据库服务,可以提供快速且可预测的性能以及无缝可扩展性。DynamoDB 可以免除操作和扩展分布式数据库的管理工作负担,因而无需担心硬件预置、设置和预置、复制、软件修补或集群扩展等问题。DynamoDB 还提供静态加密,从而消除了保护敏感数据时涉及的运行负担和复杂性。”

  • 大规模性能:DynamoDB 的设计理念是,在任何规模都能提供一致的性能。可以通过使用分区来实现该目的。DynamoDB 自动将您的表划分为多个分配,这些分配将存储在位于多个节点的多个 SSD 中。这通常会增加网络吞吐量并减少延迟。

  • 大规模容量:DynamoDB 监控您的流量,并允许您在网络长时间处于过载状态时自动扩展吞吐量。

  • 可用性和容错能力:DynamoDB 由多个物理隔离的区域支持,每个区域包含多个物理隔离的可用区。如果服务中断,DynamoDB 将自动切换到备份区域。您也可以手动备份和复制数据以保证数据可用性。

  • 日志记录和监控:DynamoDB 为您的表提供了多种分析工具。您可以监控表的性能,并创建警报以向您通知服务的重大变化。

  • 安全性:DynamoDB 采用严格的协议,以确保您的数据符合组织的安全要求。

  • 与 Amazon AppSync 集成:DynamoDB 与我们的服务无缝集成在一起。您可以创建新的 DynamoDB 表,并自动从中生成架构以简化您的开发过程。我们还提供了一整套操作,以便在解析器中轻松从您的账户中的现有 DynamoDB 表请求数据。

Amazon Lambda “Amazon Lambda 是一种计算服务,可用于运行代码,而无需预置或管理服务器。

Lambda 在可用性高的计算基础设施上运行您的代码,执行计算资源的所有管理工作,其中包括服务器和操作系统维护、容量预置和弹性伸缩和记录。在使用 Lambda 时,您只需在 Lambda 支持的语言运行时环境之一中提供代码。”

  • 按实际使用量付费模式:Lambda 仅在您使用其资源时向您收费。它们还允许您根据应用程序需求扩展使用的资源量。

  • 自动扩展:有时,您的应用程序可能需要在特定进程中使用额外的计算能力。Lambda 允许您自动扩展计算资源以满足您的应用程序需求。

  • 更快的部署时间:您可以通过部署包简化您的开发过程。可以使用包将函数代码上传到 Lambda 服务中。然后,您可以使用它们的运行时环境测试和执行您的函数。

  • 多功能性:Lambda 可用于多种使用案例。您可以将 Lambda 与第三方服务和 Amazon 服务无缝集成在一起。一些示例包括 CI/CD 管道群发邮件服务

  • 与 Amazon AppSync 集成:您可以轻松在解析器中调用 Lambda 函数以处理请求。我们的服务提供简化的请求操作以执行 Lambda 调用。我们允许单个调用和批量调用。

OpenSearch “Amazon OpenSearch Service 是一种托管服务,可以轻松在 Amazon 云中部署、运行和扩展 OpenSearch 集群。Amazon OpenSearch Service 支持 OpenSearch 和旧 Elasticsearch OSS(最高 7.10,该软件的最终开源版本)。创建集群时,您可以选择使用哪种搜索引擎。

OpenSearch 是一个全面开源搜索和分析引擎,用例包括日志分析、实时应用程序监控、点击流分析等。有关更多信息,请参阅 OpenSearch 文档

Amazon OpenSearch Service 可为 OpenSearch 集群预置所有资源,并启动集群。它还自动检测和替换失败的 OpenSearch Service 节点,减少与自管理基础设施相关的开销。您只需调用一次 API 或在控制台中单击几下鼠标按钮,即可扩展集群。”

  • 扩展:您可以通过 OpenSearch Serverless 轻松扩展服务以满足您的服务要求。

  • 数据摄取:您可以使用 OpenSearch 摄取导入、处理和分析数据。有很多数据摄取应用程序,您可以在此处找到这些应用程序。

  • 安全性:OpenSearch 可以管理您的 Amazon 安全配置,包括 IAM、CloudTrail、VPC、身份验证等。

  • 可用性:OpenSearch 还在服务中支持不同的区域和可用区。

  • 与 Amazon AppSync 集成:在 Amazon AppSync 中,可以使用 GraphQL API 在您的账户的现有 OpenSearch Service 域中存储和检索数据。

HTTP 终端节点 您可以将 HTTP 终端节点作为数据源。AmazonAppSync 可以向终端节点发送具有参数和负载等相关信息的请求。将向解析器公开 HTTP 响应,解析器在完成操作后返回最终响应。
  • 对于没有与 Lambda 等服务集成的简单应用程序非常有用。

Amazon EventBridge “EventBridge 是一种无服务器服务,它使用事件将应用程序组件连接在一起,以使您更轻松地构建可扩展的事件驱动应用程序。可以使用该服务将事件从源(本地应用程序、Amazon 服务和第三方软件等)路由到您的组织中的使用者应用程序。EventBridge 提供了一种简单且一致的方式以摄取、筛选、转换和交付事件,因此,您可以快速构建新的应用程序。”

  • 事件驱动的架构:您可以利用事件驱动的架构

  • 计划:您可以使用 EventBridge 调度器通过 cron 表达式自动执行任务和规则,或者设置时间间隔以作为事件模式的替代方案。

  • 管道:通过使用 EventBridge 管道,您可以将事件总线替换为管道,其中包括额外的筛选事件模式,并在将事件发送到目标之前通过数据转换扩充数据。

  • 与 Amazon AppSync 集成:Amazon AppSync 允许您使用解析器将事件发送到事件总线。

关系数据库 “Amazon Relational Database Service (Amazon RDS) 是一种 Web 服务,可以在 Amazon 云中更轻松地设置、运行和扩展关系数据库。它为符合行业标准的关系数据库提供经济高效且可调整大小的容量,并管理常见的数据库管理任务。”

  • 管理变得简单:RDS 定期对其资源进行维护。维护通常涉及对数据库实例的底层硬件、底层操作系统 (OS) 或数据库引擎版本进行更新。正常情况下,您可以决定何时执行更新(安全补丁除外)。

  • 建议:RDS 的建议功能提供自动建议以修复实例中的潜在问题。

  • 可用性:在全球的不同物理区域中提供了 RDS。您可以轻松将数据库需求分配给不同的节点,以更好地为您的客户提供服务。

  • 自定义:RDS 专为满足大型企业的要求而量身定制。RDS 提供了不同的计算、快速部署、扩展性和存储选项。

  • 安全性:RDS 与多种工具和服务集成在一起,以保持用户、数据库和网络级别的数据库安全性。

  • 与 Amazon AppSync 集成:如果您正在寻找成熟的后端解决方案,Amazon AppSync 是您的理想之选,它允许您将实例作为数据源以发送、处理、存储和返回数据。

None 数据源 如果不打算使用数据源服务,您可以将其设置为 none。虽然 none 数据源仍明确归类为数据源,但并不是存储介质。尽管如此,它在某些情况下对于数据处理和传递仍然非常有用。
  • 对于数据转换等可能非常有用

  • 在本地解决问题时非常有用

提示

有关数据源如何与 Amazon AppSync 交互的更多信息,请参阅附加数据源