无服务器功能和Lambda功能之间有什么区别

时间:2018-04-21 07:02:36

标签: amazon-web-services aws-lambda serverless

我正在使用Cloudformation无服务器转换,我正在尝试弄清楚如何以及何时使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <nav id="navbar"> <div class="dropdown-btn">Go To...</div> <ul class="navbar-tab"> <li class="navbar-tab-1 selected">Home</li> <li class="navbar-tab-1 select">Searches <ul class="hover-list select"> <li><a>Search</a></li> <li><a>Rocks</a></li> </ul> </li> <li class="navbar-tab-1 select">Engagement Rings <ul class="hover-list select"> <li><a>Verragio</a></li> </ul> </li> <li class="navbar-tab-1 select">Services <ul class="hover-list select"> <li><a href="">Repair</a></li> </ul> </li> </ul> </nav>AWS::Serverless::Function。出于某种原因,Lambda版本用于AWS中的SAM示例。这非常令人困惑。 SAM github。然后还有AWS::Lambda::Function框架本身,它实际上是一个servlerless框架。所有这些让我非常困惑。

3 个答案:

答案 0 :(得分:17)

首先,让我解释一下这些。

AWS无服务器堆栈 - AWS提供无服务器技术的组合,包括API网关,Lambda,S3等。

当Lambda最初推出时,使用Cloudformation使用这些技术开发无服务器应用程序是一项挑战。问题是由于为API Gateway和Lambda编写Cloudformation的复杂性。

这就是无服务器框架的用武之地。

无服务器框架 - 一个开源DevOps框架,它使用名为serverless.yml的简单文件简化了API网关和Lambda的定义。由于无服务器框架使用约定优于配置,因此只需几行代码即可定义Lambda,API网关等。在无服务器框架下,生成基于serverless.yml中定义的数据的Cloudformation。此外,无服务器框架支持多云提供商。

后来AWS引入了他们自己的简化脚本语言AWS SAM(注意:AWS SAM不是像目前这样具有插件和扩展支持的无服务器的框架),以降低定义CloudFormation作为无服务器框架的替代方案的复杂性。

AWS::Lambda::Function是用于定义Lambda函数的Cloudformation语法。

AWS::Serverless::Function是用于定义Lambda函数的AWS SAM语法,该函数在执行AWS SAM时按照惯例在Cloudformation(AWS::Lambda::Function)和相关资源内部创建Lambda函数。

答案 1 :(得分:4)

AWS::Serverless::Function用于与AWS SAM一起使用,而AWS::Lambda::Function用于普通Cloudformation。它们本质上都是对Lambda函数进行建模,但它只是针对不同的框架,因此它们具有不同的名称或多或少相同的东西。

从概念上讲,无服务器或Lambda函数之间没有区别。无服务器是AWS称为Lambda(和API网关)的通用术语。

无服务器框架只是一个基于无服务器原则的软件项目,可以与AWS Lambda(以及其他)一起使用。它与其他框架(例如Chalice或Zappa(在AWS Lambda上运行的基于Python的无服务器框架)都没有太大区别。)

答案 2 :(得分:0)

在框架方面,两者之间并没有太大的区别,但是从技术上讲,两者之间的区别很小,如下所示:

无服务器:它创建IAM角色,S3存储桶,Cloudformation模板,创建,更新和部署代码。可以从命令调用程序。

更重要的一点是,当我们想删除功能和所有相关服务(例如S3,IAM角色等)时,可以使用单行命令来完成。在AWS Lambda中,我们需要一个一个地手动删除每个服务

AWS Lambda:它允许执行代码段,以响应其他AWS资源(例如AWS CloudWatch警报),NoSQL表中的DynamoDB更改,S3存储桶中的上传事件等活动引起的触发。< / p>

AWS Lambda函数具有局限性,建议您减小代码大小并将较大的函数分解为较小的函数。

相关问题