Yan*_*Yan 3 amazon-web-services aws-api-gateway aws-appsync
这是一个让我一直困惑的问题。尽管 AppSync 是针对 GraphQL 进行销售的,而 API Gateway 是针对 REST 进行销售的。但 API Gateway 也可以通过 lambda 中的 apollo 服务器与 GraphQL 配合使用。
那么,到底是什么让其中一个比另一个更好呢?
这取决于您想要对后端服务执行有多少控制权、您想要编写多少代码,当然还有您想要支付多少费用。
使用 API Gateway 和 Lambda,您可以编写一个处理程序函数,该函数针对您使用 Lambda 运行时设置的任何语言编写的解析器定义执行完整的 graphql 请求。您必须考虑您的应用程序需要多少内存,以及您想要支持什么类型的功能。您还需要做一些跑腿工作才能获得与 Websocket 一起使用的订阅。
AWS AppSync 更像是一种托管服务,您可以在其中使用 AppSync 注册您的 GraphQL 架构,该服务负责处理查询验证、批量调用,当然还有开箱即用的订阅等事务。在其中,您只需要定义如何使用 VTL(Velocity 模板语言)“映射”GraphQL 请求来定义对下游数据源的调用,即。特别是 DynamoDB、ElasicSearch、HTTP、Aurora Serverless RDS 或 Lambda。请记住,您为 AppSync 编写的 Lambda 函数只需处理单个解析器,而使用 Apollo Server,您可以在代码中编写所有解析器逻辑。
最终,无论您选择哪种方式,都有其优点和缺点。借助 Lambda 上的 Apollo Server,您可以控制完整的 HTTP GraphQL 请求周期,但这样做会增加额外的复杂性。借助 AppSync,您可以获得更加“托管”的服务,只需定义解析器即可与您的数据源对话(在许多情况下,可以使用 Amplify CLI 自动生成这些解析器),但代价是无法更好地控制整个 GraphQL 请求。
归档时间: |
|
查看次数: |
3342 次 |
最近记录: |