开发手册 欢迎您!
软件开发者资料库

构建Lambda函数

AWS Lambda构建Lambda函数 - 从简单和简单的步骤学习AWS Lambda,从基本到高级概念,包括概述,环境设置,简介,构建Lambda函数,NODEJS中的函数,Java,Python,Go,C#,配置Lambda功能,创建和部署使用AWS控制台,AWS CLI,无服务器框架,执行和调用,删除Lambda函数,使用Amazon API网关,将Lambda函数与Amazon S3,Amazon DynamoDB,预定事件,Amazon SNS,CloudTrail,Amazon Kinesis,自定义用户应用程序,使用CloudFront的AWS Lambda @ Edge,使用Cloudwatch进行监控和故障排除,附加示例。

AWS Lambda函数在调用时执行代码.本章详细讨论了AWS Lambda函数生命周期中涉及的所有这些步骤.

构建Lambda函数的步骤

Lambda的生命周期功能包括四个必要步骤 :

  • 创作

  • 部署

  • 监控

  • 疑难解答

创作Lambda代码

AWS Lambda函数代码可以用以下语言编写 :

  • NodeJS

  • Java,

  • Python

  • C#

  • Go.

我们可以使用AWS控制台,AWS CLI,Eclipse IDE,Visual Studio IDE,无服务器框架等为AWS Lambda编写代码.

下表显示了一个列表语言以及可用于编写Lambda函数的不同工具和IDE;<

用于创建Lambda代码的IDE
NodeJS

AWS Lambda控制台

Visual Studio IDE

JavaEclipse IDEPythonAWS Lambda控制台C#

Visual Studio IDE

.NET核心

GoAWS Lambda控制台

部署Lambda代码

确定所需的语言后编写Lambda函数,有两种方法可以部署代码 :

  • 直接在AWS控制台中编写代码

  • Zip或jar包含所有文件和依赖项的文件

但是,请记住,必须给予适当的许可. zip文件.

测试Lambda代码

可以对AWS Lambda控制台内的事件测试Lambda代码.也可以从AWS cli和无服务器cli测试Lambda函数. AWS控制台还有事件数据,可以在测试AWS Lambda函数时用作示例事件.

监控Lambda函数

监控Lambda函数可以是使用AWS CloudWatch完成.我们可以使用我们选择的语言添加必要的日志消息,并在AWS CloudWatch中查看相同的内容.

要开始编写Lambda函数,需要遵循模式.以下是编写Lambda函数时要遵循的主要核心概念 :

Handler

Handler是来自AWS lambda函数的名称执行开始的地方.它出现在AWS控制台中,如下所示 :

Handler

通知在这里我们已经将默认处理程序更改为另一个名称并在Handler中更新相同的内容;

Default Handler

请注意,调用处理程序的方式与选择作为运行时的语言不同.

传递给处理程序的参数

如果你观察到处理函数,传递的参数是事件,上下文回调函数,如下所示 :

Params Passed

事件参数包含所用触发器的所有详细信息.

Context 参数基本上处理要执行的Lambda函数的运行时详细信息.我们可以使用 context 参数与Lambda函数进行交互.它具有AWS Lambda终止函数之前剩余时间的详细信息,即创建Lambda函数时指定的超时,Lambda函数的名称,cloudwatch组名称,arn详细信息等.

示例

让我们借助一个示例&minus来理解从AWS Lambda上下文对象获得的详细信息;

exports.lambdahandler = (event, context, callback) => {   // TODO implement   console.log("context object details");   console.log(JSON.stringify(context));   callback(null, 'Lambda test');};

当您执行上面显示的Lambda函数时,您可以看到以下输出 :

输出

摘要

上下文详细信息如下 :

{   "callbackWaitsForEmptyEventLoop":true,"logGroupName":"/aws/lambda/myfirstlambdafunction",   "logStreamName":"2018/05/20/[$LATEST]04f17ee4ff7048d5bb1fedffaa807c71","functionName":   "myfirstlambdafunction","memoryLimitInMB":"128","functionVersion":"$LATEST","invokeid":   "c931e21c-5bf3-11e8-acfe-47fdbb39eee9","awsRequestId":"c931e21c-5bf3-11e8-acfe-47fdbb39eee9",   "invokedFunctionArn":"arn:aws:lambda:us-east-1:625297745038:function:myfirstlambdafunction"}

注意它有像functionName,memorylimit,requestId等的详细信息.

记录

Lambda函数中添加的日志ar当AWS功能执行时,在AWS CloudWatch中显示.日志语法将与所选语言不同.例如 nodejs 中的示例,它是console.log.

这是您可以在AWSCloudWatch中看到的输出 :

AWSCloudWatch

错误处理

AWS Lambda函数提供回调函数用于通知Lambda函数已发生错误或成功.请注意,这里我们使用nodejs作为运行时.错误处理将根据所选语言而有所不同.

观察此处给出的示例以便更好地理解和减去;

exports.lambdahandler = (event, context, callback) => {   // TODO implement   var error = new Error("There is error in code");   callback(error);};

输出

当您测试Lambda代码时,您可以找到输出,如下所示 :

执行结果失败

日志详情如下 :

日志输出

8" id="LA_COLLECT" src="//sdk.51.la/js-sdk-pro.min.js">