AWS Amplify 和无服务器堆栈

AWS Amplify & Serverless-Stack

我目前正在调查 AWS Amplify as well as I am reading Serverless Stack。我的目标是创建一个简单的待办事项列表应用程序。 "Getting started" / 文档似乎具有相同的目标。但是,AWS Amplify 指南的设置似乎更容易。

这就是我感到困惑的地方。据我了解,AWS Amplify 也使用 DynamoDB 并通过 GraphQL 获取数据。但是这两个文档的区别在哪里呢?

Serverless Stack 是一种资源,提供有关如何使用 AWS 创建无服务器应用程序的指导。它是由一家名为 Anomaly Innovations 的公司创建的。

AWS Amplify 是由 AWS 维护的开源框架,可帮助开发人员将其应用程序与 AWS 资源集成。

A​​WS Amplify 是一项非常混乱的服务,由许多组件组成。我会分类如下。

  1. AWS Amplify 控制台
  2. AWS Amplify CLI
  3. 可集成到您的移动设备或 Web 的 AWS SDK 和库
  4. AWS Appsync 转换器

A​​WS Amplify 控制台使您能够轻松地为您的 Amplify 项目设置持续部署。 Amplify 控制台与 AWS Amplify CLI 一起使用,让您管理不同的环境。
假设您想启动 Todo 应用程序。您从本地开始使用 Amplify CLI 并创建 API Gateway/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/Transformer 属于一个项目,它仍然非常脆弱。你可以看看 https://www.npmjs.com/package/@aws-amplify/cli 的版本历史,你会发现一个月内很少有版本更新。我们遇到了许多明显的错误,即使是在 AWS 控制台上也是如此。

我还没有用过Serverless,但据我所知,Serverless提供了Amplify的No1和No2,稳定性更高。