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 是无服务器开发人员操作的一个突破。框架很漂亮。我不同意您对 Amplify 生成的 cloudformation 不可移植的担忧。 Cloudformation 是不同于 Serverless 框架的 DevSecOps 文化。 Amplify 生成的 DevSecOps 代码简单地融入了 Cloudformation 文化。
我对云上的 GraphQL 非常陌生,FWIW。我没有在 Lambda 上使用 Apollo 的经验。我哭了,尽管经验丰富的专业人士可能知道,自动化安全性看起来很困难。我当然希望你达到一个永远不必扔掉一行代码的地步。我什至还没有接近。
【讨论】:
【参考方案2】:AWS 生态系统的一个简单入口是使用AWS Amplify。
它有关于安全性、GraphQL API 等的文档指南。
【讨论】:
以上是关于AppSync 和被锁定在 AWS 中的想法的主要内容,如果未能解决你的问题,请参考以下文章
Appsync 客户端对 GraphQL 突变的 Angular 订阅
AWS AppSync 中的 InvalidUserPoolException
在 Ionic AWS Starter 模板中使用 Appsync 中的 Graphql 和 AWS Amplify 未捕获的异常 [Object Object]