AWS Lambda教程

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 代码,您可以查看 蓝图并开始使用。
第三个选项 Serverless Application Repository 设置了无服务器应用程序,这将有助于部署 AWS Lambda 代码。
在进一步的讨论中,我们将研究第一个选项,即使用 从头开始编写来创建 AWS lambda 函数。
在我们创建 Lambda 函数之前,需要一个角色,即使用 AWS 服务和 aws lambda 的权限。稍后必须将角色分配给 aws lambda 函数。

在 AWS 控制台中创建角色

要在 AWS 控制台中创建角色,请转到 AWS 控制台服务并单击 IAM,如下所示-
角色创建
现在,如果您单击 IAM,您将看到如下所示的屏幕-
仪表板
如果您选择 角色,您可以在屏幕上看到以下按钮-
创建角色按钮
现在,点击 创建角色。它会要求您选择需要使用创建的角色的服务。
创建角色服务
由于我们需要将此角色用于 AWS Lambda,选择 Lambda 并单击 Next:Permissions 按钮,如上所示。下一个屏幕显示根据 AWS 服务可用的策略名称。您可以从这里选择政策-
附加权限策略
例如,如果您想要 AWS Lambda 与 S3 和 DynamoDB 一起使用的权限,您需要选择策略。在搜索框中,输入 AWS 服务并单击复选框。您可以选择多个策略,然后点击 Next:Review
您也可以创建自己的策略。例如,有一个 dynamodb 表,你只需要给那个表授予权限,在这种情况下你可以创建策略。
点击 创建政策按钮,如上图所示。以下是屏幕上显示的详细信息。
创建策略
选择您要为其创建策略的 服务。稍后它将显示操作、 资源请求条件 的数据。
请求条件
现在,我们应该选择服务。让我们从搜索中选择 AWS DynamodbActions 具有以下详细信息-
AWS Dynamodb
现在,输入您要授予 DynamoDB 的 访问级别。然后, resources 将显示以下详细信息-
resources
现在,选择表资源类型。您可以看到以下输出-
表资源
对于表的权限,您需要 添加 ARN。 ARN 是 AWS DynamoDB 中创建的表独有的详细信息。在 dynamodb 中创建表时,您将获得详细信息。
如果您单击 添加 ARN,它将显示以下详细信息-
添加 ARN
现在,如果您输入 ARN区域、帐户 名称将被填充。您应该单击 添加 按钮来添加策略。同样,您可以为其他服务创建策略。
角色描述
在这里,我们选择了两个策略 AmazonS3FullAccessAmazonDynamoDBFullAccess。我们已授予该角色对 S3 和 DynamoDB 的完全访问权限。但是,建议您只授予必要的存储区和表的权限。
您可以按照前面讨论的步骤使用 ARN 创建策略。

步骤 1

点击 创建角色按钮来创建角色。所有创建的角色都显示如下-
创建角色显示

步骤 2

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

步骤 3

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

步骤 4

您可以选择您选择的运行时并按所示进行操作。
Choice Proceed
Role 下拉菜单有以下选项-
选择现有角色- 这将显示在 IAM 角色中创建的所有角色。 从模板创建新角色- 这将允许您创建角色并显示为该角色选择的权限。观察屏幕截图以更好地理解。 创建自定义角色- 这允许用户创建我们之前讨论过的策略。

步骤 5

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

AWS Lambda 函数的部分

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

配置

以下功能包含在配置中。
添加触发器
需要添加到 AWS Lambda 函数的触发器显示如下-
添加触发器
请注意,当我们选择一个触发器时,我们需要为该触发器添加配置详细信息。对于 S3 触发器的示例,我们需要选择存储桶名称;对于 Dynamodb 触发器,我们需要选择表名。

示例

让我们看一个 S3 触发器的配置细节示例-
配置
现在,添加 S3 触发器的配置详细信息-
配置详细信息
在这里,您需要选择要触发 Lambda 的 存储桶名称、事件类型、前缀和过滤器模式(如果有)以及 添加触发器。

在 Lambda 中添加代码

现在,我们应该专注于要编写的 Lambda 代码。要在 aws lambda 中添加代码,有三个选项-
使用内联编辑器 使用 .zip 文件 从 Amazon S3 上传文件
它显示在下面给出的屏幕截图中-
Screenshot
让我们详细讨论它们。
使用内联编辑器
您可以编写代码的内联代码编辑器如下-
inline_editor
您可以通过选择您选择的语言来编写代码。您可以在此处再次选择运行时。
观察以下屏幕截图以更好地理解-
运行时菜单
代码必须写在 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 服务来发送详细信息。可用选项为 无、SNSSQS
调试和错误处理

并发

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

审计与合规

这包含在 AWS CloudTrail 的帮助下管理的日志。
审计与合规
完成后,您需要使用"保存"按钮保存更改,如下所示-
保存按钮.jpg
现在,如果您单击 Test 按钮,它将要求一个测试事件。您可以通过以下示例测试事件-
创建的测试事件如下所示-
配置测试事件
现在,保存测试事件并单击测试按钮以查看 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 函数的执行详情。图表显示了执行时间、发生的错误等的详细信息。
Monitoring
您也可以在 Cloudwatch 中查看日志。为此,请转到 AWS 服务并选择 cloudwatch,如图所示-
管理工具
现在,从左侧选择日志并在过滤器中输入您的函数名称-
云监视
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4