AWS Amplify - 管道解析器与 Lambda 解析器

AWS Amplify - Pipeline Resolvers vs Lambda Resolvers

当您需要使用 AWS Amplify 从单个自定义 gql 操作访问多个资源(例如不同的 DynamoDB 表)时,为什么要使用管道解析器而不是 lambda 解析器,反之亦然?通过阅读,似乎很少有关于每种方法的 advantages/disadvantages 的信息,以及一种可能比另一种更好的用例。

我读到调试管道解析器是一场噩梦,因为你不能 print/console.log,所以如果这是真的,那是管道解析器的一个巨大缺点,也是使用 lambda 的原因。 .

一些想法(尽管并不详尽):

  1. AppSync 管道解析器不会产生 Lambda 函数的额外成本
  2. 管道解析器可能更快,因为它们不必额外跳转到 Lambda(尽管您应该自己测试以确认)
  3. Lambda 可能会为您提供更熟悉的编程模型,具体取决于您的经验。
  4. Lambda 还可能允许您执行 AppSync 中的 VTL 无法实现的其他更复杂的操作。

也就是说,您不一定需要管道解析器来访问多个数据源;您可以使用可以在同一请求中执行的多个解析器设置多个数据源。

您可能还想查看 https://github.com/serverless/serverless-graphql/issues/248,其中包含关于在 AppSync 背后使用多个 DynamoDB 表的优缺点的有趣讨论 API。