AppSync 和被锁定在 AWS 中的想法

Posted

技术标签:

【中文标题】AppSync 和被锁定在 AWS 中的想法【英文标题】:AppSync and thoughts on being locked in AWS 【发布时间】:2020-06-16 20:30:24 【问题描述】:

我一直在考虑使用 graphQL 构建后端。

目的是让后端团队的生活更轻松,迭代更快,而不是为每个数据集检索构建 REST 端点或 wss 操作。

GraphQL 似乎是一种解决方案。我们非常熟悉 Lambda 环境,因此在我们的研究中我们发现了 AppSync。我看起来像是一个完美的解决方案,但是我有些担心被锁定在 AWS 中并围绕 AppSync 设计整个架构。

无服务器的美妙之处在于,借助无服务器框架,我们可以将所有功能重新部署到另一个云提供商 (Azure Functions),甚至可以将这些功能 docker 化以进行本地部署。

我担心,对于 AppSync,无论是其他云提供商还是在本地轻松地执行此操作,实际上都别无选择。有没有人有这方面的经验?在 lambda 中部署 appolo 服务器并为我们自己的数据源构建连接器/侦听器是否更值得:https://github.com/michalkvasnicak/aws-lambda-graphql/tree/aws-lambda-graphql%400.13.0#design-michalkvasnicak?

【问题讨论】:

【参考方案1】:

恕我直言,这取决于 GraphQL 端点的客户端将如何保护数据。一种策略是使用 IAM 和 Cognito 等亚马逊身份服务来保护应用程序。 Amplify 的优势在于与 IAM、Cognito、API Gateway、DynamoDB、S3 和 AppSync 的安全集成。例如,AppSync 上的安全 GraphQL 端点。每个 AWS 云服务中托管的数据都可以通过 Amplify 进行保护,还有许多其他策略。

serverless framework 是无服务器开发人员操作的一个突破。框架很漂亮。我不同意您对 Am​​plify 生成的 cloudformation 不可移植的担忧。 Cloudformation 是不同于 Serverless 框架的 DevSecOps 文化。 Amplify 生成的 DevSecOps 代码简单地融入了 Cloudformation 文化。

我对云上的 GraphQL 非常陌生,FWIW。我没有在 Lambda 上使用 Apollo 的经验。我哭了,尽管经验丰富的专业人士可能知道,自动化安全性看起来很困难。我当然希望你达到一个永远不必扔掉一行代码的地步。我什至还没有接近。

【讨论】:

【参考方案2】:

AWS 生态系统的一个简单入口是使用AWS Amplify。

它有关于安全性、GraphQL API 等的文档指南。

【讨论】:

以上是关于AppSync 和被锁定在 AWS 中的想法的主要内容,如果未能解决你的问题,请参考以下文章

Appsync 客户端对 GraphQL 突变的 Angular 订阅

如何处理 aws-appsync 中的关系?

AWS AppSync 中的 InvalidUserPoolException

在 Ionic AWS Starter 模板中使用 Appsync 中的 Graphql 和 AWS Amplify 未捕获的异常 [Object Object]

aws amplify appsync 中的 Graphql 突变错误

AWS Appsync 一个 dynamodb 解析器中的多个 dynamodb 请求