Book Image

Hands-On Serverless Applications with Go

By : Mohamed Labouardy
Book Image

Hands-On Serverless Applications with Go

By: Mohamed Labouardy

Overview of this book

Serverless architecture is popular in the tech community due to AWS Lambda. Go is simple to learn, straightforward to work with, and easy to read for other developers; and now it's been heralded as a supported language for AWS Lambda. This book is your optimal guide to designing a Go serverless application and deploying it to Lambda. This book starts with a quick introduction to the world of serverless architecture and its benefits, and then delves into AWS Lambda using practical examples. You'll then learn how to design and build a production-ready application in Go using AWS serverless services with zero upfront infrastructure investment. The book will help you learn how to scale up serverless applications and handle distributed serverless systems in production. You will also learn how to log and test your application. Along the way, you'll also discover how to set up a CI/CD pipeline to automate the deployment process of your Lambda functions. Moreover, you'll learn how to troubleshoot and monitor your apps in near real-time with services such as AWS CloudWatch and X-ray. This book will also teach you how to secure the access with AWS Cognito. By the end of this book, you will have mastered designing, building, and deploying a Go serverless application.
Table of Contents (17 chapters)

Chapter 3: Developing a Serverless Function with Lambda

  1. What's the command-line command to create an IAM role for an AWS Lambda function?

Answer: Create an IAM role with the below command; it allows Lambda function to call AWS services under your account:

aws iam create-role ROLE_NAME --assume-role-policy-document file://assume-role-lambda.json

The assume-role-lambda.json file contains the following:

{  
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Principal":{
"AWS":"*"
},
"Action":"sts:AssumeRole"
}
]
}
  1. What's the command-line command to create a new S3 bucket in the Virginia region (us-east-1) and upload a Lambda deployment package to it?

Answer: The following command can be used to create an S3 bucket:

aws s3 mb s3://BUCKET_NAME...