AWS AppSync中的N + 1个查询

Alp*_*azy 12 amazon-web-services aws-lambda graphql aws-appsync

将AWS AppSync与lambda数据源一起使用时,您可能会遇到N + 1查询问题。

基本上,当您的类型上具有单独的字段解析器并且查询返回这些类型的数组时,字段解析器lambda将被调用N次。

AWS在解析程序中引入了BatchInvoking lambda,以解决此问题。在这里,您可以阅读有关问题及其解决方案的更多信息:https : //docs.aws.amazon.com/appsync/latest/devguide/tutorial-lambda-resolvers.html#advanced-use-case-batching

但是,他们的解决方案不起作用。BatchInvoking lambda仅限于5个事件(文档中未对此进行说明)。它对N + 1问题略有改进(使其变为N / 5 + 1),但我认为这还不够,因为更复杂的查询往往会执行很长时间,并且需要更多的lambda调用。

所以我的问题是你如何处理这个问题?有什么更好的解决方案吗?

Luc*_*asz 3

在 Appsync 解决问题之前,我们将使用 Apollo 服务器作为 ECS 中的网关来缝合使用 Prisma 制作的模式,并在设置逻辑的地方直接调用 lambda。

对于您的请求,您可以在其 GitHub 存储库中跟进功能请求,遗憾的是该请求没有太多进展。 https://github.com/aws/aws-appsync-community/issues/51