View a markdown version of this page

在直接数据来源访问和通过 Lambda 数据来源代理之间进行选择 - AWS AppSync GraphQL

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

在直接数据来源访问和通过 Lambda 数据来源代理之间进行选择

使用 AWS AppSync 和APPSYNC_JS运行时,您可以编写自己的代码,通过使用 AWS AppSync 函数访问数据源来实现自定义业务逻辑。这使您可以轻松地直接与 Amazon DynamoDB、Aurora 无服务器、 OpenSearch 服务、HTTP API 和其他 AWS 服务等数据源进行交互,而无需部署额外的计算服务或基础设施。 AWS AppSync 还可以通过配置 Lambda 数据源轻松与 AWS Lambda 函数进行交互。Lambda 数据源允许您使用全套功能运行复杂 AWS Lambda的业务逻辑来解决 GraphQL 请求。在大多数情况下,直接连接到其目标数据源的 AWS AppSync 函数将提供您需要的所有功能。在您需要实施 APPSYNC_JS 运行时系统不支持的复杂业务逻辑时,您可以将 Lambda 数据来源作为代理以与目标数据来源进行交互。

直接数据源集成 Lambda 数据源作为代理
使用案例 AWS AppSync 函数直接与 API 数据源交互。 AWS AppSync 函数调用与 API 数据源交互的 Lambda。
运行时 APPSYNC_JS (JavaScript) 任何支持的 Lambda 运行时
代码的最大大小 每个函数 32,000 个 AWS AppSync字符 每个 Lambda 50 MB(压缩,用于直接上传)
外部模块 有限-仅支持 APPSYNC_JS 的功能
拨打任何 AWS 服务电话 是-使用 AWS AppSync HTTP 数据源 是-使用 AWS SDK
访问请求标头
网络访问
文件系统访问
日志记录和指标
完全在内部构建和测试 AppSync
冷启动 否-使用预置的并发性
Auto-scaling 是的——透明地说 AWS AppSync 是-按照 Lambda 中的配置
定价 不收取额外费用 按使用 Lambda 收费

AWS AppSync 直接与目标数据源集成的函数非常适合以下用例:

  • 与亚马逊 DynamoDB、Aurora 无服务器和服务进行交互 OpenSearch

  • 与 HTTP API 交互并传递传入标头

  • 使用 HTTP 数据源与 AWS 服务进行交互(使用提供的数据源角色 AWS AppSync 自动签署请求)

  • 在访问数据来源之前实施访问控制

  • 在完成请求之前对检索的数据实施筛选

  • 通过在解析器管道中顺序执行 AWS AppSync 函数,实现简单的编排

  • 控制查询和变更中的缓存和订阅连接。

AWS AppSync 使用 Lambda 数据源作为代理的函数非常适合以下用例:

  • 使用 Velocity 模板语言 (VTL) 以外的 JavaScript 语言

  • 调整和控制 CPU 或内存以优化性能

  • 导入第三方库或要求使用 APPSYNC_JS 中不支持的功能

  • 发出多个网络请求 and/or 获取文件系统访问权限以完成查询

  • 使用批处理配置对请求进行批处理。