Serverless Apps with FastAPI, DynamoDB, and Vue

  • Updated April 20th, 2023
  • v1.0.0
Jan Giacomelli Jan Giacomelli

Build serverless applications with FastAPI and Vue that run on AWS!


In this course, you will learn how to build serverless FastAPI + Vue web applications that run on AWS. By the end of the course, you will be able to do things like:

  • Build serverless FastAPI APIs that run on AWS Lambda
  • Use DynamoDB as the main database for your applications
  • Deploy FastAPI apps to AWS Lambda using CI/CD on GitHub Actions and Serverless Framework
  • Use Cognito for authentication inside your APIs
  • Consume the backend FastAPI API from the frontend Vue application
  • Deploy Vue applications to S3
  • Use Cognito for authentication inside Vue applications
  • Serve your applications with CloudFront CDNs on custom domains
  • Set up monitoring and alerting for your applications with CloudWatch

These things are crucial when you want to develop at rapid pace. You'll learn how to go from idea to serverless FastAPI + Vue application running on AWS. You'll learn how to use modern tools and approaches to minimize your work while maximizing the output for your web applications.

What will you learn?

Select a Part

In this first part, you'll build a FastAPI app skeleton and learn how to set up a CI/CD pipeline for deploying it with Serverless Framework and GitHub Actions to AWS. After that, you'll model data to store it in DynamoDB, build the API, and protect it with Cognito.

Learning Objectives

  1. Develop an API with FastAPI
  2. Build a CI/CD pipeline on GitHub Actions for the serverless FastAPI API
  3. Model data to use with DynamoDB
  4. Set up Cognito

In part 2, you'll build and deploy a Vue application that consume your FastAPI API. You'll protect it with Cognito and set up a CI/CD pipeline on GitHub actions to deploy it.

Learning Objectives

  1. Build a Vue app skeleton
  2. Deploy a Vue application to S3 with a CI/CD pipeline on GitHub Actions
  3. Add authentication to your application with Cognito
  4. Build a Vue application that consumes your FastAPI API

In part 3, you'll first update some settings to make your application more secure and production ready. After that, you'll set up monitoring and learn how to search your application's logs inside CloudWatch.

Learning Objectives

  1. Set up a custom domain
  2. Disable CORS and public S3 access
  3. Search CloudWatch logs
  4. Track Lambda metrics in CloudWatch
  5. Set up alerting

What do you need to know?

This course is targeted at advanced-beginners -- someone with at least 6 months of web development experience. Before beginning, you should have some familiarity with the following topics:

Meet the Author

Jan Giacomelli

Jan Giacomelli

Jan is a software engineer who lives in Ljubljana, Slovenia, Europe. He is a Staff Software Engineer at ren.co where he is leading backend engineering efforts. He loves Python, FastAPI, and Test-Driven Development. When he's not writing code, deploying to AWS, or speaking at a conference, he's probably skiing, windsurfing, or playing guitar. Currently, he's working on his new course Complete Python Testing Guide.

What developers are saying

The TestDriven.io courses are some of the best courses I've ever done for any language, any platform, any price range... just some of the most thorough and well-sourced courses around.

Just a word of thanks for doing such a great job with these training courses. The thorough, entire-lifecycle approach -- from implementation through test, coverage, quality, CI/CD, and all the rest -- is what separates these courses from other training material that I've completed. I'll be able to walk away from here with knowledge and skills that I can apply immediately at work -- and for that I'm grateful. It's a rare gift in an environment where so much 'training' is really just lightweight treatment that doesn't begin to scratch the surface of real, end-to-end software development. Really well done!

The TestDriven.io courses are worth 10 times what I paid for them.

I'm writing to thank you for all the tutorials and the work you've put out there. I'm new to DevOps and I found TestDriven.io while looking for Django and DevOps related topics. One of the best collections of tutorials and guides I've seen -- very well-written, clear, and concise. You have saved me so much time and energy. Thanks from the bottom of my heart.

I am very much into buying and purchasing any course by you and your team. I've never felt like a better programmer ready to show my coding chops to the world.

Frequently Asked Questions

What tools and technologies are used in this course?

This course covers a variety of technologies and services:

Core

  1. Python
  2. FastAPI
  3. Vue
  4. GitHub
  5. Poetry
  6. pydantic
  7. Serverless Framework

AWS

  1. DynamoDB
  2. Route 53
  3. Certificate Manager
  4. Lambda
  5. API Gateway
  6. CloudFront
  7. CloudWatch
  8. CloudFormation
  9. Cognito
  10. IAM

Testing and Code Quality

  1. pytest
  2. pytest-cov
  3. Coverage.py
  4. Flake8
  5. Black
  6. isort
  7. Bandit
  8. Safety

What can I learn to do with FastAPI, Vue and AWS?

FastAPI is a high-performance, easy-to-learn, fast-to-code, ready-for-production Python web framework. AWS is the most popular cloud service provider. Vue is an approachable, performant, and versatile framework for building web user interfaces. They're powerful tools for building everything from simple proof of concepts to large scale enterprise applications. This includes:

  • exposing ML models via a RESTful API
  • web applications for scheduling for a hairdresser
  • fleet management systems

With FastAPI, Vue, and AWS, you can build almost any application you can imagine.

What support does TestDriven.io offer?

Since the courses mimic real-world development, support is provided via Stack Overflow. Helpful users, including the developers of the courses, read and respond to messages on Stack Overflow. If you get stuck and you can't find an answer via Stack Overflow, feel free to reach out via email directly. Just be sure to detail what you've tried. For more, review Support and Consulting.

How long does it take to complete the course?

It's dependent on your current skill level. On average, it takes approximately 8 hours to complete.