本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过使用 AWS AppSync 和 APPSYNC_JS
运行时系统,您可以编写自己的代码,以通过 AWS AppSync 函数访问数据来源来实施自定义业务逻辑。这样,您可以轻松直接与数据来源(如 Amazon DynamoDB、Aurora Serverless、OpenSearch Service、HTTP API 和其他 AWS 服务)交互,而无需部署额外的计算服务或基础设施。AWSAppSync 还可以配置 Lambda 数据来源以轻松与 AWS Lambda 函数进行交互。通过使用 Lambda 数据来源,您可以使用 AWS Lambda 的全套功能运行复杂的业务逻辑以解析 GraphQL 请求。在大多数情况下,直接连接到目标数据来源的 AWS AppSync 函数将提供您所需的所有功能。在您需要实施 APPSYNC_JS
运行时系统不支持的复杂业务逻辑时,您可以将 Lambda 数据来源作为代理以与目标数据来源进行交互。
直接数据来源集成 | 将 Lambda 数据来源作为代理 | |
应用场景 | AWS AppSync functions interact directly with API data sources. | AWS AppSync functions call Lambdas that interact with API data sources. |
Runtime | APPSYNC_JS (JavaScript) |
任何支持的 Lambda 运行时系统 |
Maximum size of code | 每个 AWS AppSync 函数 32,000 个字符 | 每个 Lambda 50 MB(压缩,用于直接上传) |
External modules | 有限 - 仅 APPSYNC_JS 支持的功能 | 是 |
Call any AWS service | 是 - 使用 AWS AppSync HTTP 数据来源 | 是 - 使用 AWS SDK |
Access to the request header | 是 | 是 |
Network access | 否 | 是 |
File system access | 否 | 是 |
Logging and metrics | 是 | 是 |
Build and test entirely within AppSync | 是 | 否 |
Cold start | 否 | 否 - 使用预置并发 |
Auto-scaling | 是 - 由 AWS AppSync 透明实施 | 是 - 根据 Lambda 中的配置 |
Pricing | 无额外费用 | 收取 Lambda 使用费用 |
直接与目标数据来源集成的 AWS AppSync 函数非常适合以下使用案例:
-
与 Amazon DynamoDB、Aurora Serverless 和 OpenSearch Service 交互
-
与 HTTP API 交互并传递传入标头
-
使用 HTTP 数据来源与 AWS 服务交互(AWS AppSync 使用提供的数据来源角色自动对请求进行签名)
-
在访问数据来源之前实施访问控制
-
在完成请求之前对检索的数据实施筛选
-
按顺序执行解析器管道中的 AWS AppSync 函数以实施简单编排
-
控制查询和变更中的缓存和订阅连接。
将 Lambda 数据来源作为代理的 AWS AppSync 函数非常适合以下使用案例:
-
使用 JavaScript 或 Velocity 模板语言 (VTL) 以外的语言
-
调整和控制 CPU 或内存以优化性能
-
导入第三方库或要求使用
APPSYNC_JS
中不支持的功能 -
发出多个网络请求和/或获取文件系统访问权限以完成查询
-
使用批处理配置对请求进行批处理。