- AWS Lambda 教程
- AWS Lambda - 首页
- AWS Lambda - 概述
- AWS Lambda - 环境设置
- AWS Lambda - 简介
- 构建 Lambda 函数
- NODEJS 函数
- Java 函数
- Python 函数
- Go 函数
- C# 函数
- 配置 Lambda 函数
- 使用 AWS 控制台创建和部署
- 使用 AWS CLI 创建和部署
- 使用 Serverless Framework 创建和部署
- AWS 执行和调用 Lambda 函数
- 删除 Lambda 函数
- 使用 Amazon API Gateway
- 带有 Amazon S3 的 Lambda 函数
- 带有 Amazon DynamoDB 的 Lambda 函数
- 带有计划事件的 Lambda 函数
- 带有 Amazon SNS 的 Lambda 函数
- 带有 CloudTrail 的 Lambda 函数
- 带有 Amazon Kinesis 的 Lambda 函数
- 带有自定义用户应用程序的 Lambda 函数
- AWS Lambda@Edge 与 CloudFront
- 使用 Cloudwatch 进行监控和故障排除
- AWS Lambda - 附加示例
- AWS Lambda 有用资源
- AWS Lambda - 快速指南
- AWS Lambda - 有用资源
- AWS Lambda - 讨论
使用 AWS 控制台创建和部署
我们可以在 AWS 控制台中创建 Lambda 函数并进行测试。本章将详细讨论这一点。为此,您需要按照此处提供的步骤操作并观察相应的屏幕截图:
步骤 1
登录 AWS 控制台 https://aws.amazon.com/console/。现在,您将被重定向到显示 AWS 服务的屏幕。
步骤 2
现在,单击上面突出显示的Lambda 服务。这将重定向到创建函数,如下所示:
步骤 3
现在,单击创建函数并输入函数的详细信息。然后您将看到如下所示的屏幕:
步骤 4
您可以通过选择您选择的语言来编写代码。如果选择的选项是内联编辑代码,则必须在编辑器中编写代码。其他可用选项如下:
步骤 5
完成后,您需要保存更改,右上角有一个按钮,如下所示:
步骤 6
现在,单击测试按钮。这将提供 Lambda 函数执行的所有详细信息,如下所示:
步骤 7
index.js 的代码如下:
exports.handler = (event, context, callback) => {
// TODO implement
callback(null, 'Lambda test');
};
这将调用回调函数,结果可能是错误或成功。成功时,您将看到Lambda 测试消息;如果出错,它将传递 null。
步骤 8
Lambda 函数的角色详细信息是配置的一部分,如下所示:
步骤 9
现在,您可以根据需要更新角色并保存 Lambda 函数。然后,将显示 Lambda 函数的内存和超时详细信息,如下所示:
步骤 10
现在,我们需要向 Lambda 函数添加触发器,以便在事件发生时执行它。触发器详细信息显示在 AWS Lambda 函数屏幕的开头,如下所示:
从中,您可以选择希望 Lambda 函数触发的触发器。当您选择触发器时,必须添加触发器的配置详细信息。
例如,对于 S3 上的触发器,要添加的配置详细信息如下:
步骤 11
现在,选择您想要在其上触发触发器的存储桶。事件类型具有以下详细信息:
步骤 12
对于触发器,您还可以提及前缀类型文件或文件模式,Lambda 必须被触发。详细信息如下所示:
步骤 13
现在,填写触发器的所需详细信息并单击添加按钮。保存 Lambda 函数以添加触发器。保存函数会部署详细信息,从现在开始,只要将文件添加到 S3 存储桶,Lambda 就会被触发。
观察以下屏幕截图,其中显示了添加到 AWS Lambda 的 S3 触发器:
步骤 14
现在,让我们使用 S3 示例事件来测试 Lambda 函数。此处的代码如下所示:
Amazon S3 Put 示例事件
{
"Records": [{
"eventVersion": "2.0",
"eventTime": "1970-01-01T00:00:00.000Z",
"requestParameters": {
"ExampleIPAddress": "127.0.0.1"
},
"s3": {
"configurationId": "testConfigRule",
"object": {
"eTag": "0123456789abcdef0123456789abcdef",
"sequencer": "0A1B2C3D4E5F678901",
"key": "HappyFace.jpg",
"size": 1024
},
"bucket": {
"arn": bucketarn,
"name": "Examplebucket",
"ownerIdentity": {
"principalId": "Example"
}
},
"s3SchemaVersion": "1.0"
},
"responseElements": {
"x-amz-id-2": "Example123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH",
"x-amz-request-id": "Example123456789"
},
"awsRegion": "us-east-1",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "Example"
},
"eventSource": "aws:s3"
}]
}
您需要使用以下命令来获取从 S3 put 事件上传的文件的详细信息:
event.Records[0].s3.object.key //will display the name of the file
您需要使用以下命令来获取存储桶名称:
event.Records[0].s3.bucket.name //will give the name of the bucket.
您需要使用以下命令来获取 EventName:
event.Records[0].eventName // will display the event name
步骤 15
现在,让我们更新 AWS Lambda 代码以打印 S3 详细信息,如下所示:
exports.lambdahandler = (event, context, callback) => {
callback(null, "Bucket name: "+event.Records[0].s3.bucket.name+"
File name:"+event.Records[0].s3.object.key );
};
步骤 16
保存更改。单击测试并输入 S3 示例事件:
步骤 17
现在单击测试,您将看到如下所示的输出:
步骤 18
要使用 S3 AWS 服务测试 S3 上的触发器,请将文件上传到 S3 存储桶:test bucket trigger。更新与 Lambda 一起使用的角色以获取 S3 和 SES 策略(用于发送邮件)以进行权限设置。这将更新 AWS Lambda 代码以发送邮件以查看触发器是否正常工作:
更新后的 AWS Lambda 代码如下所示:
var aws = require('aws-sdk');
var ses = new aws.SES({
region: 'us-east-1'
});
exports.lambdahandler = function(event, context, callback) {
var eParams = {
Destination: {
ToAddresses: ["coxxxxxxx@gmail.com"]
},
Message: {
Body: {
Text: {
Data: "Bucket name: "+event.Records[0].s3.bucket.name+" File name:"+event.Records[0].s3.object.key
}
},
Subject: {
Data: "S3 and AWS Lambda"
}
},
Example: "coxxxxxx@gmail.com"
};
console.log('===SENDING EMAIL===');
var email = ses.sendEmail(eParams, function(err, data) {
if (err) console.log(err);
else {
console.log("===EMAIL SENT===");
console.log("EMAIL CODE END");
console.log('EMAIL: ', email);
context.succeed(event);
callback(null, "email is send");
}
});
};
相应的屏幕截图如下所示:
步骤 19
现在,上传文件并检查 AWS Lambda 代码中提供的邮件 ID: