Production-Ready Serverless (July 2023)
Learn how to build modern, cloud-native applications on AWS with this hands-on workshop.
Prerequisite: Adding an IAM user
Lecture: Lambda 101
Exercise: Create Lambda functions in AWS Console
Lecture: Lambda EFS integration
Lecture: Lambda extensions
Lecture: Intro to Provisioned Concurrency
Lecture: When to use Provisioned Concurrency
Lecture: When to use Lambda destinations
Lecture: CloudFormation 101
Lecture: IAM 101
Exercise: Create a serverless project
Exercise: Invoke Lambda functions locally
Lecture: Anatomy of a serverless.yml
Exercise: Deploy the serverless project
Exercise: Deploy project to another stage
Lecture: DynamoDB 101
Lecture: API Gateway 101
Exercise: Create an API with API Gateway and Lambda
Source code: Create an API with API Gateway and Lambda
Exercise: Creating the Restaurants API
Source code: Creating the Restaurants API
Exercise: Displaying restaurants on the landing page
Source code: Displaying restaurants on the landing page
Lecture: Securing API Gateway
Exercise: Secure API Gateway with AWS_IAM
Source code: Secure API Gateway with AWS_IAM
Lecture: Cognito 101
Exercise: Create a new Cognito User Pool
Source code: Create a new Cognito User Pool
Lecture: Secure API Gateway with Cognito User Pool
Exercise: Secure API Gateway with Cognito User Pool
Source code: Secure API Gateway with Cognito User Pool
Lecture: API Gateway best practices
Lecture: API Gateway REST API vs HTTP API vs ALB
Lecture: When to use Lambda function URLs
(Optional) Challenges
Live Q&A #1
Live Q&A #2
Lecture: Serverless requires a different approach to testing
Lecture: Writing integration tests
Exercise: Writing integration tests
Source code: Writing integration tests
Lecture: Writing acceptance tests
Exercise: Writing acceptance tests
Source code: Writing acceptance tests
Lecture: CI/CD
Exercise: Set up CI/CD with GitHub Actions
Lecture: Intro to SSM Parameter Store
Lecture: The problems with environment variables
Exercise: Load dynamic configurations
Source code: Load dynamic configurations
Lecture: Securely handle secrets
Exercise: Securely handle secrets
Source code: Securely handle secrets
Lecture: SSM Parameter Store vs Secrets Manager
(Optional) Challenges
Live Q&A #3
Live Q&A #4
Lecture: Project organization
Lecture: Intro to EventBridge
Lecture: Processing events with EventBridge and Lambda
Exercise: Processing events with EventBridge and Lambda
Source code: Processing events with EventBridge and Lambda
Lecture: How to include SNS and EventBridge in acceptance tests
Exercise: Include SNS and EventBridge in acceptance tests
Source code: Include SNS and EventBridge in acceptance tests
Lecture: Dealing with failures
Exercise: Per-function IAM roles
Source code: Per-function IAM roles
Lecture: SNS vs SQS vs Kinesis vs EventBridge
Lecture: Orchestration vs Choreography
Live Q&A #5
Live Q&A #6
Lecture: Log aggregation
Lecture: Structured logging
Exercise: Structured logging
Source code: Structured logging
Lecture: Sample debug logs in production
Exercise: Sample debug logs in production
Source code: Sample debug logs in production
Lecture: Intro to AWS X-Ray
Exercise: X-Ray
Source code: X-Ray
Lecture: X-Ray limitations
Lecture: Intro to Lumigo
Exercise: Lumigo
Source code: Lumigo
Lecture: Alerts you should have
Exercise: Powertuning Lambda functions
Lecture: Costly mistakes to avoid
Wrap up
Live Q&A #7
Live Q&A #8