Bien démarrer avec Python sur Azure

Utilisez ce document en tant que liste case activée et un guide lorsque vous commencez à développer des applications Python qui seront hébergées dans le cloud ou utilisent des services cloud. Si vous suivez les liens et instructions de ce document, vous allez :

  • avez une compréhension fondamentale de ce que le cloud est et de la façon dont vous concevez votre application avec le cloud à l’esprit.
  • configurez votre environnement de développement local, y compris les outils et les bibliothèques dont vous aurez besoin pour créer des applications basées sur le cloud.
  • comprendre le flux de travail lors du développement d’applications cloud.

Phase 1 : Découvrir les concepts

Si vous débutez avec le développement d’applications pour le cloud, cette courte série d’articles avec des vidéos vous aidera à accélérer rapidement.

Une fois que vous comprenez les principes de base du développement d’applications pour le cloud, vous devez configurer votre environnement de développement et suivre un guide de démarrage rapide ou un tutoriel pour créer votre première application.

Phase 2 : Configurer votre environnement Python local pour le développement Azure

Pour développer des applications Python à l’aide d’Azure, vous souhaitez d’abord configurer votre environnement de développement local. La configuration inclut la création d’un compte Azure, l’installation d’outils pour le développement Azure et la connexion de ces outils à votre compte Azure.

Le développement sur Azure nécessite Python 3.8 ou une version ultérieure. Pour vérifier la version de Python sur votre station de travail, dans une fenêtre de console, tapez la commande python3 --version pour macOS/Linux ou py --version pour Windows.

Créer un compte Azure

Pour développer des applications Python avec Azure, vous avez besoin d’un compte Azure. Votre compte Azure est les informations d’identification que vous utilisez pour vous connecter à Azure et ce que vous utilisez pour créer des ressources Azure.

Si vous utilisez Azure au travail, contactez l’administrateur cloud de votre entreprise pour obtenir vos informations d’identification utilisées pour vous connecter à Azure.

Sinon, vous pouvez créer un compte Azure gratuitement et recevoir 12 mois de services populaires gratuitement et un crédit de 200 $ pour explorer Azure pendant 30 jours.

Utilisation du portail Azure

Une fois que vous avez vos informations d’identification, vous pouvez vous connecter au Portail Azure à l’adresse https://portal.azure.com. Le Portail Azure est généralement le moyen le plus simple de commencer à utiliser Azure, en particulier si vous débutez avec Azure et le développement cloud. Dans le Portail Azure, vous pouvez effectuer différentes tâches de gestion, telles que la création et la suppression de ressources.

Si vous êtes déjà expérimenté avec le développement Azure et cloud, vous commencerez probablement à utiliser des outils, tels que Visual Studio Code et Azure CLI. Les articles du Centre de développement Python montrent comment utiliser les Portail Azure, Visual Studio Code et Azure CLI.

Utiliser Visual Studio Code

Vous pouvez utiliser n’importe quel éditeur ou IDE pour écrire du code Python lors du développement pour Azure. Toutefois, vous pouvez envisager d’utiliser Visual Studio Code pour le développement Azure et Python. Visual Studio Code fournit de nombreuses extensions et personnalisations pour Azure et Python, ce qui facilite le cycle de développement et le déploiement d’un environnement local vers Azure.

Pour le développement Python à l’aide de Visual Studio Code, installez :

  • Extension Python. Cette extension inclut IntelliSense (Pylance), Linting, Débogage (multithread, distant), Jupyter Notebooks, mise en forme du code, refactorisation, tests unitaires, etc.

  • Pack d’extension Azure Tools. Le pack d’extensions contient des extensions pour utiliser Azure App Service, Azure Functions, Stockage Azure, Azure Cosmos DB et Azure Machines Virtuelles dans un package pratique. Les extensions Azure facilitent la découverte et l’interaction avec Azure.

Pour installer des extensions à partir de Visual Studio Code :

  1. Appuyez sur Ctrl+Maj+X pour ouvrir la fenêtre Extensions.
  2. Recherchez l’extension Azure Tools.
  3. Sélectionnez le bouton Installer.

Screenshot of the Visual Studio Code showing extensions panel searching for the Azure Tools extension pack.

Pour en savoir plus sur l’installation des extensions dans Visual Studio Code, reportez-vous au document Place de marché des extensions sur le site web Visual Studio Code.

Après avoir installé l’extension Azure Tools, connectez-vous avec votre compte Azure. Dans le volet de gauche, vous verrez une icône Azure. Sélectionnez cette icône, et un panneau de configuration pour les services Azure s’affichera. Choisissez Se connecter à Azure... pour terminer le processus d’authentification.

Screenshot of the Visual Studio Code showing how to sign-in the Azure tools to Azure.

Remarque

