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

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

数据来源

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

GraphQL schema integrating multiple Amazon Web Services 服务 for a single endpoint API architecture.

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

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

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

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

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

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

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

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

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

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

Amazon Lambda “Amazon Lambda 是一项计算服务,可让您在不预配置或管理服务器的情况下运行代码。

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

  • Pay-as-you-use 模型:Lambda 仅在您使用其资源时向您收费。它们还允许您根据应用程序需求扩展使用的资源量。

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

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

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

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

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

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

Amazon S OpenSearch ervic e 会为您的 OpenSearch 集群配置所有资源并启动它。它还可以自动检测和替换出现故障的 OpenSearch 服务节点,从而减少与自我管理基础架构相关的开销。您只需调用一次 API 或在控制台中单击几下鼠标按钮,即可扩展集群。”

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

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

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

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

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

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

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

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

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

  • 管道:使用 EventBridge 管道,您可以将事件总线替换为管道,该管道包含其他过滤事件模式,并在将事件发送到目标之前通过数据转换进行扩展。

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

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

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

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

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

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

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

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

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

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

提示

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