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