CloudAcademy

Serverless Web Development with Python for AWS

The hands-on lab is part of this learning path

Serverless Python Web Development For AWS

course-steps 1 certification 1 lab-steps 1

Lab Steps

keyboard_tab
lock
Logging in to the Amazon Web Services Console
lock
Creating a DynamoDB Table for the Serverless Application
lock
Creating a Cognito User Pool for the Serverless Application
lock
Creating an S3 Bucket for the Web Front-End Assets
lock
Connecting to the Virtual Machine using SSH
lock
Testing the Serverless API Code
lock
Fixing the Python Serverless API Code
lock
Deploying the Serverless API Code
lock
Modifying the API Gateway Configuration
lock
Testing the Front-End Website
lock
Deploying the Front-End Website to S3

Ready for the real environment experience?

DifficultyIntermediate
Duration2h
Students212

Description

Lab Overview

Serverless architectures let cloud providers handle the burden of managing servers and scaling to meet demand. Costs can also be reduced because you only pay for the compute resources needed to handle requests instead of paying for idle servers waiting for requests to come in. In this Lab you will practice serverless web development with Python for AWS by testing and deploying a to-do list application that uses:

  • AWS Serverless Application Model (SAM) to package and deploy the API code as Lambda functions behind an API Gateway
  • Cognito user pools to handle user registration and sign in
  • DynamoDB for persisting each users to-do list

Lab Objectives

Upon completion of this Lab you will be able to:

  • Test, package, and deploy serverless Python applications following the AWS Serverless Application Model (SAM)
  • Configure an Amazon Cognito user pool as an API Gateway authorizer
  • Synchronize a local folder with Amazon S3 to publish a website

Lab Prerequisites

You should be familiar with:

  • Working with Linux on the command-line
  • Basic concepts of Amazon S3, Cognito, API Gateway, Lambda, DynamoDB, and AWS command-line interface (CLI)
  • Experience developing in Python is beneficial but not required
  • The Build AWS Serverless Web Applications With Python Course walks through a similar development scenario as this Lab and can be beneficial to watch

Lab Environment

Before completing the Lab instructions, the environment will look as follows:

After completing the Lab instructions, the environment should look similar to:

Updates

September 24th, 2018: Updated the Lab to workaround an issue with the moto AWS mock library now supporting newer versions of boto3

About the Author

Students8594
Labs64
Courses6
Learning paths3

Logan has been involved in software development and research for over eleven years, including six years in the cloud. He is an AWS Certified DevOps Engineer - Professional, MCSE: Cloud Platform and Infrastructure, Google Cloud Certified Associate Cloud Engineer, and Certified Kubernetes Administrator (CKA). He earned his Ph.D. studying design automation and enjoys all things tech.