Si vous voyez l’erreur « L’abonnement avec le nom [ID d’abonnement] est introuvable », cela peut être dû au fait que vous vous trouvez derrière un proxy qui vous empêche d’atteindre l’API Azure. Configurez les variables d’environnement HTTP_PROXY et HTTPS_PROXY dans votre terminal à l’aide de vos informations de proxy :

# 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

Utilisation de l’interface de ligne de commande Microsoft Azure

Outre les Portail Azure et Visual Studio Code, Azure offre également l’outil en ligne de commande Azure CLI pour créer et gérer des ressources Azure. Azure CLI offre les avantages de l’efficacité, de la répétabilité et de la possibilité de scripter des tâches récurrentes. Dans la pratique, la plupart des développeurs utilisent à la fois le Portail Azure et Azure CLI.

Après avoir installé Azure CLI, connectez-vous à votre compte Azure à partir d’Azure CLI en tapant la commande az login dans une fenêtre de terminal sur votre station de travail.

az login

Azure CLI ouvre votre navigateur par défaut pour terminer le processus de connexion.

Configurer un environnement virtuel Python

Lors de la création d’applications Python pour Azure, il est recommandé de créer un environnement virtuel pour chaque application. Un environnement virtuel est un répertoire autonome pour une version particulière de Python, ainsi que les autres packages nécessaires pour cette application.

Pour créer un environnement virtuel, procédez comme suit.

  1. Ouvrez un terminal ou une invite de commandes.

  2. Créez un dossier pour votre projet.

  3. Créez l’environnement virtuel :

    # py -3 uses the global python interpreter. You can also use python3 -m venv .venv.
    py -3 -m venv .venv
    

    Cette commande exécute le module Python venv et crée un environnement virtuel dans un dossier .venv. En règle générale, les fichiers .gitignore ont une entrée « .venv » afin que l’environnement virtuel ne soit pas case activée intégré avec votre code case activée ins.

  4. Activez l’environnement virtuel :

    .venv\Scripts\activate
    

    Remarque

    Si vous utilisez l’interpréteur de commandes Windows, activez l’environnement virtuel avec .venv\Scripts\activate. Si vous utilisez Git Bash dans Visual Studio Code sur Windows, utilisez plutôt la commande source .venv/Scripts/activate .

Une fois que vous avez activé cet environnement (ce que Visual Studio Code fait automatiquement), l’exécution de pip install installe une bibliothèque dans cet environnement uniquement. Le code Python exécuté dans un environnement virtuel utilise les versions de package spécifiques installées dans cet environnement virtuel. L’utilisation de différents environnements virtuels permet à différentes applications d’utiliser différentes versions d’un package, ce qui est parfois nécessaire. Pour en savoir plus sur les environnements virtuels, consultez Environnements virtuels et packages dans la documentation Python.

Par exemple, si vos besoins se trouvent dans un fichier requirements.txt , puis dans l’environnement virtuel activé, vous pouvez les installer avec :

pip install -r requirements.txt

Phase 3 : Comprendre le flux de travail de développement Azure

Article précédent : Approvisionnement et gestion des ressources et accès à celles-ci

Maintenant que vous comprenez le modèle de services et de ressources d’Azure, vous pouvez comprendre le flux global de développement d’applications cloud avec Azure : approvisionner, coder, tester, déployer et gérer.

Step Outils principaux Activités
Approvisionner Azure CLI, Portail Azure, extensions VS Code Azure Tools, Cloud Shell, scripts Python à l’aide de bibliothèques de gestion du Kit de développement logiciel (SDK) Azure Créez des groupes de ressources et créez des ressources dans ces groupes ; configurez les ressources pour être prêtes à être utilisées à partir du code de l’application et/ou prêtes à recevoir du code Python dans les déploiements.
Code Éditeur de code (par exemple, Visual Studio Code et PyCharm), bibliothèques clientes du Kit de développement logiciel (SDK) Azure, documentation de référence Écrivez du code Python à l’aide des bibliothèques clientes du Kit de développement logiciel (SDK) Azure pour interagir avec les ressources approvisionnées.
Test Runtime Python, débogueur Exécuter du code Python localement sur des ressources cloud actives (en général des ressources de développement ou de test plutôt que des ressources de production). Le code lui-même n’est pas encore hébergé sur Azure, ce qui vous permet de déboguer et d’itérer rapidement.
Déployer VS Code, Azure CLI, GitHub Actions, Azure Pipelines Une fois que le code a été testé localement, déployez-le sur un service d’hébergement Azure approprié où le code proprement dit peut s’exécuter dans le cloud. Le code déployé s’exécute généralement sur des ressources de préproduction ou de production.
Gérer Azure CLI, Portail Azure, VS Code, scripts Python, Azure Monitor Superviser les performances et la réactivité des applications, effectuer des ajustements dans l’environnement de production, migrer les améliorations vers l’environnement de développement pour le prochain cycle de provisionnement et de développement.

