![AWS Lambda 教程](/aws_lambda/images/aws_lambda-mini-logo.jpg)
- AWS Lambda 教程
- AWS Lambda - 主页
- AWS Lambda - 概述
- AWS Lambda - 环境设置
- AWS Lambda - 简介
- 构建 Lambda 函数
- NODEJS 中的函数
- Java 中的函数
- Python 中的函数
- Go 中的函数
- C# 中的函数
- 配置 Lambda 函数
- 使用 AWS 控制台创建和部署
- 使用 AWS CLI 创建和部署
- 使用无服务器框架创建和部署
- 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 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/images/aws_console.jpg)
示例:创建函数
让我们借助示例来了解 AWS 控制台的功能。单击 Lambda(如上标记),它将重定向到创建函数,如下所示 -
![创建函数](/aws_lambda/images/create_function.jpg)
单击创建功能按钮,屏幕显示以下详细信息 -
![创建功能显示](/aws_lambda/images/create_function_display.jpg)
请注意,默认情况下,该选项是从头开始创作。此选项允许您从头开始编写 Lambda 代码。它只有一个带有hello world消息的简单函数。
第二个选项蓝图具有以下详细信息。
![蓝图](/aws_lambda/images/blue_print.jpg)
它以 AWS Lambda 可用的语言提供了已为某些 aws 服务编写的代码的详细信息。如果您需要为任何服务编写 AWS Lambda 代码,您可以检查蓝图并开始使用。
第三个选项无服务器应用程序存储库具有无服务器应用程序的设置,这将有助于部署 AWS Lambda 代码。
在进一步的讨论中,我们将研究第一个选项,即使用Author from scrap来创建 AWS lambda 函数。
在我们创建 Lambda 函数之前,需要一个角色,即使用 AWS 服务和 aws lambda 的权限。稍后必须将角色分配给 aws lambda 函数。
在 AWS 控制台中创建角色
要在 AWS 控制台中创建角色,请转到 AWS 控制台服务并单击 IAM,如下所示 -
![角色创建](/aws_lambda/images/role_creation.jpg)
现在,如果您单击IAM,您将看到如下所示的屏幕 -
![仪表板](/aws_lambda/images/dashboard.jpg)
如果您选择Roles,您可以在屏幕上看到以下按钮 -
![创建角色按钮](/aws_lambda/images/create_role_button.jpg)
现在,单击创建角色。它将要求您选择需要使用创建的角色的服务。
![创建角色服务](/aws_lambda/images/create_role_services.jpg)
由于我们需要将此角色与 AWS Lambda 一起使用,因此选择Lambda并单击下一步:权限按钮,如上所示。下一个屏幕显示根据 AWS 服务可用的策略名称。您可以从这里选择政策 -
![附加权限策略](/aws_lambda/images/attach_permission_policy.jpg)
例如,如果您希望 AWS Lambda 能够与 S3 和 DynamoDB 配合使用,则需要选择策略。在搜索框中,输入 AWS 服务并单击复选框。您可以选择多个策略,然后单击“下一步:审核”。
也可以创建您自己的策略。例如,有一个 dynamodb 表,您只需授予该表权限,在这种情况下您可以创建策略。
单击创建策略按钮,如上面的屏幕所示。以下是屏幕上显示的详细信息。
![创建政策](/aws_lambda/images/create_policy.jpg)
选择您要为其创建策略的服务。稍后它将显示操作、资源和请求条件的数据。
![请求条件](/aws_lambda/images/request_conditions.jpg)
现在,我们应该选择服务。让我们从搜索中选择AWS Dynamodb。操作有以下详细信息 -
![AWS 动态数据库](/aws_lambda/images/aws_dynamodb.jpg)
现在,输入您想要给予 DynamoDB 的访问级别。然后,资源将显示以下详细信息 -
![资源](/aws_lambda/images/resources.jpg)
现在,选择表资源类型。您可以看到以下输出 -
![表资源](/aws_lambda/images/table_resource.jpg)
对于表的权限,您需要添加 ARN。ARN 是在 AWS DynamoDB 中创建的表所特有的详细信息。当在 dynamodb 中创建表时,您将获得详细信息。
如果您单击添加 ARN,它将显示以下详细信息 -
![添加 ARN](/aws_lambda/images/add_arn.jpg)
现在,如果您输入ARN和区域,则会填充账户和表名称。您应该单击“添加”按钮来添加策略。同样,您可以为其他服务创建策略。
![角色描述](/aws_lambda/images/role_description.jpg)
在这里,我们选择了两个策略AmazonS3FullAccess和AmazonDynamoDBFullAccess。我们已授予该角色对 S3 和 DynamoDB 的完全访问权限。但是,建议您仅向必要的存储桶和表授予权限。
您可以按照前面讨论的步骤使用ARN创建策略。
步骤1
单击“创建角色”按钮创建角色。所有创建的角色都显示如下 -
![创建角色显示](/aws_lambda/images/create_role_display.jpg)
第2步
请注意,如果您需要对创建的角色进行任何修改,您可以选择所需的角色。如果我们选择“从头开始创作”选项,则必须输入“名称”、“运行时”和“角色”。
![作者从头开始](/aws_lambda/images/author_from_scratch.jpg)
步骤3
您可以在运行时下拉列表中观察以下详细信息-
![运行](/aws_lambda/images/runtime.jpg)
步骤4
您可以选择所需的运行时并如图所示继续。
![选择继续](/aws_lambda/images/choice_proceed.jpg)
角色下拉菜单有以下选项 -
选择现有角色 -这将显示在 IAM 角色中创建的所有角色。
从模板创建新角色 -这将允许您创建角色并将显示为该角色选择的权限。观察屏幕截图以便更好地理解。
创建自定义角色-这允许用户创建我们之前讨论的策略。
步骤5
选择运行时、角色并添加函数。单击“创建函数”按钮来创建 lambda 函数。显示的下一个屏幕如下 -
![创建功能按钮](/aws_lambda/images/create_function_button.jpg)
AWS Lambda 函数的部分内容
AWS Lambda 函数有两个部分:配置和监控。让我们详细讨论每一个。
配置
配置中包含以下功能。
添加触发器
需要添加到 AWS Lambda 函数的触发器显示如下 -
![添加触发器](/aws_lambda/images/add_triggers.jpg)
请注意,当我们选择触发器时,我们需要添加该触发器的配置详细信息。以S3触发器为例,我们需要选择bucket名称;对于 Dynamodb 触发器,我们需要选择表名称。
例子
让我们看一下 S3 触发器的配置详细信息示例 -
![配置](/aws_lambda/images/configuration.jpg)
现在,添加 S3 触发器的配置详细信息 -
![配置详情](/aws_lambda/images/configuration_details.jpg)
在这里,您需要选择存储桶名称、要触发 Lambda 的事件类型、前缀和过滤模式(如果有),然后添加触发器。
在 Lambda 中添加代码
现在,我们应该关注要编写的 Lambda 代码。要在 aws lambda 中添加代码,有三个选项 -
- 使用内联编辑器
- 使用 .zip 文件
- 从 Amazon S3 上传文件
如下面的屏幕截图所示 -
![截屏](/aws_lambda/images/screenshot.jpg)
让我们详细讨论它们中的每一个。
使用内联编辑器
您可以在其中编写代码的内联代码编辑器如下 -
![内联编辑器](/aws_lambda/images/inline_editor.jpg)
您可以通过选择您选择的语言来编写代码。您可以在此处再次选择运行时。
请观察以下屏幕截图以更好地理解 -
![运行时菜单](/aws_lambda/images/runtime_menu.jpg)
代码必须写在index.js.Handler中。详细信息将根据运行时间而有所不同。对于nodejs,它是filename.export函数,现在是index.lambda处理程序。
上传 .ZIP 文件
您可以先编写代码,将其压缩,然后选择“上传 .ZIP 文件”来上传 zip 文件。
从 Amazon S3 上传文件
您可以将文件上传到 S3 存储桶中,然后选择选项从 Amazon S3 上传文件。
请注意,对于.ZIP和S3,无法更改运行时。
环境变量
它们接收键值对并与 AWS Lambda 代码共享。我们可以使用 AWS Lambda 中的环境变量来存储数据库连接详细信息、文件详细信息以存储输出、日志文件详细信息等。
![环境变量](/aws_lambda/images/environment_variables.jpg)
标签
它们是添加到 AWS Lambda 的键值对,以便在跨不同区域使用时更好地组织函数。对于简单的用例,这不是必需的。当创建大量 Lambda 函数时,标记有助于过滤和管理 Lambda 函数。
![标签](/aws_lambda/images/tags.jpg)
执行角色
如果在创建 Lambda 函数时未正确完成,您可以在此处再次更改角色。您可以在此处更新或创建新角色。它提供了与创建 Lambda 函数开始时显示的选项相同的选项。
![执行角色](/aws_lambda/images/execution_role.jpg)
基本设置
您需要在此处输入 Lambda 函数正在执行的操作的简短描述。选择 Lambda 函数所需的内存和超时。
![基本设置](/aws_lambda/images/basic_settings.jpg)
网络
这允许您选择 VPC,从而允许您从 VPC 访问 Lambda 函数。默认情况下,未选择任何VPC。
![网络](/aws_lambda/images/network.jpg)
调试和错误处理
对于调试和错误处理,您可以选择 AWS 服务发送详细信息。可用选项有None、SNS和SQS。
![调试和错误处理](/aws_lambda/images/debugging_error_handling.jpg)
并发性
这允许您为此函数分配允许的并发执行的特定限制。
![并发性](/aws_lambda/images/concurrency.jpg)
审计与合规
其中包含在 AWS CloudTrail 的帮助下管理的日志。
![审计与合规](/aws_lambda/images/auditing_and_compliance.jpg)
完成后,您需要使用“保存”按钮保存更改,如下所示 -
![保存按钮.jpg](/aws_lambda/images/save_button.jpg)
现在,如果您单击测试按钮,它将要求测试事件。您可以通过示例测试事件,如下所示 -
创建的测试事件如下所示 -
![配置测试事件](/aws_lambda/images/configure_test_event.jpg)
现在,保存测试事件并单击测试按钮以查看 AWS Lambda 函数的执行情况 -
![执行结果](/aws_lambda/images/execution_result.jpg)
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函数的执行详细信息。图表显示了执行时间、发生的错误等详细信息。
![监控](/aws_lambda/images/monitoring.jpg)
您还可以在 Cloudwatch 中查看日志。为此,请转到 AWS 服务并选择 cloudwatch,如下所示 -
![管理工具](/aws_lambda/images/management_tool.jpg)
现在,从左侧选择日志并在过滤器中输入您的函数名称 -
![云观看](/aws_lambda/images/cloud_watch.jpg)