
- AWS Lambda - Home
- AWS Lambda - Overview
- AWS Lambda - Environment Setup
- AWS Lambda - Introduction
- Building the Lambda function
- Function in NODEJS
- Function in Java
- Function in Python
- Function in Go
- Function in C#
- Configuring Lambda Function
- Creating & Deploying using AWS Console
- Creating & Deploying using AWS CLI
- Creating & Deploying using Serverless Framework
- AWS Executing & Invoking Lambda Function
- Deleting Lambda Function
- Working with Amazon API Gateway
- Lambda Function with Amazon S3
- Lambda Function with Amazon DynamoDB
- Lambda Function with Scheduled Events
- Lambda Function with Amazon SNS
- Lambda Function with CloudTrail
- Lambda Function with Amazon Kinesis
- Lambda Function with Custom User Applications
- AWS Lambda@Edge with CloudFront
- Monitoring and TroubleShooting using Cloudwatch
- AWS Lambda - Additional Example
Building the Lambda Function
AWS Lambda function executes a code when it is invoked. This chapter discusses all these steps involved in the life cycle of AWS Lambda function in detail.
Steps for Building a Lambda function
The lifecycle 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 Eclipse IDE, from Visual Studio IDE, serverless framework etc.
The following table shows a list 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 | Eclipse 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 cli and serverless cli. 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 like 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 like functionName, memorylimit, 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 Handling
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 handling 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 −
