Configurer votre environnement local pour le déploiement d’applications web Python sur Azure

Cet article vous guide tout au long de la configuration de votre environnement local pour développer des applications web Python et les déployer sur Azure. Votre application web peut être pure Python ou utiliser l’une des infrastructures web courantes basées sur Python telles que Django, Flask ou FastAPI.

Les applications web Python développées localement peuvent être déployées sur des services tels qu’Azure App Service, Azure Container Apps ou Azure Static Web Apps. Il existe de nombreuses options pour le déploiement. Par exemple, pour le déploiement d’App Service, vous pouvez choisir de déployer à partir du code, d’un conteneur Docker ou d’une application web statique. Si vous effectuez un déploiement à partir de code, vous pouvez déployer avec Visual Studio Code, avec Azure CLI, à partir d’un dépôt Git local ou avec des actions GitHub. Si vous déployez dans un conteneur Docker, vous pouvez le faire à partir d’Azure Container Registry, de Docker Hub ou d’un registre privé.

Avant de continuer avec cet article, nous vous suggérons de passer en revue la configuration de votre environnement de développement pour obtenir des conseils sur la configuration de votre environnement de développement pour Python et Azure. Ci-dessous, nous aborderons la configuration et la configuration spécifiques au développement d’applications web Python.

Une fois que vous avez configuré votre environnement local pour le développement d’applications web Python, vous serez prêt à aborder ces articles :

Utilisation de Visual Studio Code

L’environnement de développement intégré (IDE) Visual Studio Code est un moyen simple de développer des applications web Python et d’utiliser des ressources Azure que les applications web utilisent.

Conseil

Vérifiez que l’extension Python est installée. Pour obtenir une vue d’ensemble de l’utilisation de Python dans VS Code, consultez Prise en main de Python dans VS Code.

Dans VS Code, vous travaillez avec des ressources Azure via des extensions VS Code. Vous pouvez installer des extensions à partir de la vue Extensions ou de la combinaison de touches Ctrl+Maj+X. Pour les applications web Python, vous allez probablement utiliser une ou plusieurs des extensions suivantes :

  • L’extension Azure App Service vous permet d’interagir avec Azure App Service à partir de Visual Studio Code. App Service fournit un hébergement entièrement managé pour les applications web, y compris les sites web et les API web.

  • L’extension Azure Static Web Apps vous permet de créer des applications web statiques Azure directement à partir de VS Code. Static Web Apps est serverless et un bon choix pour l’hébergement de contenu statique.

  • Si vous envisagez d’utiliser des conteneurs, installez :

    • Extension Docker pour générer et utiliser des conteneurs localement. Par exemple, vous pouvez exécuter une application web Python conteneurisée sur Azure App Service à l’aide de Web Apps for Containers.

    • Extension Azure Container Apps pour créer et déployer des applications conteneurisées directement à partir de Visual Studio Code.

  • Il existe d’autres extensions telles que les extensions Stockage Azure, Azure Databases et Ressources Azure. Vous pouvez toujours ajouter ces extensions et d’autres en fonction des besoins.

Les extensions dans Visual Studio Code sont accessibles comme prévu dans une interface IDE classique et avec une prise en charge complète des mot clé à l’aide de la palette de commandes VS Code. Pour accéder à la palette de commandes, utilisez la combinaison de touches Ctrl+Maj+P. La palette de commandes est un bon moyen de voir toutes les actions possibles que vous pouvez effectuer sur une ressource Azure. La capture d’écran ci-dessous montre certaines des actions pour App Service.

A screenshot of the Visual Studio Code command palette for App Service.

Utilisation de conteneurs de développement dans Visual Studio Code

Les développeurs Python s’appuient souvent sur des environnements virtuels pour créer un environnement isolé et autonome pour un projet spécifique. Les environnements virtuels permettent aux développeurs de gérer les dépendances, les packages et les versions de Python séparément pour chaque projet, ce qui évite les conflits entre différents projets susceptibles de nécessiter des versions de package différentes.

Bien qu’il existe des options populaires disponibles dans Python pour gérer des environnements tels que virtualenv ou , l’extension de conteneur de développement Visual Studio Code (basée sur la spécification open Dev Container) vous permet d’utiliser un conteneur Docker en tant qu’environnement conteneurisé venvcomplet. Il permet aux développeurs de définir une chaîne d’outils cohérente et facilement reproductible avec tous les outils, dépendances et extensions nécessaires préconfigurés. Cela signifie que si vous avez des configurations système requises, des configurations d’interpréteur de commandes ou utilisez entièrement d’autres langages, vous pouvez utiliser un conteneur de développement pour configurer explicitement toutes les parties de votre projet qui peuvent vivre en dehors d’un environnement Python de base.

