将 AWS Lambda 函数与 Amazon S3 结合使用的步骤

蜗牛vps教程2023-08-25280

Amazon S3 服务用于文件存储,您可以在其中上传或删除文件。当 S3 存储桶中有任何文件上传时,我们可以在 S3 上触发 AWS Lambda。 AWS Lambda 有一个处理函数,它充当 AWS Lambda 函数的起点。处理程序具有事件的详细信息。在本章中,让我们看看在 S3 存储桶中上传文件时如何使用 AWS S3 触发 AWS Lambda 函数。

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤

要开始在 Amazon S3 中使用 AWS Lambda,我们需要以下内容-

创建 S3 存储桶创建有权使用 s3 和 lambda 的角色创建 lambda 函数并添加 s3 作为触发器。

示例

让我们借助一个示例来了解这些步骤,该示例展示了 Amazon S3 和 AWS Lambda 之间的基本交互。

用户将在 Amazon S3 存储桶中上传文件文件上传后,它会在后台触发 AWS Lambda 函数,该函数将以控制台消息的形式显示文件已上传的输出。上传文件后,用户将能够在 Cloudwatch 日志中看到消息。

解释示例流程的框图如下所示-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第1张

创建 S3 存储桶

让我们首先使用下面给出的步骤在 AWS 控制台中创建一个 s3 存储桶-

步骤 1

转到 Amazon services 并单击存储部分中的 S3,如下图所示-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第2张

步骤 2

点击 S3 存储和 创建存储桶,这将存储上传的文件。

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第3张

步骤 3

点击 创建存储桶按钮后,您可以看到如下屏幕-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第4张

步骤 4

输入详细信息 存储桶名称,选择区域并单击左下角的 创建按钮。因此,我们创建了名称为: workingwithlambdaands3.

的存储桶 将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第5张

步骤 5

现在,单击存储桶名称,它会要求您上传文件,如下所示-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第6张

这样,我们就完成了 S3 中存储桶的创建。

创建适用于 S3 和 Lambda 的角色

要创建适用于 S3 和 Lambda 的角色,请按照下面给出的步骤操作-

步骤 1

转到 AWS 服务并选择 IAM,如下所示-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第7张

步骤 2

现在,单击 IAM-> 角色,如下所示-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第8张

步骤 3

现在,点击 创建角色并选择将使用该角色的服务。选择 Lambda 并点击 权限按钮。

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第9张

步骤 4

从下方添加权限并点击 查看。

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第10张

步骤 5

注意我们选择了以下权限-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第11张

观察我们选择的策略是 AmazonS3FullAccess、AWSLambdaFullAccess 和 CloudWatchFullAccess。

步骤 6

现在,输入角色名称、角色描述并点击底部的 创建角色按钮。

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第12张

因此,我们创建了名为 lambdawiths3service 的角色。

创建 Lambda 函数并添加 S3 触发器

在本节中,让我们看看如何创建 Lambda 函数并向其添加 S3 触发器。为此,您必须遵循下面给出的步骤-

步骤 1

转到 AWS 服务并选择 Lambda,如下所示-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第13张

步骤 2

单击 Lambda 并按照添加 名称 的过程进行操作。选择 运行时、角色等并创建函数。我们创建的 Lambda 函数显示在下面的屏幕截图中-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第14张

步骤 3

现在让我们添加 S3 触发器。

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第15张

步骤 4

从上面选择触发器并添加如下所示的详细信息-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第16张

步骤 5

从存储桶下拉列表中选择创建的存储桶。事件类型具有以下详细信息-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第17张

选择 Object Created (All),因为我们在上传、删除文件等时需要AWS Lambda触发器。

步骤 6

您可以添加前缀和文件模式,用于过滤添加的文件。例如,仅针对 .jpg 图像触发 lambda。让我们暂时将其留空,因为我们需要为所有上传的文件触发 Lambda。点击 添加按钮添加触发器。

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第18张

步骤 7

您可以找到如下所示的 Lambda 函数的触发器显示-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第19张

让我们添加 aws lambda 函数的详细信息。在这里,我们将使用在线编辑器添加我们的代码,并使用 nodejs 作为运行环境。

步骤 8

要使用 AWS Lambda 触发 S3,我们必须在代码中使用 S3 事件,如下所示-

 

 

exports.handler = function(event, context, callback) {
   console.log("Incoming Event: ", event);
   const bucket = event.Records[0].s3.bucket.name;
   const filename = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, " "));
   const message = `File is uploaded in-${bucket}-> ${filename}`;
   console.log(message);
   callback(null, message);
}; 

 

 

请注意,事件参数包含 S3 事件的详细信息。我们已经设置了存储桶名称和文件名,当您在 S3bucket 中上传图像时将记录这些文件名。

步骤 9

现在,让我们保存更改并使用 S3upload 测试 lambda 函数。以下是 AWS Lambda 中添加的代码详细信息-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第20张

步骤 10

现在,让我们添加角色、内存和超时。

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第21张

第 11 步

现在,保存 Lambda 函数。从 Amazon 服务打开 S3 并打开我们之前创建的存储桶,即 workingwithlambdaands3。

上传图片如下所示-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第22张

第 12 步

点击 上传按钮添加文件,如图所示-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第23张

第 13 步

点击 添加文件来添加文件。您也可以拖放文件。现在,点击 上传按钮。

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第24张

因此,我们在 S3 存储桶中上传了一张图片。

第 14 步

要查看触发器详细信息,请转到 AWS 服务并选择 CloudWatch。打开 Lambda 函数的日志并使用以下代码-

 

 

exports.handler = function(event, context, callback) {
   console.log("Incoming Event: ", event);
   const bucket = event.Records[0].s3.bucket.name;
   const filename = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g, " "));
   const message = `File is uploaded in-${bucket}-> ${filename}`;
   console.log(message);
   callback(null, message);
}; 

 

 

您可以在 Cloudwatch 中观察到的输出如图所示-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第25张

当文件上传到 S3 存储桶并且详细信息记录在 Cloudwatch 中时触发 AWS Lambda 函数,如下所示-

将 AWS Lambda 函数与 Amazon S3 结合使用的步骤  第26张

作为AWS顶级代理商,选择天.下.数.据的优势

1、专属客服协助注册AWS,或提供注册好的账号直接使用

2、支持收U等多币种支付代付,无额外服务费用

3、AWS多种产品类型,更高产品租赁权限

4、针对大客户,AWS专属折扣优惠

5、7x24小时专属客服,在线解答各种疑问

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo6@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram