Book Image

Building Serverless Architectures

By : Cagatay Gurturk
Book Image

Building Serverless Architectures

By: Cagatay Gurturk

Overview of this book

Over the past years, all kind of companies from start-ups to giant enterprises started their move to public cloud providers in order to save their costs and reduce the operation effort needed to keep their shops open. Now it is even possible to craft a complex software system consisting of many independent micro-functions that will run only when they are needed without needing to maintain individual servers. The focus of this book is to design serverless architectures, and weigh the advantages and disadvantages of this approach, along with decision factors to consider. You will learn how to design a serverless application, get to know that key points of services that serverless applications are based on, and known issues and solutions. The book addresses key challenges such as how to slice out the core functionality of the software to be distributed in different cloud services and cloud functions. It covers basic and advanced usage of these services, testing and securing the serverless software, automating deployment, and more. By the end of the book, you will be equipped with knowledge of new tools and techniques to keep up with this evolution in the IT industry.
Table of Contents (10 chapters)

Writing the foundation of a Lambda function

We can start our task with writing a Lambda function, which responds to S3 events and will resize the image. At this stage, the code will not resize the image, but it will only log the request, so first, we can see that the function is really triggered by S3.

As usual, we can create our new module with the name lambda-imageresizer:

    $ mkdir -p lambda-imageresize/src/main/java/com/
serverlessbook/lambda/imageresize

Then, let's add this new module to our settings.gradle file:

    $ echo "include 'lambda-imageresizer'" >> settings.gradle  

We can now create our Handler class in the com.serverlessbook.lambda.imageresize package:

    $ touch lambda-imageresizer/src/main/java/com/serverlessbook/lambda/
imageresizer/Handler.java

In this Lambda function, we will consume standardized events prepared...