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

pho*_*pho 5 amazon-web-services amazon-dynamodb aws-lambda aws-appsync aws-amplify

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

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

par*_*ath 6

一些想法(虽然并不详尽):

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

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

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