Support Documents

Deploying Lambda Functions using CloudFormation

Lab Details

  1. This lab walks you through the steps to deploy Lambda functions using Cloudformation

  2. You will practice using an Amazon Cloudformation stack and AWS Lambda function trigger.

  3. Duration: 1 Hour

  4. AWS Region: US East (N. Virginia) us-east-1


Amazon CloudFormation

  • A complex application which requires multiple AWS resources can be managed by a single service called AWS CloudFormation. Sometimes, managing the multiple AWS resources you need can be more time consuming than the time spent on developing the applications.

  • AWS Cloudformation enables us to design the infrastructure and se tup AWS resources which can be managed with less manual intervention in an orderly and predictable manner

  • CloudFormation is a tool which is used to design and implement your applications quickly.

  • CloudFormation consists of templates that can be written in JSON or YAML.

  • Templates can be created using AWS Cloudformation designer.

  • Templates can also created manually.

  • Templates created can be reused to replicate the design in multiple environments.

  • Resources provisioned by a template are called a Stack.

  • A Stack is an updatable set of resources which can be modified at any point in time.

  • CloudFormation will automatically configure and provision resources based on the template and will automatically take care of any dependency handling between the resources.

  • AWS Cloudformation enables us to manage infrastructure through a text file.

  • If there are any errors during the execution of the template, the cloudformation template will roll back and delete the resources provisioned.

    Amazon Lambda

  • AWS Lambda is a Serverless Compute service.

  • It works without any servers and allows us to execute code for any type of application.

  • The developer doesn't have to worry about the AWS resources to launch or the steps needed to manage the resources.

  • The configuration of the tasks are done as code . They are implemented in Lambda and performed on execution.

  • Provisioning and Managing are both taken care of by the Lambda function.

  • The languages AWS Lambda supports are Node.js, Python, C#, Java and Go.

  • It allows us to run code in response to events from other AWS services.

  • Automatic Scaling is done based on the size of the workload.

  • The Lambda Code is executed from Triggers which are received from AWS resources.

  • The cost of AWS Lambda is very low and depends on multiple factors. It will charge for every 100ms of runtime also for the number of times the code is executed.

  • The allowable runtimes a Lambda function execution is between 100ms to 5 Mins.

  • It offers resources varying from 128MB of memory to 3GB of memory. 

   Architecture Diagram

Task Details

  1. In this lab we will use two Cloudformation templates to create two stacks, one template for an s3 bucket and another for an EC2 instance.

  2. When the stacks are launched, each one will create a lambda function to use for resource creation.

  3. This lambda will create the S3 bucket and EC2 instance.

  4. We will test the Lambda by Configuring test events in AWS Lambda individually.

  5. Finally, we will navigate to AWS S3 and AWS EC2 dashboards to verify that the resources have been created.

  6. Validation of the lab.