Tutorial: Deploy Python apps to Azure App Service on Linux from Visual Studio Code
This article walks you through using Visual Studio Code to deploy a Python application to Azure App Service on Linux using the Azure App Service extension.
If you encounter issues with any of the steps in this tutorial, we'd love to hear the details. Use the Having issues? Let us know. link at the end of each article to submit feedback.
For a demonstration video, see Build WebApps with VS Code and Azure App Service (youtube.com) from virtual PyCon 2020.
If you prefer to deploy apps through the CLI, see Quickstart: Create a Python app in Azure App Service on Linux.
Azure App Service on Linux runs your source code in a pre-defined Docker container. That container runs apps with Python 3.6+ using the Gunicorn web server. The characteristics of this container are described on Configure Python apps for App Service on Linux. The container definitions are on github.com/Azure-App-Service/python.
Configure your environment
If you don't have an Azure account with an active subscription, create one for free.
Make sure you have a local installation of Python 3.7 or 3.8. To verify your version, run the following command:
Install the following software:
- Visual Studio Code.
- Python and the Python extension as described on VS Code Python Tutorial - Prerequisites.
- The Azure App Service extension, which provides interaction with Azure App Service from within VS Code. For general information, explore the App Service extension tutorial and visit the vscode-azureappservice GitHub repository.
Sign in to Azure
Once you've installed the Azure extension, sign into your Azure account:
Navigate to the Azure explorer
Select Sign in to Azure and follow the prompts. (If you have multiple Azure extensions installed, select the one for the area in which you're working, such as App Service, Functions, etc.)
After signing in, verify that Azure: Signed In" appears in the Status Bar and your subscription(s) appears in the Azure explorer:
If you see the error "Cannot find subscription with name [subscription ID]", this may be because you are behind a proxy and unable to reach the Azure API. Configure
HTTPS_PROXY environment variables with your proxy information in your terminal:
# Windows set HTTPS_PROXY=https://username:password@proxy:8080 set HTTP_PROXY=http://username:password@proxy:8080
# macOS/Linux export HTTPS_PROXY=https://username:password@proxy:8080 export HTTP_PROXY=http://username:password@proxy:8080