
什么是AWS Lambda?
AWS官方是这么介绍滴:AWS Lambda is a compute service that lets you run code without provisioning or managing servers. AWS Lambda executes your code only when needed and scales automatically, from a few requests per day to thousands per second.
So AWS Lambda是AWS的一个云服务,而且是一个serverless的服务,你只管写代码实现你想要的功能就好,其它的你不需要管,都交给AWS来负责了。AWS Lambda只会在有需要的时候才去运行你的代码,并且根据请求规模大小,自动调整执行级别,从每天几个请求到每秒几千个请求。
其实说白了,AWS Lambda就是一个可以执行代码或者脚本的一个平台。大家可以回想一下,如果你想用Python语言打印一句:Hello World!,就这么一句话,你需要什么?
一台电脑 (硬件)+ 操作系统 + Python软件 + 编辑器(Python自带的也行或者其它的IDE工具),差不多就这么多吧。
那现在如果你用AWS Lambda服务的话,直接创建一个AWS Lambda服务,选择Python作为运行时环境,然后开始写你的代码就好了。除了你的代码,其它的像Python这个软件和运行代码时需要用多少CPU啊,需要多少内存啊。。。这些你通通不用管,如果你的代码跑的时候,需要更多的计算资源,AWS Lambda这个服务的底层会自动申请更多的资源来做支持。
目前AWS Lambda支持的编程语言有:
.NET Core 3.1(C#/PowerShell)
Go 1.x
Java 11
Node.js 12.x
Python 3.8
Ruby 2.7
下面的这些老版本也支持:
.NET Core 2.1(C#/PowerShell)
Java 8
Node.js 10.x
Python 3.6
Python 3.7
Python 2.7
Ruby 2.5
另外还可以添加其它的编程语言,目前还没试过添加其它编程语言,有兴趣的话大家可以自己试试。
AWS Lambda能做什么呢?
大佬们都总结好了,我帮大家抄过来了:
Use Cases of AWS Lambda
AWS Lambda used for a wide range of applications like:
Helps you for ETL process
Allows you to perform real-time file processing and real-time stream processing
Use for creating web applications
Use in Amazon products like Alexa Chatbots and Amazon Echo/Alexa
Data processing (real-time streaming analytics)
Automated Backups of everyday tasks
Scalable back ends (mobile apps, loT devices)
Helps you to execute server-side backend logic
Allows you to filter and Transform data
Source: https://www.guru99.com/aws-lambda-function.html
目前个人理解:AWS提供的所有服务,只要有事件功能的,基本上都可以通过AWS Lambda来自动化一些操作。由于本人目前只了解AWS S3服务,所以接下来的几篇文章,我都是基于AWS S3服务来学习AWS Lambda的相关知识,而且我们选择Python来编写相应的代码。

那接下来,我们就来创建一个AWS Lambda,来好好认识一下它。
登录到你的AWS之后,我们在控制台搜索关键字:lambda,Lambda这个服务会自动被检索出来,选择即可,然后页面会自动跳转到AWS Lambda服务页面。

在AWS Lambda服务页面,点击:Create Function

在Create function第一个选项,保持默认"Author from scratch"选项。

接下来在Basic information部分,你需要在Function name文本框里给你的function起一个名字,养成见名知意的好习惯。

Permissions这里先暂时保持默认,因为我们这一节只是写一个最简单的AWS Lambda的function:用Python打印一句Hello, AWS Lambda! 最后点击Create function按钮。

function创建好之后,页面会自动跳转到创建成功页面,如下图所示。这个界面布局,熟悉一下,没事儿多点点。

往下翻页面,你会看到Function code区域,写过代码的同学,是不是很熟悉?其实就是一个在线的代码编辑器,Runtime选项那里支持多种语言,由于我们创建function的时候,已经指定了Python,所以Runtime那里是Python 3.8,代码区域默认生成的也是Python代码。

最上面一行功能导航栏,常用的就是 Test 和 Save,其实在下面的代码编辑器部分,也有一个功能导航栏,也有 Save 和 Test。详见下图。
我们现在将代码改成下面的样子,只输出一句话:Hello, AWS Lambda! 然后点击 Save 按钮。
import jasondef lambda_handler(event, context):#TODO implementinfo = "Hello, AWS Lambda!"return info

点击Save按钮之后,Configure test event页面会跳出来,你只需要填写一下Event name就可以,名字还是要见名知意,下面的字典内容不用管。
然后点击右下角的Create按钮。

好了,现在我们就可以测试我们的代码了,点击Test按钮,运行结果会显示在代码区域下面的Execution results区域。看到了吧?我们成功打印了一句:Hello, AWS Lambda!

好了,本节内容就先介绍到这里,下一节我们再多加一个功能:将AWS S3与AWS Lambda做关联,当有新文件上传到AWS S3的bucket里时,AWS Lambda将自动被触发并且执行。
扫码关注微信公众号,都是干货哦!

~daling!点个赞呗!~




