数据来源 - AWS AppSync

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

数据来源

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

Diagram showing GraphQL schema, resolvers, and data sources with API consumers, Amazon services. (AI generated)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 建议:RDS'推荐功能可自动提供建议,用于修复您的实例中的潜在问题。

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

  • 定制:专RDS为满足大型公司的要求而量身定制。RDS为计算、快速部署、可扩展性和存储提供了各种选项。

  • 安全:RDS与多种工具和服务集成,用于维护用户、数据库和网络级别的数据库安全。

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

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

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

提示

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