- AWS Lambda - Additional Example
- Monitoring and TroubleShooting using Cloudwatch
- AWS Lambda@Edge with CloudFront
- Lambda Function with Custom User Applications
- Lambda Function with Amazon Kinesis
- Lambda Function with CloudTrail
- Lambda Function with Amazon SNS
- Lambda Function with Scheduled Events
- Lambda Function with Amazon DynamoDB
- Lambda Function with Amazon S3
- Working with Amazon API Gateway
- Deleting Lambda Function
- AWS Executing & Invoking Lambda Function
- Creating & Deploying using Serverless Framework
- Creating & Deploying using AWS CLI
- Creating & Deploying using AWS Console
- Configuring Lambda Function
- Function in C#
- Function in Go
- Function in Python
- Function in Java
- Function in NODEJS
- Building the Lambda function
- AWS Lambda - Introduction
- AWS Lambda - Environment Setup
- AWS Lambda - Overview
- AWS Lambda - Home
AWS Lambda Useful resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Building the Lambda Function
AWS Lambda function executes a code when it is invoked. This chapter discusses all these steps involved in the pfe cycle of AWS Lambda function in detail.
Steps for Building a Lambda function
The pfecycle of Lambda function includes four necessary steps −
Authoring
Deploying
Monitoring
Troubleshooting
Authoring Lambda Code
AWS Lambda function code can be written in following languages −
NodeJS
Java,
Python
C#
Go.
We can write code for AWS Lambda using the AWS console, AWS CLI, from Ecppse IDE, from Visual Studio IDE, serverless framework etc.
The following table shows a pst of languages and the different tools and IDE that can be used to write the Lambda function −
Language | IDE for Authoring Lambda Code |
---|---|
NodeJS | AWS Lambda Console Visual Studio IDE |
Java | Ecppse IDE |
Python | AWS Lambda Console |
C# | Visual Studio IDE .NET core |
Go | AWS Lambda Console |
Deploying Lambda Code
Once you decide the language you want to write the Lambda function, there are two ways to deploy the code −
Directly write the code in AWS console
Zip or jar the files with all the files and dependencies
However, remember that proper permission has to given to be given to the zip file.
Testing Lambda Code
Lambda Code can be tested for events inside the AWS Lambda console. It is also possible to test the Lambda function from the AWS cp and serverless cp. AWS console has also event data which can be used as sample events while testing AWS Lambda function.
Monitoring Lambda function
Monitoring of Lambda function can be done using the AWS CloudWatch. We can add necessary log messages in languages we choose and see the same in AWS CloudWatch.
To start writing Lambda function, there is pattern to be followed. The following are the main core concepts to be followed for writing a Lambda function −
Handler
Handler is a name of the AWS lambda function from where the execution starts. It appears in AWS console as shown below −
Notice that here we have changed the default handler to another name and updated the same in the Handler −
Note that the way a handler is called differs from the languages selected as runtime.
Params passed to handler
If you observe the handler function, the params passed are event, context and call back function as shown below −
Event parameter has all the details for the trigger used.
Context parameter basically takes care of runtime details for the Lambda function to execute. We can interact with the Lambda function using the context param. It has the details pke the time left before AWS Lambda terminates a function i.e, timeout specified while creating Lambda function, name of the Lambda function, cloudwatch group name, arn details etc.
Example
Let us understand the details obtained from AWS Lambda context object with the help of an example −
exports.lambdahandler = (event, context, callback) => { // TODO implement console.log("context object details"); console.log(JSON.stringify(context)); callback(null, Lambda test ); };
When you execute the Lambda function shown above, you can see the following output −
Output
The context details are given as follows −
{ "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" }
Observe that it has details pke functionName, memorypmit, requestId etc.
Logging
The logs added inside the Lambda function are displayed in AWS CloudWatch when the AWS function executes. The logs syntax will vary from the language selected. For Example in nodejs, it is console.log.
This is the output you can see in AWSCloudWatch −
Error Handpng
AWS Lambda function provides a callback function which is used to notify to the Lambda function that an error or success has happened. Note that here we have used nodejs as the runtime. The error handpng will differ as per the language selected.
Observe the Example given here for a better understanding −
exports.lambdahandler = (event, context, callback) => { // TODO implement var error = new Error("There is error in code"); callback(error); };
Output
When you test the Lambda code, you can find the output as shown below −
The log details as follows −
Advertisements