Par exemple, un développeur peut configurer un conteneur de développement unique pour inclure tout ce qui est nécessaire pour travailler sur un projet, y compris un serveur de base de données PostgreSQL, ainsi que la base de données du projet et des exemples de données, un serveur Redis, Nginx, le code frontal, les bibliothèques clientes comme React, et ainsi de suite. En outre, le conteneur contient le code du projet, le runtime Python et toutes les dépendances de projet Python avec les versions correctes. Enfin, le conteneur peut spécifier les extensions Visual Studio Code à installer afin que l’ensemble de l’équipe dispose des mêmes outils disponibles. Ainsi, lorsqu’un nouveau développeur rejoint l’équipe, l’ensemble de l’environnement, y compris les outils, les dépendances et les données, est prêt à être cloné sur son ordinateur local et peut commencer à travailler immédiatement.

Voir Développement à l’intérieur d’un conteneur.

Utilisation de Visual Studio 2022

Visual Studio 2022 est un environnement de développement intégré complet (IDE) complet avec prise en charge du développement d’applications Python et de nombreux outils et extensions intégrés pour accéder aux ressources Azure et les déployer. Bien que la plupart de la documentation relative à la création d’applications web Python sur Azure se concentrent sur l’utilisation de Visual Studio Code, Visual Studio 2022 est une excellente option si vous l’avez déjà installé, vous êtes à l’aise avec l’utiliser et utilisez-le pour les projets .NET ou C++.

  • En général, consultez Visual Studio | Documentation Python pour toutes les documentations relatives à l’utilisation de Python sur Visual Studio 2022.

  • Pour connaître les étapes de configuration, consultez La prise en charge de Python dans Visual Studio , qui vous guide tout au long des étapes d’installation de la charge de travail Python dans Visual Studio 2022.

  • Pour obtenir un flux de travail général d’utilisation de Python pour le développement web, consultez Démarrage rapide : Créer votre première application web Python à l’aide de Visual Studio. Cet article est utile pour comprendre comment créer une application web Python à partir de zéro (mais n’inclut pas le déploiement sur Azure).

  • Pour utiliser Visual Studio 2022 pour gérer les ressources Azure et les déployer sur Azure, consultez Développement Azure avec Visual Studio. Bien que la majeure partie de la documentation mentionne spécifiquement .NET, l’outil de gestion des ressources Azure et le déploiement sur Azure fonctionne de la même façon, quel que soit le langage de programmation.

  • Quand aucun outil intégré n’est disponible dans Visual Studio 2022 pour une tâche de gestion ou de déploiement Azure donnée, vous pouvez toujours utiliser des commandes Azure CLI.

Utilisation d’autres IDE

Si vous travaillez dans un autre IDE qui n’a pas de prise en charge explicite pour Azure, vous pouvez utiliser Azure CLI pour gérer les ressources Azure. Dans la capture d’écran ci-dessous, une application web Flask simple est ouverte dans l’IDE PyCharm . L’application web peut être déployée sur azure App Service à l’aide de la az webapp up commande. Dans la capture d’écran, la commande CLI s’exécute dans l’émulateur de terminal incorporé PyCharm. Si votre IDE n’a pas d’émulateur incorporé, vous pouvez utiliser n’importe quel terminal et la même commande. Azure CLI doit être installé sur votre ordinateur et être accessible dans les deux cas.

A screenshot of the PyCharm IDE with an Azure CLI command deploying a web app.

Commandes Azure CLI

Lorsque vous travaillez localement avec des applications web à l’aide des commandes Azure CLI , vous allez généralement utiliser les commandes suivantes :

Commande Description
az webapp Gère les applications web. Inclut les sous-commandes créées pour créer une application web et la création et le déploiement à partir d’un espace de travail local
az container app Gère Azure Container Apps.
az staticwebapp Gère Azure Static Web Apps.
az group Gère les groupes de ressources et les déploiements de modèles. Utilisez la sous-commande créer dans un groupe de ressources pour placer vos ressources Azure.
az appservice Gère les plans App Service.
az config Configuration Azure CLI managée. Pour enregistrer les séquences de touches, vous pouvez définir un emplacement ou un groupe de ressources par défaut que d’autres commandes utilisent automatiquement.

