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控制台的功能.单击Lambda(上面标记),它将重定向到创建函数,如下所示 :
单击创建功能按钮,屏幕显示以下详细信息 :
请注意,默认情况下,该选项是从头开始编写.此选项允许您从头开始编写Lambda代码.它只有一个带有 hello world 消息的简单函数.
第二个选项蓝色打印具有以下细节.
它提供了已为某些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 . 操作具有以下详细信息 :
现在,输入您要提供给DynamoDB的访问级别.然后,资源将显示以下详细信息 :
现在,选择表资源类型.您可以看到以下输出 :
获取许可在桌面上,您需要添加ARN . ARN是AWS DynamoDB中创建的表所特有的详细信息.在dynamodb中创建表格时,您将获得详细信息.
如果单击添加ARN ,它将显示以下详细信息 :
现在,如果您输入 ARN 并且将填充区域,帐户和表名称.您应该单击添加按钮添加策略.同样,您可以为其他服务创建策略.
在这里,我们选择了两个策略 AmazonS3FullAccess 和 AmazonDynamoDBFullACcess .我们已授予该角色对S3和DynamoDB的完全访问权限.但是,建议您仅授予必要的存储桶和表格权限.
您可以按照前面讨论的步骤使用 ARN 创建策略.
步骤1
单击创建角色按钮创建角色.创建的所有角色显示为 :
步骤2
请注意,您可以选择所需的角色,只需要对创建的角色进行任何修改.如果我们选择从头创作选项,您必须输入名称,运行时和角色.
第3步
您可以在运行时下拉&减去;
第4步
您可以选择所选的运行时间并按照所示进行操作.
角色下拉列表包含以下选项 :
选择现有角色 : 这将显示在IAM角色中创建的所有角色.
从模板创建新角色(s) : 这将允许您创建角色并显示为该角色选择的权限.观察屏幕截图以便更好地理解.
创建自定义角色 : 这允许用户创建我们之前讨论的策略.
第5步
选择运行时,角色和添加功能.单击创建功能按钮以创建lambda函数.显示的下一个屏幕如下 :
AWS Lambda函数的一部分
AWS Lambda函数有两部分:配置和监控.让我们详细讨论每一个.
配置
配置中包含以下功能.
添加触发器
添加到AWS Lambda函数所需的触发器显示如下 :
请注意,当我们选择触发器时,我们需要添加该触发器的配置详细信息.对于S3触发器的示例,我们需要选择桶名称;对于Dynamodb触发器,我们需要选择表名.
示例
让我们看一个S3触发器的配置细节示例 :
现在,添加S3触发器的配置详细信息add :
在这里你需要选择桶名称,事件类型,您要在其上触发Lambda,前缀和过滤模式(如果有)和添加触发器.
在Lambda中添加代码
现在,我们应该关注要编写的Lambda代码.要在aws lambda中添加代码,有三个选项 :
使用内联编辑器
使用.zip文件
从Amazon S3上传文件
它显示在下面给出的屏幕截图中 :
让我们详细讨论它们.
使用内联编辑器
您可以在其中编写代码的内联代码编辑器如下 :
您可以通过选择所选语言来编写代码.您可以在此处再次选择运行时.
观察以下屏幕截图以便更好地理解和减去;
代码必须用 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函数.
执行角色
如果在创建Lambda函数开始时没有正确完成,您可以在此处再次更改角色.您可以在此处更新或创建新角色.它提供了在创建Lambda函数开始时显示的相同选项.
基本设置
在这里,您需要输入Lambda函数正在执行的操作的简短描述.选择Lambda函数所需的内存和超时.
网络
这允许您选择允许您从VPC访问Lambda函数的VPC.默认情况下,没有选择VPC.
调试和错误处理
对于调试和错误处理,您可以选择AWS服务来发送详细信息.可用选项是无,SNS 和 SQS .
并发
这允许您为此函数分配特定的并发执行限制.
审核与合规性
这包含日志这些是在AWS CloudTrail的帮助下管理的.
完成后,您需要使用Save按钮保存更改,如下所示 :
现在,如果单击测试按钮,它将要求测试事件.您可以按如下方式传递示例测试事件;
创建的测试事件如下所示 :
现在,保存测试事件并单击测试按钮以查看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如图所示 :
现在,从左侧选择日志并在过滤器中输入您的函数名称 :