amazon-web-services - AWS SAM(无服务器应用程序模型)和无服务器框架有什么区别?
问题描述
我们正在开发项目,我们正在尝试在 nodejs 中构建无服务器应用程序。我遇到了 AWS SAM 和无服务器的术语。哪个最适合实现无服务器应用程序
解决方案
您可以查看这篇比较SAM 和 Serverless 的文章
该页面上列出的主要区别如下
Serverless Framework是一个框架, 可以轻松为包括 AWS、Google Cloud、Kubeless 等在内的众多提供商编写事件驱动的函数。对于每个提供者,可以配置一系列事件来调用该函数。该框架是开源的,并定期接收更新。
AWS 无服务器应用程序模型 (SAM)是 CloudFormation 前面的一个抽象层,可以轻松在 AWS 中编写无服务器应用程序。支持三种不同的资源类型:Lambda、DynamoDB 和 API Gateway。使用 SAM Local,Lambda 和 API Gateway 可以通过使用 Docker 容器在本地运行。
这两个框架的共同点是它们生成 CloudFormation。换句话说:它们都抽象了 CloudFormation,因此您需要编写更少的代码来构建无服务器应用程序(在 SAM 的情况下)和部署 Lambda 函数(对于 SAM 和无服务器)。最大的区别在于,Serverless 是为了将 FaaS(功能即服务)功能部署到不同的提供商而编写的。另一方面,SAM 是专门针对 AWS 的抽象层,不仅使用 FaaS,还使用 DynamoDB 进行存储,使用 API Gateway 创建无服务器 HTTP 端点。
另一个区别是 SAM Local 允许您在本地运行 Lambda 函数并在本地启动 API 网关。这使得开发和测试 Lambda 函数变得更加容易,而无需将它们部署到 AWS。使用无服务器框架,您还可以从命令行调用 Lambda 函数,但前提是它们已部署到 AWS 并通过 API Gateway 可用。
推荐阅读
- angularjs - 当控制器正常工作时,ng-submit 在 AngularJs 中不起作用
- react-native - React native 我们什么时候应该重新获取数据?
- android - 如何在播放视频之前检查互联网连接?
- powershell - 使用带有双引号参数的调用运算符在 PowerShell 4(及更少)中是否存在错误?
- ios - iOS - 关于后台访问
- c# - 是否可以在 Xamarin Forms 中的 contentPage 上创建遗产?
- powershell - 如何从 5 次试验中获得最大 CPU 百分比
- django - Django REST EmailAddress 匹配查询不存在
- python - 使用 python 3.6 安装 Gurobi
- powershell - 带有服务帐户的 Powershell Google Sheets API,如何设置范围?