无服务lambda:
使用AWS lanbda,你无需配置和管理任何服务器和应用程序就能运行你的代码。
只需要上传代码,lambda就会处理运行并且根据需要自动进行横向扩展。因此lambda也被称为无服务(Serverless)函数。
要让AWS lambda的代码执行,需要设定一些触发器(比如CloudWatch Log,CloudWatch Event,API Gateway等),因此lambda函数被认为是事件驱动的(Event-Driven)
在传统的应用部署过程中,我们往往需要安装操作系统->安装应用程序->配置环境并部署代码,而且往往还需要不定时的为操作系统和应用程序打补丁和进行维护。
使用lambda就方便很多,只需要上传代码,AWS就会在需要的时候帮你运行。我们不再需要(也无法接触)任何操作系统层面的东西,也省略了非常多的部署时间,可以更专心地编写代码。
AWS lambda的特点:
1、没有服务器/无服务,或者说真实的服务器由AWS管理
2、只需要为运行的代码付费,不需要管理服务器和操作系统
3、持续性/自动的性能伸缩
4、非常便宜
5、AWS只会在代码运行期间收取相应的费用,代码未运行时不产生任何费用
6、代码的最长执行时间是5分钟,如果代码执行时间超过5分钟,则需要将一个代码细分为多个
价格:
1、按请求数量收费:首100万的lambda请求免费,之后每100万收取0.20美金的费用
2、按执行时间收费:执行时间计算是从lambda函数被激活到函数执行完毕或者终止(小于100毫秒按100毫秒计算),每1GB的内存每秒的费用是0.00001667美元。
lambda支持的代码语言:
1、API gateway
2、AWS IoT
3、CloudWatch Event
4、CloudWatch Logs
5、CodeCommit
6、DynamoDB
7、S3
8、SNS
9、Cognito Sync Trigger
其他Serverless的AWS服务:
Lambda
S3
DynamoDB
API Gateway
备注:
什么是Serverless无服务架构:
Serverless不代表再也不需要服务器了,而是说:开发者再也不用过多考虑服务器的问题,计算资源作为服务而不是服务器的概念出现。
Serverless有以下几个特点:
1、Serverless意味无维护,Serverless不代表完全去除服务器,而是代表去除有关对服务器运行状态的关心和担心,它们是否在工作,应用是否跑起来正常运行等等。Serverless代表的是你不要关心运营维护问题。有了Serverless,可以几乎无需Devops了。
2、Serverless不代表某个具体技术,有些人会给他们的语言框架取名为Serverless,Serverless其实去除维护的担心,如果你了解某个具体服务器技术当然有帮助,但不是必须的。