Skip to content

coderks1jm/msdocs-python-fastapi-webapp-quickstart

 
 

Repository files navigation

page_type description languages products
sample
A minimal sample app that can be used to demonstrate deploying FastAPI apps to Azure App Service.
python
azure
azure-app-service

Deploy a Python (FastAPI) web app to Azure App Service - Sample Application

This is the sample FastAPI application for the Azure Quickstart Deploy a Python (Django, Flask or FastAPI) web app to Azure App Service. For instructions on how to create the Azure resources and deploy the application to Azure, refer to the Quickstart article.

Sample applications are available for the other frameworks here:

If you need an Azure account, you can create one for free.

Local Testing

To try the application on your local machine:

Install the requirements

pip install -r requirements.txt

Start the application

uvicorn main:app --reload

Example call

http://127.0.0.1:8000/

Build and Deploy in ACA

Build the image locally

docker build --tag fastapi-demo

Run the image locally in a Docker container.

docker run --detach --publish 3100:3100 fastapi-demo

Open the http://localhost:3100 URL in your browser to see the web app running locally.

Deploy web app to Azure

To deploy the Docker image to Azure Container Apps, use the az containerapp up command. (The following commands are shown for the Bash shell. Change the continuation character () as appropriate for other shells.)

Flask
FastAPI

Azure CLI

az containerapp up \
  --resource-group web-fastapi-aca-rg --name web-aca-app \ 
  --ingress external --target-port 3100 --source .

When deployment completes, you have a resource group with the following resources inside of it:

An Azure Container Registry
A Container Apps Environment
A Container App running the web app image
A Log Analytics workspace

Next Steps

To learn more about FastAPI, see FastAPI.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Bicep 68.1%
  • HTML 17.1%
  • Python 10.6%
  • Dockerfile 3.9%
  • Shell 0.3%