loading...

3 Simple Serverless Beginner Project Ideas

loujaybee profile image Lou — Cloud Native Software Engineer Originally published at thedevcoach.co.uk on ・7 min read

Are you looking to learn Serverless but need a little help in where to start? One of the best ways to get your head around a new technology is to dive in and build some example projects. But what are some nice and simple serverless beginner projects?

Dayum Llama

In today’s article we’ll go through three different simple examples of serverless functions you can build using AWS Lambda for your first trial with serverless.

By the end of this article you should have an overview of three serverless beginner projects, the steps you’d need to create them, and some ways that you can later extend them to learn more.

Before we jump in I should note that this article will be specific to AWS and AWS Lambda. The ideas can be taken across to other cloud providers but I’ll focus mainly on AWS specific terminology for simplicities sake.

For each project i’ll give you the ideas, steps and a little inspiration, but the goal is not to give an in-depth tutorial of Serverless (that’d take a lot more than one article). But don’t fear, at the end of the article i’ll reference some resources and how-to’s so that you can turn the ideas into reality.

Project 1: Build An Operations Function

The first project for you to learn serverless is for internal operations work. Now I know what you might be thinking: “Wait what? Operations? Surely an API or Microservice is the best project to start with?” So let me explain why operations makes a lot of sense as a starting place for serverless…

Serverless is used heavily for operations to provide services within AWS that either don’t exist as current AWS features, or are quite specific for your use case. For instance you can use a lambda function to schedule shutting down old or stopped EC2 instances or for cleaning up AWS untagged resources according to your companies guidelines.

That said, regardless of the popularity of serverless in operations the main reason operations is a good place to start as a beginner is: you don’t need to string together lots of AWS services. Because on the flip-side, public-facing services such as API’s need to configure something like an ALB to be exposed publically necessarily.

But of course you might be reading this and thinking “but I don’t work in a company that needs operations functions”. So it might be hard for you to imagine what operations functions might look like, let alone build one.

So let’s go through the details of an operations function you could build as your first lambda function…

EC2 Ops Lambda Diagram

EC2 Ops Lambda Diagram

*Project Description: * Build an AWS Lambda function that uses the built-in AWS-SDK, which comes pre-installed on all AWS Lambda’s, to list all your EC2 instances, view the tags of the EC2 instances and terminate any resources that don’t meet your companies tagging standards (real or imagined).

*Steps: *

Extensions:

When it comes to setting up your CloudWatch using schedule events, check out: How To Setup AWS Lambda Scheduled Events with Terraform for more details.

Project 2: An HTML Website

Okay, so maybe operations Lambda functions don’t get you excited, I get that. So let’s take a look at an example that’s slightly more complicated but more “real-world” useful… and that’s a serverless function that returns raw HTML.

Or in simple terms: a website.

Lambda’s aren’t often first to mind when it comes to building HTML websites. The reason is probably because there are better options for websites like using a straight-forward S3 bucket. That said, we’re in the business of serverless beginner projects, not building the most low-latency, cost-effective, uber-scale website.

But as I alluded to when we discussed operation functions, the reason I didn’t suggest a public function, like an API, as the first project is because it requires some other AWS components. Why? Because Lambda functions on their own don’t have public endpoints that you can access. Which means that if we want our website to be viewable we have a couple of options…

But apart from attaching our public-facing component like an ALB or API Gateway, what are the steps we’ll need to take?

Lambda S3 Website

Lambda S3 Website

Project Description: Build a Lambda that returns HTML to be used as a static site, such as a personal portfolio or for hosting documentation.

Steps:

Extensions:

Project 3: A JSON API

Lambda DynamoDB

Lambda DynamoDB

And our final project example for today is using AWS Lambda to build a web API. Building an API project is similar to a static website that we discussed in the last project. The only real difference is that the Lambda will respond with a machine-readable format like JSON, rather than HTML.

One way that you can extend your API example would be to also use a database like DynamoDB. But that’s up to you whether you have the capacity to take on that complexity. I recommend DynamoDB because it’s popular with Lambda mainly due to it’s ability to scale incredibly well.

*Project Description: *

Setup a Lambda to return a JSON payload as a web API. To do this you’ll need to setup a Lambda and also attach an ALB load balancer.

Steps

Ways You Could Extend The Project

Get Building Serverless

That’s all folks!

That concludes our run through of the three different serverless beginner projects that should get you up and running with Serverless on AWS Lambda.

I’m hoping that gave you some ideas and thoughts on where to start on your first serverless project. But before you do go dive into your code editor, here are some more articles that I think might be helpful for you when you embark on your serverless journey.

Speak soon Cloud Native friend!

What did you (or will you) build as your first serverless project?


The post 3 Serverless Beginner Projects Ideas appeared first on The Dev Coach.

Lou is the editor of The Cloud Native Software Engineering Newsletter a Newsletter dedicated to making Cloud Software Engineering more accessible and easy to understand. Every 2 weeks you’ll get a digest of the best content for Cloud Native Software Engineers right in your inbox.

Posted on by:

loujaybee profile

Lou — Cloud Native Software Engineer

@loujaybee

I write stuff on Cloud Engineering @ thedevcoach.co.uk. I made splitoo.com. Also likes: 🏋️‍♂️🎸🚴🏻‍♂️🏍

Discussion

markdown guide