Étape 1 : Approvisionner et configurer des ressources

Comme décrit dans l’article précédent de cette série, la première étape du développement de toute application consiste à approvisionner et à configurer les ressources qui composent l’environnement cible de votre application.

L’approvisionnement commence par la création d’un groupe de ressources dans une région Azure appropriée. Vous pouvez créer un groupe de ressources via les Portail Azure, VS Code avec les extensions Azure Tools, Azure CLI ou avec un script personnalisé qui utilise les bibliothèques de gestion du KIT de développement logiciel (SDK) Azure (ou l’API REST).

Dans ce groupe de ressources, vous approvisionnez et configurez les ressources individuelles dont vous avez besoin, à nouveau à l’aide du portail, de VS Code, de l’interface CLI ou du Kit de développement logiciel (SDK) Azure. (Une nouvelle fois, passez en revue le Guide du développeur Azure pour obtenir une vue d’ensemble des types de ressources disponibles.)

La configuration comprend la mise en place de stratégies d’accès qui contrôlent les identités (principaux de service ou ID d’application) qui peuvent accéder à ces ressources. Les stratégies d’accès sont gérées via le contrôle d’accès en fonction du rôle Azure (RBAC) ; certains services ont également des contrôles d’accès plus spécifiques. En tant que développeur cloud travaillant avec Azure, veillez à vous familiariser avec Azure RBAC, car vous l’utilisez uniquement avec n’importe quelle ressource qui présente des problèmes de sécurité.

Pour la plupart des scénarios d’application, vous créez généralement des scripts d’approvisionnement avec Azure CLI et/ou du code Python à l’aide des bibliothèques de gestion du KIT de développement logiciel (SDK) Azure. Ces scripts décrivent la totalité des besoins en ressources de votre application (en définissant essentiellement l’ordinateur cloud personnalisé sur lequel vous déployez l’application). Un script vous permet de recréer facilement le même ensemble de ressources dans différents environnements tels que le développement, le test, la préproduction et la production. Lorsque vous automatisez, vous pouvez éviter d’effectuer manuellement de nombreuses étapes répétées dans Portail Azure ou VS Code. Ces scripts permettent également de provisionner facilement un environnement dans une autre région ou d’utiliser des groupes de ressources différents. Si vous tenez également à jour ces scripts dans des dépôts de contrôle de code source, vous disposez également d’un historique complet des audits et des changements.

Étape 2 : Écrire le code de votre application pour utiliser des ressources

Une fois que vous avez provisionné les ressources dont vous avez besoin pour votre application, vous écrivez le code de l’application pour qu’il fonctionne avec les aspects de l’exécution de ces ressources.

Par exemple, dans l’étape d’approvisionnement, vous avez peut-être créé un compte de stockage Azure, créé un conteneur de blobs dans ce compte et défini des stratégies d’accès pour l’application sur ce conteneur. Ce processus de provisionnement est illustré dans l’Exemple - Provisionner le Stockage Azure. À partir de votre code, vous pouvez alors vous authentifier avec ce compte de stockage, puis créer, mettre à jour ou supprimer des objets blob dans ce conteneur. Ce processus d’exécution est illustré dans l’Exemple - Utiliser le Stockage Azure. De même, vous avez peut-être provisionné une base de données avec un schéma et les autorisations appropriées (comme illustré dans l’Exemple - Provisionner une base de données), afin que votre code d’application puisse se connecter à la base de données et effectuer les requêtes habituelles de création, de lecture, de mise à jour et de suppression.

Le code d’application utilise généralement des variables d’environnement pour identifier les noms et les URL des ressources à utiliser. Les variables d’environnement vous permettent de basculer facilement entre les environnements cloud (développement, test, intermédiaire et production) sans aucune modification du code. Les différents services Azure qui hébergent du code d’application fournissent un moyen de définir les variables nécessaires. Par exemple, dans Azure App Service (pour héberger des applications web) et Azure Functions (calcul serverless pour Azure), vous définissez les paramètres d’application via les Portail Azure, VS Code ou Azure CLI, qui apparaissent ensuite à votre code en tant que variables d’environnement.

En tant que développeur Python, vous allez probablement écrire du code d’application dans Python à l’aide des bibliothèques clientes du Kit de développement logiciel (SDK) Azure pour Python. Cela dit, toute partie indépendante d’une application cloud peut être écrite dans n’importe quel langage pris en charge. Si vous travaillez sur une équipe à l’aide de plusieurs langages de programmation, il est possible que certaines parties de l’application utilisent Python, certains JavaScript, certains Java et d’autres C#.

