AWS Lambda – 简介


AWS Lambda 是一项无需任何服务器即可计算代码的服务。据说这是无服务器计算。该代码是根据 AWS 服务中的事件响应执行的,例如在 S3 存储桶中添加/删除文件、更新 Amazon DynamoDBtables、来自 Amazon Api 网关的 HTTP 请求等。

AWS Lambda 代码可以用 NodeJS、Java、C#、Python 和 Go 编写。本章将详细讨论在AWS控制台中创建AWS Lambda函数。

AWS 控制台

通过链接https://aws.amazon.com/console登录 AWS 控制台。登录后,它会将您重定向到显示 AWS 服务的屏幕。

AWS 控制台

示例:创建函数

让我们借助示例来了解 AWS 控制台的功能。单击 Lambda(如上标记),它将重定向到创建函数,如下所示 -

创建函数

单击创建功能按钮,屏幕显示以下详细信息 -

创建功能显示

请注意,默认情况下,该选项是从头开始创作。此选项允许您从头开始编写 Lambda 代码。它只有一个带有hello world消息的简单函数。

第二个选项蓝图具有以下详细信息。

蓝图

它以 AWS Lambda 可用的语言提供了已为某些 aws 服务编写的代码的详细信息。如果您需要为任何服务编写 AWS Lambda 代码,您可以检查蓝图并开始使用。

第三个选项无服务器应用程序存储库具有无服务器应用程序的设置,这将有助于部署 AWS Lambda 代码。

在进一步的讨论中,我们将研究第一个选项,即使用Author from scrap来创建 AWS lambda 函数。

在我们创建 Lambda 函数之前,需要一个角色,即使用 AWS 服务和 aws lambda 的权限。稍后必须将角色分配给 aws lambda 函数。

在 AWS 控制台中创建角色

要在 AWS 控制台中创建角色,请转到 AWS 控制台服务并单击 IAM,如下所示 -

角色创建

现在,如果您单击IAM,您将看到如下所示的屏幕 -

仪表板

如果您选择Roles,您可以在屏幕上看到以下按钮 -

创建角色按钮

现在,单击创建角色。它将要求您选择需要使用创建的角色的服务。

创建角色服务

由于我们需要将此角色与 AWS Lambda 一起使用,因此选择Lambda并单击下一步:权限按钮,如上所示。下一个屏幕显示根据 AWS 服务可用的策略名称。您可以从这里选择政策 -

附加权限策略

例如,如果您希望 AWS Lambda 能够与 S3 和 DynamoDB 配合使用,则需要选择策略。在搜索框中,输入 AWS 服务并单击复选框。您可以选择多个策略,然后单击“下一步:审核”

也可以创建您自己的策略。例如,有一个 dynamodb 表,您只需授予该表权限,在这种情况下您可以创建策略。

单击创建策略按钮,如上面的屏幕所示。以下是屏幕上显示的详细信息。

创建政策

选择您要为其创建策略的服务。稍后它将显示操作、资源请求条件的数据。

请求条件

现在,我们应该选择服务。让我们从搜索中选择AWS Dynamodb操作有以下详细信息 -

AWS 动态数据库

现在,输入您想要给予 DynamoDB 的访问级别。然后,资源将显示以下详细信息 -

资源

现在,选择表资源类型。您可以看到以下输出 -

表资源

对于表的权限,您需要添加 ARN。ARN 是在 AWS DynamoDB 中创建的表所特有的详细信息。当在 dynamodb 中创建表时,您将获得详细信息。

如果您单击添加 ARN,它将显示以下详细信息 -

添加 ARN

现在,如果您输入ARN区域,则会填充账户和表名称。您应该单击“添加”按钮来添加策略。同样,您可以为其他服务创建策略。

角色描述

在这里,我们选择了两个策略AmazonS3FullAccessAmazonDynamoDBFullAccess。我们已授予该角色对 S3 和 DynamoDB 的完全访问权限。但是,建议您仅向必要的存储桶和表授予权限。

您可以按照前面讨论的步骤使用ARN创建策略。

步骤1

单击“创建角色”按钮创建角色。所有创建的角色都显示如下 -

创建角色显示

第2步

请注意,如果您需要对创建的角色进行任何修改,您可以选择所需的角色。如果我们选择“从头开始创作”选项,则必须输入“名称”、“运行时”和“角色”

作者从头开始

步骤3

您可以在运行时下拉列表中观察以下详细信息-

运行

步骤4

您可以选择所需的运行时并如图所示继续。

选择继续

