为什么 AWS AppSync 仅直接支持解析器的 VTL(速度模板语言)?

问题描述 投票:0回答:1

您似乎可以编写 Javascript,但只能通过添加新的 Lambda 函数来实现,这会增加应用程序的成本和复杂性。我只是好奇为什么会这样,因为 VTL 似乎不太受欢迎,而且它不是我熟悉的语言。

学习 VTL 与采用 Lambda javascript (Node.js) 路线的优缺点有助于深入了解。

amazon-web-services aws-lambda aws-appsync vtl aws-appsync-resolver
1个回答
0
投票

你是对的,这就是为什么他们去年发布了对 JavaScript 解析器的支持。

虽然 JavaScript 仅支持管道解析器,但上周它发生了变化,现在所有类型的解析器都支持它:

https://aws.amazon.com/about-aws/whats-new/2023/08/aws-appsync-javascript-all-resolvers-graphql-apis

值得注意的是,它们有很多限制,包括:

  • 不支持异步代码
  • 不支持try catch
  • 不支持某些类型的循环
  • 您无法导入外部库
  • 等等

这是因为AppSync解析器被设计得简单快速,如果你想使用一些复杂的逻辑,那么你需要坚持使用AWS Lambda作为解析器

虽然 AWS Lambda 更强大并且几乎没有限制,但它更昂贵(JS 解析器是免费的)并且增加了更多延迟,因为 JS 解析器在 AppSync 本身中执行,而不是使用单独的 AWS 服务 Lambda

© www.soinside.com 2019 - 2024. All rights reserved.