具有业务逻辑的 AWS Appsync + DynamoDB

AWS Appsync + DynamoDB with business logic

当数据源是 dynamoDB 时,我的 AppSync 的变更是否可以有业务逻辑?

我对 GraphQL 和 Appsync 还很陌生。我的理解是,当您使用纯 GraphQL 时,您可以在解析器中包含业务逻辑,以便在更新之前进行验证。当您将以 DynamoDB 作为数据源的 GraphQL 架构传递给 AWS AppSync 时,您将如何使用 AWS AppSync 实现相同的目的?

在 AWS AppSync 中,您可以将解析器附加到映射到 DynamoDB 数据源的字段。然后,您可以使用 Velocity 模板将您的自定义业务逻辑置于解析器中以进行任何验证。

请参阅 AWS 解析器映射模板编程指南中的 following documentation

Here is the mapping template reference 用于 DynamoDB 解析器。

根据 AWS AppSync's Website借助 AppSync,您的应用程序可以访问 Amazon DynamoDB 中的数据、触发 AWS Lambda 函数或 运行 Amazon Elasticsearch 查询

您可以将其视为客户端访问不同后端(数据源)的网关,由附加到 GraphQL 字段(解析器)的映射模板定义。

AppSync 原生支持 DynamoDB 和 ElasitcSearch 查询,但如果您想执行业务逻辑,则必须添加 AWS Lambda 数据源,然后使用 AWS SDKs 到 R/W DynamoDB 或其他任何东西,例如另一个 API 或者甚至 excel 文件!

此外,您可以将 Apache VTL 与 AppSync 的可用助手(例如 $context)一起使用,以帮助您根据权限执行授权或字段数据访问。请记住,您的 DynamoDB 或 ES 解析器最后只能执行 1 个操作,Apache VTL 仅帮助您构建将由 AppSync 运行 执行的解析器。

这是两个比较传统方法与 appsync 的图表