Le code d’application peut utiliser les bibliothèques de gestion du Kit de développement logiciel (SDK) Azure pour effectuer des opérations d’approvisionnement et de gestion en fonction des besoins. L’approvisionnement de scripts, de la même façon, peut utiliser les bibliothèques clientes du SDK pour initialiser des ressources avec des données spécifiques, ou effectuer des tâches de nettoyage sur des ressources cloud même lorsque ces scripts sont exécutés localement.

Étape 3 : Tester et déboguer votre code d’application localement

Les développeurs aiment généralement tester le code de l’application sur leurs stations de travail locales avant de déployer ce code dans le cloud. Le test du code d’application localement signifie que vous accédez généralement à d’autres ressources que vous avez déjà configurées dans le cloud, telles que le stockage, les bases de données, etc. La différence est que vous n’exécutez pas encore le code d’application lui-même dans un service cloud.

En exécutant le code localement, vous pouvez également tirer pleinement parti des fonctionnalités de débogage offertes par des outils tels que Visual Studio Code et gérer votre code dans un référentiel de contrôle de code source.

Vous n’avez pas besoin de modifier votre code pour les tests locaux : Azure prend entièrement en charge le développement et le débogage locaux à l’aide du même code que celui que vous déployez dans le cloud. Les variables d’environnement sont à nouveau la clé : dans le cloud, votre code peut accéder aux paramètres de la ressource d’hébergement en tant que variables d’environnement. Lorsque vous créez ces mêmes variables d’environnement localement, le même code s’exécute sans modification. Ce modèle fonctionne pour les informations d’identification d’authentification, les URL de ressource, les chaînes de connexion et un certain nombre d’autres paramètres, ce qui facilite l’utilisation des ressources dans un environnement de développement lors de l’exécution du code localement et des ressources de production une fois que le code est déployé dans le cloud.

Étape 4 : Déployer le code de votre application sur Azure

Une fois que vous avez testé votre code localement, vous êtes prêt à le déployer sur la ressource Azure que vous avez configurée pour l’héberger. Par exemple, si vous écrivez une application web Django, vous pouvez déployer ce code sur une machine virtuelle (où vous fournissez votre propre serveur web) ou sur Azure App Service (qui fournit le serveur web pour vous). Une fois déployé, ce code s’exécute sur le serveur plutôt que sur votre ordinateur local et peut accéder à toutes les ressources Azure qui lui sont autorisées.

Comme indiqué dans la section précédente, dans les processus de développement classiques, vous déployez tout d’abord votre code sur les ressources que vous avez approvisionnées dans un environnement de développement. Après une série de tests, vous déployez votre code sur des ressources dans un environnement intermédiaire, ce qui rend l’application disponible pour votre équipe de test et peut-être pour des clients en version préliminaire. Une fois que vous êtes satisfait des performances de l’application, vous pouvez déployer le code dans votre environnement de production. Tous ces déploiements peuvent également être automatisés via l’intégration continue et le déploiement continu à l’aide d’Azure Pipelines et gitHub Actions.

Toutefois, une fois que le code est déployé sur le cloud, il devient une application cloud, s’exécutant entièrement sur les ordinateurs serveur dans les centres de données Azure.

Étape 5 : Gérer, surveiller et réviser

Après le déploiement, vous devez vous assurer que l’application fonctionne comme il se doit, qu’elle répond aux demandes des clients et qu’elle utilise les ressources efficacement (et au moindre coût). Vous pouvez gérer la façon dont Azure met automatiquement à l’échelle votre déploiement en fonction des besoins, et vous pouvez collecter et surveiller les données de performances avec des Portail Azure, VS Code, Azure CLI ou des scripts personnalisés écrits avec les bibliothèques du Kit de développement logiciel (SDK) Azure. Vous pouvez ensuite ajuster en temps réel vos ressources approvisionnées dans le but d’optimiser les performances, toujours à l’aide des mêmes outils.

La surveillance vous donne des indications sur la façon dont vous pouvez restructurer votre application cloud. Par exemple, vous pouvez constater que certaines parties d’une application web (par exemple, un groupe de points de terminaison d’API) sont utilisées uniquement de façon occasionnelle par rapport aux parties principales. Vous pouvez ensuite choisir de déployer ces API séparément en tant qu’Azure Functions serverless. En tant que fonctions, ils disposent de leurs propres ressources de calcul de stockage qui ne sont pas en concurrence avec l’application principale, mais ne coûtent que des centimes par mois. Votre application principale devient alors plus réactive à un plus grand nombre de clients sans avoir à effectuer un scale-up vers un niveau tarifaire plus élevé.

Étapes suivantes

Vous êtes maintenant familiarisé avec la structure basique d’Azure et le flux de développement global : approvisionnez des ressources, écrivez et testez du code, déployez le code sur Azure, puis surveillez et gérez ces ressources.