我目前正在研究AWS Amplify,同时正在阅读Serverless Stack。我的目标是创建一个简单的待办事项列表应用程序。两个"入门"/文档似乎都有相同的目标。然而,AWS Amplify指南似乎从设置开始就容易得多。
这就是我困惑的地方。据我所知,AWS Amplify也使用DynamoDB并通过GraphQL获取数据。但这两份文件的区别在哪里呢?
Serverless Stack是一个资源,提供如何使用AWS创建无服务器应用程序的指导。它是由一家名为Anomaly Innovations的公司创建的。
AWS Amplify是一个由AWS维护的开源框架,可帮助开发人员将其应用程序与AWS资源集成。
AWS Amplify是一项非常令人困惑的服务,由许多组件组成。我将分类如下。
- AWS Amplify控制台
- AWS Amplify CLI
- AWS SDK&要集成到移动设备或网络的库
- AWS Appsync转换器
AWS Amplify控制台使您能够轻松地为您的Amplify项目设置连续部署。Amplify控制台与AWS Amplify CLI一起使用,可用于管理不同的环境
假设您想启动Todo应用程序。您可以使用Amplify CLI在本地启动并创建API网关/Lambda/DynamoDB堆栈
Amplify CLI允许您轻松创建整个堆栈,并将其推送到AWS以部署整个堆栈。然后,您可以基于相同的堆栈创建一个不同的环境,假设您想要您的开发环境、QA环境和生产环境
Amplify CLI为您提供了实现这一目标所需的所有命令,如果您想在有人将代码推送到您的Git存储库时自动将更改部署到AWS,您可以使用Amplify控制台进行设置
Amplify控制台还与AWS域集成,因此您可以轻松地将自己的域指向任何环境
除此之外,Amplify还提供GraphQL Transformer,您可以轻松地以Amplify格式定义GraphQL模式,它将转换并部署到AWS Appsync。还有一个移动SDK,你可以在AppSync和你的移动设备之间同步数据,并提供一些UI。
我们使用了我们的一个web项目,我们喜欢它用于Amplify的Continues Deployment方面,但我们不喜欢Amplify中的AppSync(GraphQL(方面,只是b/c实现分层解析器并不容易。
此外,请记住,Amplify CLI/SDK/Transfer在一个项目下,它仍然非常脆弱。您可以从中查看版本历史记录https://www.npmjs.com/package/@aws放大/cli,您将在一个月内看到很少的版本提升。我们遇到了许多明显的错误,甚至在AWS控制台上也是如此。
我还没有使用Serverless,但据我所知,Serverless为Amplify的1号和2号提供了更大的稳定性。