AWS Lambda(Amazon Lambda)是由亚马逊云推出的一种运行代码而无需预置或管理服务器的计算服务。用户想要使用AWS Lambda,只需在Lambda支持的一种语言运行时系统中提供代码。本文就来为大家介绍一下AWS Lambda创建第一个函数的具体流程。
亚马逊云推出了AWS Lambda免费试用服务,无需管理服务器、自动扩展应用程序、通过毫秒计量优化成本、任意规模都能获得一致的超高性能、每月免费提供100万个请求,永久免费试用。用户可以通过专属优惠链接进行注册,获取Amazon Lambda免费套餐。
一、注册并登录AWS Lambda控制台
1、提供上文专属优惠链接进入亚马逊云科技官网,点击“免费注册”。
2、注册完成以后,按照以下页面填写,点击“登录”。
3、进入控制台,找到计算>Amazon Lambda,点击进入。
二、使用AWS Lambda控制台创建函数
本文中函数采用一个JSON对象,其中包含两个标记有"length"和"width"的整数值。该函数将这些值相乘来计算区域,并将其作为JSON字符串返回。函数还会输出计算区域及其CloudWatch日志组名称。
要创建函数,首先要使用控制台创建基本的Hello world函数。
使用控制台创建Hello world Lambda函数
1、打开Amazon Lambda控制台的函数页面,点击“创建函数”。
2、选择从头开始编写,在基本信息窗格中,为函数名称输入myLambdaFunction。
3、对于运行时系统,选择Node.js 18.x。
4、保留架构设置为x86_64,然后选择创建函数。
现在,用户可以使用控制台的内置代码编辑器,将Lambda创建的Hello world代码替换为自己的函数代码。
5、在控制台的内置代码编辑器中,会显示AWS Lambda创建的函数代码。如果代码编辑器中没有显示index.mjs选项卡,请在文件资源管理器中选择index.mjs,如下图所示。
6、将以下代码粘贴到index.mjs选项卡中,替换Lambda创建的代码。
export const handler = async (event, context) => {
const length = event.length;
const width = event.width;
let area = calculateArea(length, width);
console.log(`The area is ${area}`);
console.log('CloudWatch log group: ', context.logGroupName);
let data = {
"area": area,
};
return JSON.stringify(data);
function calculateArea(length, width) {
return length * width;
}
};
7、选择部署以更新函数代码。当Lambda部署更改后,控制台会显示一个横幅,告知用户函数已成功更新。
三、使用AWS Lambda控制台调用函数
要使用Lambda控制台调用函数,首先要创建一个发送到函数的测试事件。该事件是包含两个键值对的JSON格式文档,其中键为"length"和"width"。
创建测试事件
1、在代码源窗格中,选择测试。
2、选择创建新事件。
3、在事件名称中,输入myTestEvent。
4、在事件JSON面板中,通过粘贴以下内容来替换默认值:
{
"length": 6,
"width": 7
}
5、选择保存
现在,用户可以测试函数,并使用Lambda控制台和CloudWatch Logs来查看函数的调用记录。
测试函数并在控制台中查看调用记录
在代码源窗格中,选择测试。函数完成运行后,执行结果选项卡中将显示响应和函数日志。您将看到类似以下内容的结果:
Test Event Name
myTestEvent
Response
"{\"area\":42}"
Function Logs
START RequestId: 5c012b0a-18f7-4805-b2f6-40912935034a Version: $LATEST
2023-08-31T23:39:45.313Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO The area is 42
2023-08-31T23:39:45.331Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO CloudWatch log group: /aws/lambda/myLambdaFunction
END RequestId: 5c012b0a-18f7-4805-b2f6-40912935034a
REPORT RequestId: 5c012b0a-18f7-4805-b2f6-40912935034a Duration: 20.67 ms Billed Duration: 21 ms Memory Size: 128 MB Max Memory Used: 66 MB Init Duration: 163.87 ms
Request ID
5c012b0a-18f7-4805-b2f6-40912935034a
在此示例中,用户通过控制台的测试功能调用代码。这意味着您可以直接在控制台中查看函数的执行结果。在控制台外部调用函数时,需要使用CloudWatch Logs。
在CloudWatch Logs中查看函数的调用记录
1、打开CloudWatch控制台的Log groups page(日志组页面)。
2、选择函数(/aws/lambda/myLambdaFunction)的日志组。这是函数输出到控制台的日志组名称。
3、在日志流选项卡上,选择函数调用的日志流。用户应该可以看到类似于如下所示的输出内容:
INIT_START Runtime Version: nodejs:20.v13 Runtime Version ARN: arn:aws:lambda:us-west-2::runtime:e3aaabf6b92ef8755eaae2f4bfdcb7eb8c4536a5e044900570a42bdba7b869d9
START RequestId: aba6c0fc-cf99-49d7-a77d-26d805dacd20 Version: $LATEST
2023-08-23T22:04:15.809Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO The area is 42
2023-08-23T22:04:15.810Z aba6c0fc-cf99-49d7-a77d-26d805dacd20 INFO CloudWatch log group: /aws/lambda/myLambdaFunction
END RequestId: aba6c0fc-cf99-49d7-a77d-26d805dacd20
REPORT RequestId: aba6c0fc-cf99-49d7-a77d-26d805dacd20 Duration: 17.77 ms Billed Duration: 18 ms Memory Size: 128 MB Max Memory Used: 67 MB Init Duration: 178.85 ms
四、清理AWS Lambda示例函数
删除AWS Lambda函数
1、打开Lamba控制台的函数页面。
2、选择函数。
3、依次选择操作>删除。
4、在删除函数对话框中,输入删除,然后选择删除。
删除日志组
1、打开CloudWatch控制台的日志组页面。
2、选择函数的日志组。
3、依次选择操作>删除日志组。
4、在删除日志组对话框中,选择删除。
删除执行角色
1、打开Amazon Identity and Access Management(IAM)控制台的角色页面。
2、选择函数的执行角色(例如myLambdaFunction-role-31exxmpl)。
3、选择删除。
4、在删除角色对话框中,输入角色名称,然后选择删除。