Partage via


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, comme Django, Flaskou FastAPI.

Les applications web Python développées localement peuvent être déployées sur des services tels que Azure App Service, Azure Container Appsou 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 les Configurer 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 l'installation 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

Le Visual Studio Code environnement de développement intégré (IDE) 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 extensions VS Code. Vous pouvez installer des extensions à partir de l'Extensions View 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 azure Static Web Apps 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 :

    • L’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.

    • L’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, les extensions bases de données Azureet les extensions 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 mots clés à 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.

Capture d’écran de la palette de commandes Visual Studio Code pour 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 la gestion d’environnements tels que virtualenv ou venv, l’extension Conteneur de développement Visual Studio Code (basée sur l'ouvrir la spécification du conteneur de développement) vous permet d’utiliser un conteneur Docker en tant qu’environnement conteneurisé complet. 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 exigences système, des configurations d’interpréteur de commandes, ou utilisez d'autres langages entièrement, vous pouvez utiliser un conteneur de développement pour configurer explicitement toutes les parties de votre projet qui pourraient se trouver en dehors d'un environnement Python standard.

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) 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 | La documentation Python pour toutes les documentations relatives à l’utilisation de Python sur Visual Studio 2022.

  • Pour connaître les étapes de configuration, consultez Installer 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 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 commande az webapp up. 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.

Capture d’écran de l’IDE PyCharm avec une commande Azure CLI déployant une application web.

Commandes Azure CLI

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

Commande Description
az webapp Gère les applications web. Inclut les sous-commandes créer et jusqu’à pour créer une application web ou pour créer et déployer à partir d’un espace de travail local, respectivement.
az container app Gère les applications Container Apps d'Azure.
az staticwebapp Gère les applications Web statiques Azure.
az group Gère les groupes de ressources et les déploiements de modèles. Utilisez la sous-commande créer pour créer un groupe de ressources dans lequel placer vos ressources Azure.
az appservice Gère les applications Web statiques Azure.
az config Gère la configuration d’Azure CLI. 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 de 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.

N’oubliez pas que pour certains de vos flux de travail Azure, vous pouvez également utiliser Azure CLI à partir d’un Azure Cloud Shell. Azure Cloud Shell est un interpréteur de commandes interactif, authentifié et accessible par le 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 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. Nous allons également présenter un exemple des meilleures pratiques pour authentifier 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
Azure Identity pip install azure-identity azure-identity
Blobs de stockage Azure 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 Microsoft Entra ID. Pour l’authentification dans le code de votre application web, il est recommandé d’utiliser le DefaultAzureCredential dans le package azure-identity. Voici un exemple d’accès au 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)

Le DefaultAzureCredential recherchera des informations de compte dans des emplacements prédéfinis, par exemple dans des variables d’environnement ou via la connexion Azure CLI. Pour plus d’informations sur la logique de DefaultAzureCredential, consultez Authentifier des 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 des modèles de page, la gestion de session, l’accès aux bases de données et un 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, Flaskou 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 à l’intérieur d’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 startproject django-admin. 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écuter 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