使用AWS Lambda,你无需配置和管理任何服务器和应用程序就能运行你的代码。只需要上传代码,Lambda就会处理运行并且根据需要自动进行横向扩展。因此Lambda也被称为无服务(Serverless)函数。
要让AWS Lambda的代码执行,需要设定一些触发器(比如CloudWatch Log,CloudWatch Event,API Gateway等),因此Lambda函数被认为是事件驱动的(Event-Driven)。
在传统的应用部署过程中,我们往往需要安装操作系统 -> 安装应用程序 -> 配置环境并部署代码,而且往往还需要不定时地为操作系统和应用程序打补丁和进行维护。使用AWS Lambda就方便很多,只需要上传代码,AWS就会在需要的时候帮你运行。我们不再需要(也无法接触)任何操作系统层面的东西,也节省了非常多的部署时间,可以更专心地编写代码。
AWS Lambda的特点
- 没有服务器/无服务,或者说真实的服务器由AWS管理
- 只需要为运行的代码付费,不需要管理服务器和操作系统
- 持续性/自动的性能伸缩
- 非常便宜
- AWS只会在代码运行期间收取相应的费用,代码未运行时不产生任何费用
- 代码的最长执行时间是15分钟,如果代码执行时间超过15分钟,则需要将1个代码细分为多个
价格
- 按请求数量收费:首100万的Lambda请求免费,之后每100万收取0.20美金的费用
- 按执行时间收费:执行时间计算是从lambda函数被激活到函数执行完毕或者终止(小于100毫秒按100毫秒计算),每1GB的内存每秒的费用是0.00001667美元。
Lambda支持的代码语言
- Python
- Java
- Node.js (JavaScript)
- C#
- Go
触发器有哪些
- API Gateway
- AWS IoT
- CloudWatch Events
- CloudWatch Logs
- CodeCommit
- DynamoDB
- S3
- SNS
- Cognito Sync Trigger
其他Serverless的AWS服务
- Lambda
- S3
- DynamoDB
- API Gateway
举例:如何使用Lambda定时关闭和启动EC2实例
https://aws.amazon.com/cn/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/