Fast Start Python Serverless Apps with AWS and Terraform
4.5 (6 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
94 students enrolled

Fast Start Python Serverless Apps with AWS and Terraform

Practical approach to DevOps and Serverless to generate business value immediately.
4.5 (6 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
94 students enrolled
Created by Tony Truong
Last updated 12/2019
English
English
Current price: $41.99 Original price: $59.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 2 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Assignments
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Serverless Framework in Python
  • Infrastructure as code with Terraform and AWS as the provider
  • OAuth2.0 Authentication using Cognito (Code and Implicit flows)
  • AWS Networking for Serverless (VPC, Subnets, NATs, VPC Endpoint)
  • Websockets
  • DynamoDB
Course content
Expand all 16 lectures 01:48:38
+ Introduction
2 lectures 03:15

Introduce myself and what the course is about

Preview 01:08

Lay out what the architecture progression looks like throughout the course.

Course Progression and Architecture
02:07
+ First Steps
2 lectures 07:44

Setting Python environment, NodeJs environment and create scaffolding from Serverless Python template.

Environment Setup
01:46

Deploy our first Hello World function into AWS using the Python requirements plugin.

First Backend Application Deployed
05:58
+ Restructuring into Scalable Code
3 lectures 18:42

Start abstracting and splitting up yaml configurations that would get too big as development goes on. Serverless specific yaml configurations will be explained and we also take care of API gateway default error responses to be CORS compatible.

Serverless Framework YAML abstractions and common configs
04:34

Split up the functions and enable a RESTful API. Implement REST with Python specific naming and coding conventions. Python modules are used properly and we have ways to execute the functions locally. We also implement a common reusable API response module. Finally common deployment errors are demonstrated.

Preview 09:19

Log into the AWS console and take a look at what was deployed in the default serverless configuration so that we know how we can improve upon it later.

Initial Look at AWS Console Resources
04:49
+ Infrastructure as Code with Terraform
3 lectures 27:51

Use Terraform standard practice to create a more isolated environment for our lambda functions. The back end code also gets an update to work in tandem with the infrastructure code.

Creating VPCs and Subnets - Networking for Lambdas
15:58

Do a Terraform apply and have a look at what resources get generated on AWS.

Terraform Apply and what gets created on AWS
05:20

Update the Serverless code to use the new VPC and private Subnets then take a look in the AWS console to see the delta between the new infrastructure and default one.

Update back end to use new infrastructure
06:33
+ Authentication with AWS Cognito
4 lectures 35:05

Dive into more Terraform code to create a User Pool and one app client for the backend.

Creating an AWS Cognito User Pool in Terraform
17:16

Update the backend code for Bearer Authentication and common utilities for verifying a JWT. The Lambda function gets locked down and an execution policy gets generated on successful auth.

Bearer Authentication for the back end
09:48

Look through AWS console on the User pool to confirm our Terraform code outputs. We also leverage the AWS hosted UI to go through the OAuth authentication code flow and retrieve the OAuth code.

Look at AWS Resources for the User Pool and begin authentication code flow
06:00

Go through a complete Implicit grant flow and retrieve the access token to make an authenticated CURL call to our Lambda function.

Complete Implicit Grant flow
02:01
+ Websockets
1 lecture 08:08

We explore using the Serverless framework and boilerplate code on how to bring up a sample chat app. You will learn to use DynamoDB to manage connection sessions, connection to DynamoDB securely and how to manage auth for the websockets.

Preview 08:08
Use the code template provided and secure the chat endpoint for 2 users and make sure DynamoDB calls are routed inside the custom VPC.
Secure the Chat Application
1 question
+ Final Thoughts and Thanks
1 lecture 04:11

We look at https://github.com/serinth/serverless-python-boilerplate and how to utilize it for bootstrapping applications quickly. Additional functionality is included in the boilerplate.

Boilerplate with additional content and thanks
04:11
Requirements
  • Basic understanding of programming concepts
  • Basic understanding of public cloud concepts
Description

This course takes you through building Serverless applications quickly and securely on Amazon Web Services by leveraging:

        - Terraform for infrastructure code

        - Serverless Framework (Python) for quickly deploying and structuring our code (REST & Websockets)

    We go beyond the defaults and will construct infrastructure as code and create our own VPCs, Subnets and tackle OAuth2.0 authentication.

    By the end of the course, you should be able to comfortably understand how to create a REST and websocket application from scratch and leverage the boilerplate to start generating business value immediately.


The course does require a high quality connection to get 1080p viewing due to font sizes in code. I've made the entire course downloadable in case you are on a slower connection so you can watch offline! Ensure that you set your quality level to "Auto" to get the best resolution possible.

Who this course is for:
  • Junior to Senior Software Developers/Engineers