AWS Lambda - 简介

AWS Lambda是一种无需任何服务器即可计算代码的服务.它被称为无服务器计算.代码基于AWS服务中事件的响应执行,例如添加/删除S3存储桶中的文件,更新Amazon DynamoDBtables,来自Amazon Api网关的HTTP请求等.

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

AWS控制台

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

AWS Console

示例:创建函数

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

创建函数

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

创建函数显示

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

第二个选项蓝色打印具有以下细节.

Blue Print

它提供了已为某些aws服务编写的代码的详细信息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 . 操作具有以下详细信息 :

AWS Dynamodb

现在,输入您要提供给DynamoDB的访问级别.然后,资源将显示以下详细信息 :

resources

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

Table ReSource

获取许可在桌面上,您需要添加ARN . ARN是AWS DynamoDB中创建的表所特有的详细信息.在dynamodb中创建表格时,您将获得详细信息.

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

添加ARN

现在,如果您输入 ARN 并且将填充区域,帐户名称.您应该单击添加按钮添加策略.同样,您可以为其他服务创建策略.

角色描述

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

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

步骤1

单击创建角色按钮创建角色.创建的所有角色显示为 :

创建角色显示

步骤2

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

作者来自Scratch

第3步

您可以在运行时下拉&减去;

运行时间

第4步

您可以选择所选的运行时间并按照所示进行操作.

Choice Proceed

角色下拉列表包含以下选项 :

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

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

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

第5步

选择运行时,角色和添加功能.单击创建功能按钮以创建lambda函数.显示的下一个屏幕如下 :

创建功能按钮

AWS Lambda函数的一部分

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

配置

配置中包含以下功能.

添加触发器

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

添加触发器

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

示例

让我们看一个S3触发器的配置细节示例 :

Configuration

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

配置详情

在这里你需要选择桶名称,事件类型,您要在其上触发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上传文件.

请注意,对于 .ZIP S3 将无法更改运行时.

环境变量

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

环境变量

标签

它们是添加到AWS Lambda的键值对,用于在不同地区使用时更好地组织功能.对于一个简单的用例,它不是必需的.当创建了大量Lambda函数时,标记有助于过滤和管理Lambda函数.

Tags

执行角色

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

执行角色

基本设置

在这里,您需要输入Lambda函数正在执行的操作的简短描述.选择Lambda函数所需的内存和超时.

基本设置

网络

这允许您选择允许您从VPC访问Lambda函数的VPC.默认情况下,没有选择VPC.

Network

调试和错误处理

对于调试和错误处理,您可以选择AWS服务来发送详细信息.可用选项是无,SNS SQS .

调试和错误处理

并发

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

Concurrency

审核与合规性

这包含日志这些是在AWS CloudTrail的帮助下管理的.

审核与合规

完成后,您需要使用Save按钮保存更改,如下所示 :

Save Button.jpg

现在,如果单击测试按钮,它将要求测试事件.您可以按如下方式传递示例测试事件;

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

配置测试事件

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

执行结果

index.js 的代码如下 :

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

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

监控

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

监控

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

管理工具

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

Cloud观看