我们正在进行项目,我们正尝试在nodejs中构建无服务器应用程序。我遇到了AWS、SAM和Serverless。实现无服务器应用程序的最佳方法
发布于 2018-09-08 02:19:40
您可以查看本文比较SAM和Serverless
该页中列出的主要差异如下
Serverless framework 是一个框架,它可以方便地为众多提供程序编写事件驱动函数,包括AWS、Google、Kubeless等。对于每个提供程序,可以配置一系列事件来调用函数。该框架是开放源代码的,并且定期接收更新。 AWS无服务器应用模型(SAM)是CloudFormation前面的一个抽象层,可以方便地在CloudFormation中编写无服务器应用程序。支持三种不同的资源类型: Lambda、DynamoDB和API。使用SAM、Lambda和API网关可以通过使用Docker容器在本地运行。 这两个框架的共同点是它们生成CloudFormation。换句话说:它们都是抽象的CloudFormation,因此您需要编写更少的代码来构建无服务器应用程序(在SAM中),并部署Lambda函数(用于SAM和Serverless)。最大的区别是编写Serverless是为了将FaaS ( functions )函数部署到不同的提供者。另一方面,SAM是一个抽象层,专门用于AWS,不仅使用FaaS,而且使用DynamoDB作为存储,使用API创建无服务器的HTTP端点。 另一个不同之处是,SAM允许您在本地运行Lambda函数,并在本地拆分一个API网关。这使得在不将Lambda函数部署到AWS的情况下更容易开发和测试Lambda函数。使用Serverless框架,您还可以从命令行调用Lambda函数,但前提是将它们部署到AWS中并通过API网关提供。
发布于 2019-01-12 01:36:24
SAM和SF之间最大的区别是:
1) SAM只支持AWS,SF支持多个后端,支持多/混合云应用程序的部署。SF还支持kubernetes的后端。
2)对于AWS,SAM和SF模板都编译为Cloudformation (CF)。SAM具有使用Transform的能力,它本质上是CF的宏。
3) SAM用Python编写,SF用Javascript编写。
4) SF有插件,允许您运行任何代码(包括非Javascript);这实际上意味着有可能超越Cloudformation ( CF )的限制,因为在CF中总是有一些(新的)不支持的东西。插件系统也非常灵活,可以非常有用。
5) SF变量系统更灵活,可以根据其他参数的存在(如阶段)进行动态包含;SAM变量更接近CF。
https://stackoverflow.com/questions/52228361
复制相似问题