DEV Community

Filip pettersson
Filip pettersson

Posted on • Edited on

Simply: AWS lambda

λ What is AWS lambda?

With AWS lambda we can write code and execute it without caring about configuring servers.

λ Why should I use it?

It enables you to quickly develop business relevant code and deliver value for your customers and stakeholders

λ How do I start?

First you're gonna need an AWS account, follow this guide.

🛠️Creating our first lambda

From the AWS console head to Services and search for Lambda select the first option
Imgur
Click Create Function
Imgur
Enter your name for the lambda and select runtime (i'm going with Node.js) Leave everything else default
Imgur

⌨️ Writing code

When your lambda is created you'll be taken to that lambdas page where you can see and setup lots of information and options about your lambda, let's not worry to much about that right now and just scroll down to "Function Code"
Imgur
Using the inline editor (you are of course able to write code with any IDE you want and deploy it to AWS but i'll cover that in another post) let's enter some code, this is what I used

exports.handler = async (event) => {
    console.log('event', event);

    // initiate animals array
    const animals = ['cat', 'dog', 'tardigrade'];

    // get input
    const input = JSON.parse(event.body).input;

    // concatinate animals with input
    concatAnimalsInput(animals, input)

    // create a response object and return it
    const response = {
        statusCode: 200,
        body: JSON.stringify(animals),
    };
    return response;
};

const concatAnimalsInput = (animals, input) => {
    if(typeof input === 'string') {
        animals.push(input);
    } else {
        animals = animals.concat(input);
    }
}

Imgur

🐦 Testing our code

At the top of the screen click configure test event and create an event to execute the function with
Imgur
The event in JSON format
Imgur
Hit Create and finally click the "Test" button
Imgur
After its execution you'll see the result and the output by clicking Details in the green result box, you can also click (logs) to enter CloudWatch Logs and get a better look into all executions of your lambda
Imgur

🎉 Good Job!

You've just created a lambda and the possibilities with it are endless, in future posts I'll discuss how we can connect an API to our lambda via API Gateway and how we can store our data in the NoSQL database DynamoDB

λ Discussion

💰What about the price?

With Lambda the first million requests each month are alway free after that you pay $0.20 per 1M requests and $0.0000166667 for every GB-second, read more here. Lambda is usually used together with other AWS services that might also incur cost such as Cloudwatch logs which we touched upon in this post, Cloudwatch logs also offer a free tier, 5GB of Log Data Ingestion and 5GB of Log Data Archive, which means nothing we did in this post will result in any cost even if you do no cleanup.
Read more about the economics of cloud here "Cloud is expensive"

I don't want to use the inline code editor!

Great, me neither, I suggest as a first step either looking into exporting your code to zip and uploading to the lambda
Imgur
or exploring the Serverless framework, a tool that makes it easy to deploy serverless application such as Lambda!

If you liked this guide please consider reading my latest one about DynamoDb, written in the same way as this one, you can find it here

👨‍💻 Contact me

Questions? Thoughts?
Twitter: @tqfipe
Linkedin: Filip Pettersson

Top comments (0)