具有业务逻辑的 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 的图表
当数据源是 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 的图表