AWS Appsync 一个 dynamodb 解析器中的多个 dynamodb 请求

Posted

技术标签:

【中文标题】AWS Appsync 一个 dynamodb 解析器中的多个 dynamodb 请求【英文标题】:AWS Appsync multiple dynamodb requesst in one dynamodb resolver 【发布时间】:2018-12-15 20:45:26 【问题描述】:

我想知道是否可以在 AppSync 中仅使用一个发电机解析器来处理多个 dynamodb 请求? 或者进行更复杂处理的唯一/最佳方法是使用 lambda 函数?

【问题讨论】:

【参考方案1】:

实际上,没有。实际上,您甚至无法在单个资源定义中查询多个索引。

但是,如果您要使用该结构连接多个 DynamoDB 表,您可以不将解析器附加到查询条目;但要与其他领域相关的领域。

我遇到了一个问题,比如将用户关联到另一个包含帖子的表,我通过附加一个针对 User 类型的 Posts 字段的解析器来传递它。

这个issue指的是一个类似的问题,对这种情况很有帮助:https://github.com/awslabs/aws-mobile-appsync-sdk-js/issues/17

如果不是您的情况,您可以详细说明问题。总而言之,我可能看起来像是在猜测您关联表格的目的。

【讨论】:

感谢您的回答。我已经研究过这个问题,实际上我将解析器附加到字段以便查询多个表。我现在想做的是使用表 A 的第一次查询的数据来查询表 B。但我不知道 VTL 和一个解析器内部是否有可能。因为我发现的所有示例首先是使用 vtl 进行一些处理,然后是 dynamo 模板查询。我想这是不可能的,所以要进行这种处理,我需要使用 lambda 函数 很公平,Lambda 仍然是一种选择 - 确实很便宜 :) 就个人而言,我希望我的 AppSync 解析器尽可能直接,但它是我。无论如何,祝你好运。 使用级联解析器你可以使用 $ctx.source.*fieldFromParentQuery* 做你想做的事【参考方案2】:

您是否查看过使用 AWS AppSync 的批处理解析器?https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-dynamodb-batch.html

这将允许您在单个请求中写入一个或多个表,还允许您在单个请求中执行多个写入/读取/删除操作。

【讨论】:

【参考方案3】:

您可以使用管道解析器来做到这一点 https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-pipeline-resolvers.html

【讨论】:

以上是关于AWS Appsync 一个 dynamodb 解析器中的多个 dynamodb 请求的主要内容,如果未能解决你的问题,请参考以下文章

使用 AWS AppSync 将项目附加到 DynamoDB

如何操作 AWS AppSync 和 GraphQL 以符合 DynamoDB 最佳实践?

让 DynamoDB Stream Lambda 函数调用 AWS AppSync 突变

AWS AppSync:如何通过 DynamoDB 返回有效的 JSON

Aws Appsync 解析器:如何创建解析器以更新列表映射 (DynaMoDB) 中的项目

通过 AWS AppSync 记录更新、删除到 AWS DynamoDB 的数据有问题吗?