- AWS Lambda 教程
- AWS Lambda - 首页
- AWS Lambda - 概述
- AWS Lambda - 环境设置
- AWS Lambda - 简介
- 构建 Lambda 函数
- Node.js 函数
- Java 函数
- Python 函数
- Go 函数
- C# 函数
- 配置 Lambda 函数
- 使用 AWS 管理控制台创建和部署
- 使用 AWS CLI 创建和部署
- 使用 Serverless Framework 创建和部署
- AWS 执行和调用 Lambda 函数
- 删除 Lambda 函数
- 使用 Amazon API Gateway
- Lambda 函数与 Amazon S3
- Lambda 函数与 Amazon DynamoDB
- Lambda 函数与计划事件
- Lambda 函数与 Amazon SNS
- Lambda 函数与 CloudTrail
- Lambda 函数与 Amazon Kinesis
- Lambda 函数与自定义用户应用程序
- AWS Lambda@Edge 与 CloudFront
- 使用 CloudWatch 进行监控和故障排除
- AWS Lambda - 附加示例
- AWS Lambda 有用资源
- AWS Lambda - 快速指南
- AWS Lambda - 有用资源
- AWS Lambda - 讨论
AWS Lambda 简介
AWS Lambda 是一种服务,它负责在没有服务器的情况下计算您的代码。它被称为无服务器计算。代码根据 AWS 服务中的事件响应执行,例如在 S3 存储桶中添加/删除文件、更新 Amazon DynamoDB 表格、来自 Amazon API Gateway 的 HTTP 请求等。
AWS Lambda 代码可以用 Node.js、Java、C#、Python 和 Go 编写。本章将详细介绍如何在 AWS 管理控制台中创建 AWS Lambda 函数。
AWS 管理控制台
通过以下链接登录 AWS 管理控制台 https://aws.amazon.com/console。登录后,它会将您重定向到显示 AWS 服务的屏幕。
示例:创建函数
让我们通过一个示例来了解 AWS 管理控制台的功能。单击 Lambda(如上所示),它将重定向到创建函数,如下所示:
单击创建函数按钮,屏幕将显示以下详细信息:
请注意,默认情况下,选项为从头开始创作。此选项允许您从头开始编写 Lambda 代码。它只有一个带有hello world消息的简单函数。
第二个选项蓝图具有以下详细信息。
它提供了已经为某些 AWS 服务编写的代码的详细信息,这些代码使用 AWS Lambda 提供的语言编写。如果您需要为任何服务编写 AWS Lambda 代码,可以在蓝图中检查并开始。
第三个选项无服务器应用程序存储库具有无服务器应用程序的设置,这将有助于部署 AWS Lambda 代码。
在接下来的讨论中,我们将使用从头开始创作选项来创建 AWS Lambda 函数。
在创建 Lambda 函数之前,我们需要一个角色,即与 AWS 服务和 AWS Lambda 协同工作的权限。稍后,该角色必须分配给 AWS Lambda 函数。
在 AWS 管理控制台中创建角色
要在 AWS 管理控制台中创建角色,请转到 AWS 管理控制台服务并单击 IAM,如下所示:
现在,如果您单击IAM,您将看到如下所示的屏幕:
如果您选择角色,您可以在屏幕上看到以下按钮:
现在,单击创建角色。它会要求您选择需要使用创建的角色的服务。
由于我们需要将此角色与 AWS Lambda 一起使用,因此选择Lambda并单击下一步:权限按钮,如上所示。下一个屏幕显示根据 AWS 服务可用的策略名称。您可以从此处选择策略:
例如,如果您希望 AWS Lambda 具有与 S3 和 DynamoDB 协同工作的权限,则需要选择策略。在搜索框中,输入 AWS 服务并单击复选框。您可以选择多个策略,然后单击下一步:审查。
也可以创建您自己的策略。例如,存在 DynamoDB 表,并且您只需要向该表授予权限,在这种情况下,您可以创建策略。
单击屏幕上显示的创建策略按钮。屏幕上显示以下详细信息。
选择您正在为其创建策略的服务。稍后,它将显示操作、资源和请求条件的数据。
现在,我们应该选择服务。让我们从搜索中选择AWS DynamoDB。操作具有以下详细信息:
现在,输入要授予 DynamoDB 的访问级别。然后,资源将显示以下详细信息:
现在,选择表资源类型。您可以看到以下输出:
要获得表权限,您需要添加 ARN。ARN 是在 AWS DynamoDB 中创建的表的唯一详细信息。在 DynamoDB 中创建表时,您将获得这些详细信息。
如果您单击添加 ARN,它将显示以下详细信息:
现在,如果您输入ARN,则区域、帐户和表名称将被填充。您应该单击添加按钮以添加策略。同样,您可以为其他服务创建策略。
在这里,我们选择了两个策略AmazonS3FullAccess和AmazonDynamoDBFullACcess。我们在该角色中授予了对 S3 和 DynamoDB 的完全访问权限。但是,建议您仅向必要的存储桶和表授予权限。
您可以按照前面讨论的步骤使用ARN创建策略。
步骤 1
单击创建角色按钮以创建角色。所有创建的角色都将显示如下:
步骤 2
请注意,如果您需要修改创建的角色,可以选择所需的角色。如果我们选择从头开始创作选项,则必须输入名称、运行时和角色。
步骤 3
您可以在运行时下拉菜单中观察以下详细信息:
步骤 4
您可以选择您选择的运行时并继续,如图所示。
角色下拉菜单具有以下选项:
选择现有角色 - 这将显示在 IAM 角色中创建的所有角色。
从模板创建新角色 - 这将允许您创建角色,并将显示为此角色选择的权限。观察屏幕截图以更好地理解。
创建自定义角色 - 这允许用户创建策略,如我们前面讨论的那样。
步骤 5
选择运行时、角色并添加函数。单击创建函数按钮以创建 Lambda 函数。显示的下一个屏幕如下所示:
AWS Lambda 函数的组成部分
AWS Lambda 函数有两个部分:配置和监控。让我们详细讨论每个部分。
配置
配置中包含以下功能。
添加触发器
需要添加到 AWS Lambda 函数的触发器如下所示:
请注意,当我们选择触发器时,我们需要为该触发器添加配置详细信息。例如,对于 S3 触发器,我们需要选择存储桶名称;对于 DynamoDB 触发器,我们需要选择表名称。
示例
让我们来看一个 S3 触发器配置详细信息的示例:
现在,为添加的 S3 触发器添加配置详细信息:
在这里,您需要选择要在其上触发 Lambda 的存储桶名称、事件类型、前缀和筛选模式(如有)以及添加触发器。
在 Lambda 中添加代码
现在,我们应该关注要编写的 Lambda 代码。要在 AWS Lambda 中添加代码,有三个选项:
- 使用内联编辑器
- 使用 .zip 文件
- 从 Amazon S3 上传文件
这在下面给出的屏幕截图中显示:
让我们详细讨论每一个。
使用内联编辑器
您可以编写代码的内联代码编辑器如下所示:
您可以通过选择您选择的语言来编写代码。您可以在此处再次选择运行时。
观察以下屏幕截图以更好地理解:
代码必须写在index.js.Handler中。详细信息将根据运行时而有所不同。对于Node.js,它是文件名.导出函数,现在是index.lambda handler。
上传 .ZIP 文件
您可以首先编写代码,将其压缩,然后通过选择上传 .ZIP 文件来上传 zip 文件。
从 Amazon S3 上传文件
您可以将文件上传到 S3 存储桶并选择从 Amazon S3 上传文件选项。
请注意,对于.ZIP和S3,将无法更改运行时。
环境变量
它们接收键值对并将它们与 AWS Lambda 代码共享。我们可以在 AWS Lambda 中使用环境变量来存储数据库连接详细信息、存储输出的文件详细信息、日志文件详细信息等。
标签
它们是添加到 AWS Lambda 的键值对,用于在跨不同区域使用时更好地组织函数。对于简单的用例,不需要它。当创建大量 Lambda 函数时,标签有助于过滤和管理 Lambda 函数。
执行角色
如果在创建 Lambda 函数开始时没有正确完成,您可以在此处再次更改角色。您可以在此处更新或创建新角色。它提供与创建 Lambda 函数开始时显示的相同选项。
基本设置
在这里,您需要输入 Lambda 函数正在执行的操作的简短描述。选择 Lambda 函数所需的内存和超时。
网络
这允许您选择 VPC,这将允许您从 VPC 访问 Lambda 函数。默认情况下,未选择任何 VPC。
调试和错误处理
对于调试和错误处理,您可以选择 AWS 服务来发送详细信息。可用的选项包括无、SNS和SQS。
并发
这允许您为该函数分配允许的并发执行的特定限制。
审计和合规性
这包含使用 AWS CloudTrail 管理的日志。
完成后,您需要使用此处显示的保存按钮保存更改:
现在,如果您单击测试按钮,它将要求提供测试事件。您可以传递示例测试事件,如下所示:
创建的测试事件如下所示:
现在,保存测试事件并单击测试按钮以查看 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,如下所示:
现在,从左侧选择日志,并在过滤器中输入您的函数名称: