Description
In this course, you will learn :
- Using AWS API Gateway and Lambda, you can create, secure, and run APIs without having to manage any servers.
- You can host SPAs without having to manage any servers.
- User authentication should be added to serverless applications.
- In the cloud, you can run code on demand.
Syllabus :
1. The Core Serverless Services
- An Overview over the Core Serverless Services
- More Info about the Core Services
2. Creating an API with API Gateway & AWS Lambda
- What is API Gateway?
- API Gateway: Useful Resources & Links
- Accessing the API Gateway Console
- General API Gateway Features
- Understanding AWS Permissions (IAM)
- API-specific Features & Options
- Introducing the Request-Response Cycle
- Understanding the Request-Response Cycle
- Creating a New API
- Creating a Resource (= URL Path)
- Handling CORS and the OPTIONS Preflight Request
- Creating a (HTTP) Method
- What is AWS Lambda?
- AWS Lambda: Useful Resources & Links
- Improved Lambda Console
- Creating a Lambda Function
- Lambda Pricing & Uploading Code
- Connecting Lambda Functions to API Gateway Endpoints
- Accessing the API from the Web & Fixing CORS Issues
- Understanding "event" in Lambda Functions
- Forwarding Requests with "Proxy Integration"
- Accessing Lambda Logs
- Getting Started with Body Mapping Templates
- Extracting Request Data with Body Mapping Templates
- What's the Idea behind Body Mappings?
- Understanding Body Mapping Templates
- Mapping Response Data
- Using Models & Validating Requests
- Understanding JSON Schemas
- Models & Mappings
- Adding a DELETE Method Endpoint to the API
- Using Path Parameters
- What about Query Parameters?
- Accessing the API from the Web - The Right Way
3. Data Storage with DynamoDB
- What is DynamoDB?
- AWS: DynamoDB Useful Resources & Links
- How DynamoDB Organizes Data
- NoSQL vs SQL
- Using DynamoDB with Lambda
- Creating a Table in DynamoDB
- Understanding Read & Write Capacity
- On-Demand Capacity
- Creating and Scanning Items
- What about multiple Databases?
- Accessing DynamoDB from Lambda
- Sidenote: How Lambda works behind the Scenes
- Putting Items into a DynamoDB Table from Lambda
- Setting Permissions Right
- Using API Gateway (Request) Data for Item Creation
- Mapping the Response & Web Testing
- Scanning Data in DynamoDB from Lambda
- Improving the IAM Permissions
- Restructuring Fetched Data in Lambda
- Getting a Single Item from DynamoDB via Lambda
- Testing it from the Web & Passing Correct Data
- Preparing "Delete" Permissions
- Giving Lambda Logging Rights
- Deleting Items in DynamoDB via Lambda
- Mapping DynamoDB Responses
4. Authenticating Users with Cognito and API Gateway Authorizers
- How to add Authorization to API Gateway
- Understanding Custom Authorizers (API Gateway)
- Creating a Custom Authorizer Function
- Custom Authorizers: Provided Input & Expected Output
- MUST READ: New UI for setting up Custom Authorizers
- Using Custom Authorizers
- Retrieving Users from Custom Authorizers
- What is AWS Cognito?
- AWS Cognito: Useful Resources & Links
- Cognito User Pools and Federated Identities
- Creating a Cognito User Pool
- Understanding the Cognito Auth Flow
- The Example Web App, Angular and TypeScript
- Adding Cognito to a Frontend App - Getting Started
- Using Cognito in iOS or Android Apps
- Adding Signup to the Frontend App
- Adding User Confirmation to a Frontend App
- Adding Signin to a Frontend App
- Managing User State with Cognito
- Using a Cognito Authorizer with API Gateway
- Passing the right User ID to Lambda
- Using Query Params & Cognito from Lambda
- More on the Cognito Identity Service Provider
- Passing Query Params from the Frontend
- Passing the User Id to the DELETE Endpoint
5. Hosting a Serverless SPA
- What is S3?
- AWS S3: Useful Resources & Links
- Creating a S3 Bucket
- Uploading the Web App to the Bucket
- Using S3 for Hosting
- Turning a S3 Bucket into a Static Webserver
- Setting up Logging
- Optimizing Content Delivery: What is AWS CloudFront?
- AWS CloudFront: Useful Resources & Links
- Setting up a CloudFront Distribution
- Finishing the CloudFront Setup
- Using a Custom Domain: What is Route53?
- AWS Route53: Useful Resources & Links
- Registering a Domain
- Connecting a Domain to a CloudFront Distribution
6. Beyond the Basics - An Outlook
- Documenting an API
- Other AWS Lambda Triggers
- Going Serverless with a Node/ Express App (Non-API!)
- Running Node/ Express Apps via Lambda + API Gateway
- Pros and Cons of Serverless Node/Express MPA
- Learn more about AWS Serverless + Express Apps
- Serverless Apps and Security
- A Case of a Better Development Workflow
- Getting to know the Serverless Framework
- More about the Serverless Framework
- Getting to know SAM (Serverless Application Model) by AWS
- More about the Serverless Application Model (SAM)
- Testing Serverless Apps with localstack
- Other useful AWS Services