角色下拉菜单有以下选项 -

  • 选择现有角色 -这将显示在 IAM 角色中创建的所有角色。

  • 从模板创建新角色 -这将允许您创建角色并将显示为该角色选择的权限。观察屏幕截图以便更好地理解。

  • 创建自定义角色-这允许用户创建我们之前讨论的策略。

步骤5

选择运行时、角色并添加函数。单击“创建函数”按钮来创建 lambda 函数。显示的下一个屏幕如下 -

创建功能按钮

AWS Lambda 函数的部分内容

AWS Lambda 函数有两个部分:配置监控。让我们详细讨论每一个。

配置

配置中包含以下功能。

添加触发器

需要添加到 AWS Lambda 函数的触发器显示如下 -

添加触发器

请注意,当我们选择触发器时,我们需要添加该触发器的配置详细信息。以S3触发器为例,我们需要选择bucket名称;对于 Dynamodb 触发器,我们需要选择表名称。

例子

让我们看一下 S3 触发器的配置详细信息示例 -

配置

现在,添加 S3 触发器的配置详细信息 -

配置详情

在这里,您需要选择存储桶名称、要触发 Lambda 的事件类型、前缀和过滤模式(如果有),然后添加触发器。

在 Lambda 中添加代码

现在,我们应该关注要编写的 Lambda 代码。要在 aws lambda 中添加代码,有三个选项 -

  • 使用内联编辑器
  • 使用 .zip 文件
  • 从 Amazon S3 上传文件

如下面的屏幕截图所示 -

截屏

让我们详细讨论它们中的每一个。

使用内联编辑器

您可以在其中编写代码的内联代码编辑器如下 -

内联编辑器

您可以通过选择您选择的语言来编写代码。您可以在此处再次选择运行时。

请观察以下屏幕截图以更好地理解 -

运行时菜单

代码必须写在index.js.Handler中。详细信息将根据运行时间而有所不同。对于nodejs,它是filename.export函数,现在是index.lambda处理程序

上传 .ZIP 文件

您可以先编写代码,将其压缩,然后选择“上传 .ZIP 文件”来上传 zip 文件。

从 Amazon S3 上传文件

您可以将文件上传到 S3 存储桶中,然后选择选项从 Amazon S3 上传文件

请注意,对于.ZIPS3,无法更改运行时。

环境变量

它们接收键值对并与 AWS Lambda 代码共享。我们可以使用 AWS Lambda 中的环境变量来存储数据库连接详细信息、文件详细信息以存储输出、日志文件详细信息等。

环境变量

标签

它们是添加到 AWS Lambda 的键值对,以便在跨不同区域使用时更好地组织函数。对于简单的用例,这不是必需的。当创建大量 Lambda 函数时,标记有助于过滤和管理 Lambda 函数。

标签

执行角色

如果在创建 Lambda 函数时未正确完成,您可以在此处再次更改角色。您可以在此处更新或创建新角色。它提供了与创建 Lambda 函数开始时显示的选项相同的选项。

执行角色

基本设置

您需要在此处输入 Lambda 函数正在执行的操作的简短描述。选择 Lambda 函数所需的内存和超时。

基本设置

网络

这允许您选择 VPC,从而允许您从 VPC 访问 Lambda 函数。默认情况下,未选择任何VPC。

网络

调试和错误处理

对于调试和错误处理,您可以选择 AWS 服务发送详细信息。可用选项有None、SNSSQS

调试和错误处理

并发性

这允许您为此函数分配允许的并发执行的特定限制。

并发性

审计与合规

其中包含在 AWS CloudTrail 的帮助下管理的日志。

审计与合规

完成后,您需要使用“保存”按钮保存更改,如下所示 -

保存按钮.jpg

现在,如果您单击测试按钮,它将要求测试事件。您可以通过示例测试事件,如下所示 -

创建的测试事件如下所示 -

配置测试事件

现在,保存测试事件并单击测试按钮以查看 AWS Lambda 函数的执行情况 -

执行结果

index.js的代码如下 -

exports.lambdahandler = (event, context, callback) => {
   // TODO implement
   console.log(event.key1);
   console.log(event.key2);
   console.log(event.key3);
   callback(null, 'Lambda test');
};

请注意,当出现错误或成功时,将调用回调函数。如果成功,您可以看到将显示Lambda 测试。

监控

选择监控选项卡可以查看Lambda函数的执行详细信息。图表显示了执行时间、发生的错误等详细信息。

监控

您还可以在 Cloudwatch 中查看日志。为此,请转到 AWS 服务并选择 cloudwatch,如下所示 -

管理工具

现在,从左侧选择日志并在过滤器中输入您的函数名称 -

云观看