Sni*_*192 34 amazon-web-services aws-lambda serverless
我正在玩Cloudformation无服务器转换,并试图弄清楚如何以及何时使用AWS::Serverless::Function或AWS::Lambda::Function.出于某种原因,Lambda版本用于AWS中的SAM示例.这非常令人困惑.SAM github.然后还有servlerless框架本身,它实际上是一个nodejs框架.所有这些让我非常困惑.
Ash*_*han 31
首先,让我解释一下这些.
AWS无服务器堆栈 - AWS提供无服务器技术的组合,包括API Gateway,Lambda,S3等.
最初引入Lambda时,使用Cloudformation使用这些技术开发无服务器应用程序是一项挑战.问题是由于为API Gateway和Lambda编写Cloudformation的复杂性.
这就是无服务器框架的用武之地.
无服务器框架 - 一个开源DevOps框架,它使用名为serverless.yml的简单文件简化了API网关和Lambda的定义.由于无服务器框架使用约定优于配置,因此只需几行代码即可定义Lambda,API网关等.在无服务器框架下,基于serverless.yml中定义的内容生成Cloudformation.此外,Serverless Framework还支持多个云提供商.
后来AWS引入了他们自己的简化脚本语言AWS SAM(注意:AWS SAM不是像目前一样的带有插件和扩展支持的无服务器的框架),以降低定义CloudFormation作为无服务器框架的替代方案的复杂性.
AWS::Lambda::Function 是用于定义Lambda函数的Cloudformation语法.
AWS::Serverless::Function是用于定义Lambda函数的AWS SAM语法,该函数在AWS::Lambda::Function执行AWS SAM时按照惯例在Cloudformation()和相关资源内部创建Lambda函数.
Big*_*uru 10
就框架而言,两者之间没有太大区别,但是在技术上存在细微差别,如下所示
无服务器:它创建 IAM 角色、S3 存储桶、Cloudformation 模板,创建、更新和部署代码。可以从命令调用程序。
更重要的一点是,当我们想要删除该功能和所有关联服务(例如 S3、IAM 角色等)时,可以使用单行命令来完成。在AWS Lambda中,我们需要手动将每个服务一一删除
AWS Lambda:它允许执行代码片段,以响应其他 AWS 资源活动引起的触发器,例如 AWS CloudWatch 警报、DynamoDB 等 NoSQL 表中的更改、S3 存储桶中的上传事件等。
AWS Lambda 函数有限制,建议您缩小代码大小并将较大的函数分解为较小的函数。
AWS::Serverless::Function适用于与AWS SAMAWS::Lambda::Function一起使用的情况,而适用于纯Cloudformation的情况。它们本质上都是在建模Lambda函数,但是只是针对不同的框架,因此对于或多或少的同一事物具有不同的名称。
从概念上讲,无服务器功能或Lambda函数之间没有区别。无服务器是AWS称为Lambda(和API网关)的通用术语。
那么,无服务器框架只是一个基于无服务器原理的软件项目,并且可以与AWS Lambda(以及其他产品)一起使用。实际上,它与诸如Chalice或Zappa(这两个基于Python的无服务器框架都在AWS Lambda上运行)之类的其他框架没有太大区别。
| 归档时间: |
|
| 查看次数: |
8644 次 |
| 最近记录: |