Voici un exemple de commande Azure CLI pour créer une application web et des ressources associées, puis la déployer sur Azure dans une commande à l’aide d’az webapp up. Exécutez la commande dans le répertoire racine de votre application web.

az webapp up \
    --runtime PYTHON:3.9 \
    --sku B1 \
    --logs

Pour plus d’informations sur cet exemple, consultez Démarrage rapide : Déployer une application web Python (Django ou Flask) sur Azure App Service.

Gardez à l’esprit que pour certains de vos flux de travail Azure, vous pouvez également utiliser Azure CLI à partir d’Azure Cloud Shell. Azure Cloud Shell est un interpréteur de commandes interactif et authentifié accessible via un navigateur pour la gestion des ressources Azure.

Packages de clés du Kit de développement logiciel (SDK) Azure

Dans vos applications web Python, vous pouvez faire référence par programmation aux services Azure à l’aide du Kit de développement logiciel (SDK) Azure pour Python. Ce Kit de développement logiciel (SDK) est abordé en détail dans la section Utiliser les bibliothèques Azure (SDK) pour Python. Dans cette section, nous allons brièvement mentionner certains packages clés du Kit de développement logiciel (SDK) que vous utiliserez dans le développement web. Et nous allons montrer un exemple autour de la meilleure pratique pour l’authentification de votre code avec des ressources Azure.

Voici quelques-uns des packages couramment utilisés dans le développement d’applications web. Vous pouvez installer des packages dans votre environnement virtuel directement avec pip. Ou placez le nom de l’index de package Python (Pypi) dans votre fichier requirements.txt .

Documentation du Kit de développement logiciel (SDK) Installer Index de package Python
Identité Azure pip install azure-identity azure-identity
Azure Storage Blobs pip install azure-storage-blob azure-storage-blob
Azure Cosmos DB pip install azure-cosmos azure-cosmos
Azure Key Vault Secrets pip install azure-keyvault-secrets azure-keyvault-secrets

Le package azure-identity permet à votre application web de s’authentifier avec l’ID Microsoft Entra. Pour l’authentification dans le code de votre application web, il est recommandé d’utiliser DefaultAzureCredential dans le azure-identity package. Voici un exemple d’accès à Stockage Azure. Le modèle est similaire pour d’autres ressources Azure.

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient

azure_credential = DefaultAzureCredential()
blob_service_client = BlobServiceClient(
    account_url=account_url,
    credential=azure_credential)

Les DefaultAzureCredential emplacements prédéfinis recherchent les informations de compte, par exemple dans les variables d’environnement ou à partir de la connexion Azure CLI. Pour plus d’informations sur la DefaultAzureCredential logique, consultez Authentifier les applications Python auprès des services Azure à l’aide du Kit de développement logiciel (SDK) Azure pour Python.

Infrastructures web basées sur Python

Dans le développement d’applications web Python, vous travaillez souvent avec des infrastructures web basées sur Python. Ces frameworks fournissent des fonctionnalités telles que les modèles de page, la gestion des sessions, l’accès aux bases de données et l’accès facile aux objets de requête et de réponse HTTP. Les frameworks vous permettent d’éviter de devoir réinventer la roue pour des fonctionnalités courantes.

Trois frameworks web Python courants sont Django, Flask ou FastAPI. Ces frameworks web et d’autres peuvent être utilisés avec Azure.

Voici un exemple de la façon dont vous pouvez commencer rapidement avec ces frameworks localement. En exécutant ces commandes, vous allez finir par une application, bien qu’une application simple qui puisse être déployée sur Azure. Exécutez ces commandes dans un environnement virtuel.

Étape 1 : Télécharger les frameworks avec pip.

pip install Django

Étape 2 : Créer une application hello world.

Créez un exemple de projet à l’aide de la commande django-admin startproject . Le projet inclut un fichier manage.py qui est le point d’entrée pour l’exécution de l’application.

django-admin startproject hello_world

Étape 3 : Exécutez le code localement.

Django utilise WSGI pour exécuter l’application.

python hello_world\manage.py runserver

Étape 4 : Parcourir l’application hello world.

http://127.0.0.1:8000/

À ce stade, ajoutez un fichier requirements.txt , puis vous pouvez déployer l’application web sur Azure ou la conteneuriser avec Docker, puis la déployer.

Étapes suivantes