What is Serverless? (A 30000 ft. View)
How to Create 'Hello World' API with Serverless
How to Create Your First Lambda Function
How to Integrate AWS Lambda function with API Gateway
Lambda Function with Node.js 8.10 Runtime
Serverless Architecture – Key Features Benefits and Challenges
Major Players in Serverless Space and Why AWS
Overview of Core Serverless Services in AWS
Overview of Additional Serverless Services in AWS
Use Cases of Serverless Architecture
Overview of Frameworks and CI/CD Tools for Serverless
Environment Setup (IAM Admin User Env Vars)
Environment Variables Setup on Mac
Environment Setup (AWS CLI)
Environment Setup (Node VS Code Postman)
My Recommended Approach to Taking this Course
Quick Overview of AWS Lambda
Lambda Console Walkthrough
Lambda Console Walkthrough Continued
Lambda Handler Syntax in Node.js 6.10 and Node.js 8.10
Event Object Invocation Types Event Sources
Context Object its Methods and Properties
Logging and Error Handling
Hands on Demo: Passing Parameters via the Event Object
Hands on Demo: Accessing Path and Query String Parameters from the Event Object
Hands on Demo: Deploying the Lambda function with ZIP File
Quick Note on using Lambda Node.js 12.x Runtime
Hands on Demo: S3 Events Example (Serverless Image Resizing)
Hands on Demo: Handling S3 Events in Lambda
Configuring S3 Event Trigger for Lambda function
Hands on Demo: Deploying Lambda via AWS CLI
Testing the S3 Event Trigger for Lambda
Quick Overview of Amazon API Gateway
Query String and Path Parameters
CORS Configuration for Lambda Proxy Integration
Adding Request Validators for Query String and Headers
POST Request Example - Creating Lambda Function
POST Request Example - Creating the API Endpoint
Body Mapping Templates - Request Mapping with Velocity Language
Body Mapping Templates - Apache VTL (Velocity Template Language) Syntax
Body Mapping Templates - Response Mapping with Velocity Language
Testing the API with Postman
CORS and OPTIONS Preflight Requests Configuration
API Gateway Models and JSON Schemas
Using Models for Request Body Validation
Using Models for Body Mapping
Using Gateway Responses for Error Handling
API Gateway Post Deploy Options Logging and Monitoring
Creating API Documentation
Creating API Keys and Usage Plans in API Gateway
Passing API Keys with API Gateway Requests
Amazon DynamoDB - Section Overview
Terminology Comparison with SQL
DynamoDB Consistency Model
Overview of DynamoDB Capacity Units
Calculating Read and Write Capacity Units
Basics of DynamoDB Partitions
Basics of DynamoDB Indexes
Overview of Your First DynamoDB Table
Hands on Demo: Creating the DynamoDB Table
Hands on Demo: Performing Write Operations with AWS Console
Hands on Demo: Performing Read Operations with AWS Console
Additional Features in DynamoDB Console
Hands on Demo: Working with DynamoDB with AWS SDK – Getting Ready
Hands on Demo: Listing and Describing Tables using AWS SDK
Hands on Demo: Creating Updating and Deleting Tables using AWS SDK
Overview of Item Level Operations with AWS SDK
Hands on Demo: Performing Write Operations using AWS SDK
Hands on Demo: Conditional Writes in DynamoDB
Hands on Demo: Performing Read Operations using AWS SDK
Hands on Demo: Paginated Reads in DynamoDB
Hands on Demo: Performing Paginated Reads with AWS SDK
The Need for Lambda Aliases
Challenges with using Lambda Aliases
Stage Variables in API Gateway
Traffic Shifting between Lambda Versions using Aliases
Canary Deployments in API Gateway
Using Environment Variables in Lambda
Creating the KMS Encryption Keys
Encrypting Environment Variables using KMS
Running Lambda inside the VPC
Overview of Retry Behavior and DLQs in AWS Lambda
Error Retries and DLQs in Action
Setting up Lambda Dead Letter Queue using SQS
Testing Retry Behavior and DLQs in AWS Lambda
Cold Starts in AWS Lambda
API Gateway Access Control Options (API Keys Client Certificates CORS)
Controlling API Gateway Access using CORS
Controlling API Gateway Access with Resource Policies
Controlling Access with Standard IAM Roles and Policies
Interactions between Resource Policies and IAM Policies
Creating Lambda Authorizers for API Gateway Access Control
Lambda Authorizers – Validating Authorization Tokens
Adding Lambda Authorizers to API Gateway Methods
Using Lambda Authorizer Context Object for Body Mapping in API Gateway
Creating AWS Cognito User Pools for API Gateway Authorization
Generating Auth Tokens with Cognito User Pools
Creating Cognito Authorizer in API Gateway
DynamoDB Streams and AWS Lambda Triggers
Fundamentals of AWS Step Functions
Creating your first State Machine using Amazon States Language (ASL)
Wait State in Step Functions
Task State in Step Functions
Input Processing and Filtering in State Machines
Output Processing and Filtering in State Machines
Other State Types in Step Functions (Fail Succeed Choice and Parallel States)
Error Handling in Step Functions with Retry and Catch
Invoking State Machine with API Gateway
Invoking State Machine with CloudWatch
Invoking State Machine using AWS SDK
Step Functions Project – Build Image Processing Workflow with Step Functions
Image Processing Demo – Defining Branching Logic with Parallel State
Image Processing Demo – Defining S3 Trigger to Invoke State Machine
Image Processing Demo – Writing Backend Lambda functions
Image Processing Demo – Creating Image Resizer function
Image Processing Demo – Writing Metadata to DynamoDB
Image Processing Demo – Deleting Processed File
Image Processing Demo – Finishing the State Machine with Error Handling
Image Processing Demo – Finishing the State Machine with Error Handling (Contd.)
Image Processing Demo – Testing the State Machine Workflow
Development with SAM - Creating Lambda Functions
Creating Your First SAM Template
Packaging and Deploying with SAM Template and CloudFormation
Testing the Deployed SAM Stack
Setting up the AWS SAM CLI
Configuring the Firewall for Docker on Windows
Creating a Boilerplate Serverless Project with AWS SAM CLI
Running Lambda Functions Locally with AWS SAM CLI
Running Lambda Functions Locally from within our Application Code
Generating Sample Lambda Event Payloads with SAM CLI
Running API Gateway Locally with AWS SAM CLI
AWS SAM Project - Building Serverless REST API with AWS SAM
Serverless REST API with AWS SAM - Finish the Lambda Code
Serverless REST API with AWS SAM - Writing the SAM Template
Serverless REST API with AWS SAM - Validating the SAM Template
Serverless REST API with AWS SAM - Packaging and Deploying with SAM CLI
Serverless REST API with AWS SAM - Testing and Updating Your SAM Application
Accessing Lambda Function Logs with AWS SAM
What is the Serverless Framework?
Installing and Configuring the Serverless Framework
Creating Your First Serverless Application with the Serverless Framework
Testing the Lambda Functions Locally with the Serverless Framework
Deploying with the Serverless Framework
Removing a Deployed Stack using the Serverless Framework
Creating APIs using the Serverless Framework
Redeploying Single Lambda Function with the Serverless Framework
Configuring Global Properties with the Serverless Framework
VPC Configuration for Lambda Functions using the Serverless Framework
Serverless Plugins – Running API Gateway Locally using the Serverless Framework
Accessing CloudWatch Logs using the Serverless Framework
Lambda Integration and Body Mapping Templates using the Serverless Framework
Lambda Integration and Body Mapping Templates using the Serverless F/W (Contd.)
Testing the API Gateway Mappings
Using AWS CodeCommit for Source Control
Setting up a Local Git Repository
Using AWS CodeCommit for Source Control
Merging Git Branches and Pushing Updates to CodeCommit
Using AWS CodeBuild for Continuous Integration of Serverless Projects
Changes to the Serverless Framework Deployment Process
Defining the CodeBuild Build Specification File (buildspec.yml)
Using AWS CodePipeline for Continuous Delivery of Serverless Projects
Adding Manual Approval before Production Deployment with AWS CodePipeline
Automated Production Deployment with AWS CodePipeline in Action
Testing the Production Deployment
AWS Lambda Best Practices
Amazon API Gateway Best Practices
Amazon DynamoDB Best Practices
Best Practices for AWS Step Functions
Serverless Security Best Practices
AWS Serverless Architecture
Serverless Architecture Patterns with Three-Tier Architecture
Serverless Microservices Architecture Pattern
Multi-provider Serverless Architecture
Project Overview and Initial Setup
Creating the Backend DynamoDB Table using the Serverless Template
Setting up the GIT Repository for Source Control with CodeCommit
Setting up the CI/CD Pipeline for Deployment Automation
Creating the Boilerplate Lambda Functions
Writing the Lambda Handlers
Writing the Lambda Handlers – Part 2
Writing the Lambda Handlers – Part 3
Adding IAM Role Statements to the Serverless Template
Defining Lambda Functions and API Endpoints in the Serverless Template
Testing the REST API Locally using the Serverless Offline Plugin
Testing the REST API Locally (Contd.)
Deploying the REST API to the AWS Cloud
Adding a Custom Domain to the API using the Serverless Framework
Setting up a Custom Domain using Route 53
Adding SSL Certificate to the Custom Domain using ACM
Creating the API Gateway Custom Domain using the Serverless Framework
Application Code Walkthrough
Automating Serverless Frontend Deployment to S3 with AWS CodeBuild
Setting up Source Control with Git and AWS CodeCommit
Automating Serverless Application Deployment with AWS CodePipeline
Static Website Hosting and Serverless Access Logging using S3
Route 53 Configuration to Serve the Serverless App from a Custom Domain
Distributing the Serverless App over AWS CloudFront
Updating Route 53 Configuration to use the CloudFront Distribution
Testing the Live App and Viewing the Logs
Invalidating CloudFront Cache Automatically using CodeBuild
Creating Google Auth Client for the Serverless Web App
Setting up Federated Identity Access with Cognito
Setting up IAM Role for Cognito Authenticated Users
Adding Cognito Federated Identity Authorizer using the Serverless Framework
Configuring Lambda Function to use with Cognito Authorization
Adding Gateway Responses for Error Handling using the Serverless Framework
Authorizing Against Cognito Identity Pool using Lambda
Debugging Build Errors in AWS CodePipeline
Integrating Google Authentication with the Serverless Web App
Getting AWS Credentials from Cognito Identity Pool
Making Signed API Requests from the Frontend Web App – Overview
Generating the AWS Signature for Signing API Requests
Signing the API Requests with AWS Signature
Testing the Web App Locally
Debugging API Gateway Errors using CloudWatch
Serverless Web App in Action
Overview of the Mobile Apps
Understanding the Mobile App UI
Integrating Mobile App Frontend with the Serverless Backend
Creating Google Auth Clients for Android and iOS Apps
Cognito Configuration for Federated Access with Multiple Google Clients
Setting up Google as OpenID Connect (OIDC) Provider
Adding Google Authentication to Mobile Apps
Getting Started with DynamoDB Streams
Understanding the DynamoDB Streams Event Structure
Automatic Data Archiving – DynamoDB Streams & TTL Configuration
Automatic Data Archiving – DynamoDB Streams Processing with Lambda
Kinesis Streams Processing – Creating a Kinesis Stream
Configuring a Kinesis Stream Event in AWS Lambda
Processing Kinesis Streaming Data with AWS Lambda
Processing Kinesis Streaming Data with AWS Lambda (Contd.)
Generating Streaming Data for Kinesis Stream
Generating Streaming Data for Kinesis Stream (Contd.)
Kinesis Streams Processing in Action
Quick Overview of Amazon Alexa
Getting Started with Alexa Skills Development
Creating Your First Alexa Skill
Creating Custom Interaction Model for Your Alexa Skill
Adding More Languages to Your Alexa Skill
Configuring Alexa Skill Event Trigger for Lambda using the Serverless Framework
Developing with the New Alexa Skills Kit SDK
Understanding the Intent Handler Syntax with the New Alexa Skills Kit SDK
Writing the Get New Fact Intent Handler
Writing the Repeat Intent Handler
Deploying the Lambda Function in Multiple Regions with the Serverless Framework
Updating the Lambda Service Endpoints in Your Alexa Skill
Testing and Debugging the Alexa Skill with Alexa Simulator
Testing the Alexa Skill with a Real Amazon Echo Device
Quick Overview of the AWS IoT Core Service
Creating Your First AWS IoT Thing
Configuring Your AWS IoT Button to Connect to AWS Cloud
Testing IoT Button with MQTT Client
Configuring AWS IoT Button Event Trigger for a Lambda Function
Processing AWS IoT Button Events with a Lambda Function
What is Node.js with 'Hello World' Example
JavaScript ES6 Basics - Variables and Data Types
JavaScript ES6 Basics - Arrays Conditionals and Loops
JavaScript ES6 Basics - Asynchronous Functions
JavaScript ES6 Basics - Promises
JavaScript ES6 Basics - Chaining Promises
Node.js Basics - Modules and NPM
Node.js Basics - Building a Web Server and APIs with Express
Node.js Basics - Creating REST APIs with Express
JavaScript ES8 - Async/Await
JavaScript ES6 - Rest Parameter and Spread Operator
JavaScript ES6 - Object and Array Destructuring