Partager via


Partie 5 : Principales dépendances d’application, instructions d’importation et variables d’environnement

Partie précédente : Implémentation principale de l’application

Cette section examine les bibliothèques Python importées par l’application principale et les variables d’environnement dont elle dépend. Lorsque l’application est déployée sur Azure, ces variables d’environnement sont fournies via les paramètres d’application dans Azure App Service.

Dépendances et déclarations d'importation

L’application s’appuie sur les bibliothèques suivantes :

  • Flask : pour définir l’API web
  • requêtes : le client HTTP Python standard pour effectuer des appels d’API sortants
  • azure.identity : pour la gestion de l'authentification par jetons Microsoft Entra ID
  • azure.keyvault.secrets : pour récupérer en toute sécurité des secrets à partir d’Azure Key Vault
  • azure.storage.queue : pour interagir avec le stockage de files d'attente Azure

Ces dépendances sont incluses dans le fichier requirements.txt de l’application et sont installées pendant le déploiement ou l’installation locale.

flask
requests
azure.identity
azure.keyvault.secrets
azure.storage.queue

Lorsque vous déployez l’application sur Azure App Service, Azure installe automatiquement ces exigences sur le serveur hôte. Lors de l’exécution locale, vous les installez dans votre environnement avec pip install -r requirements.txt.

Le fichier de code commence par les instructions d’importation requises pour les parties des bibliothèques utilisées dans le code :

from flask import Flask, request, jsonify
import requests, random, string, os
from datetime import datetime
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
from azure.storage.queue import QueueClient

Variables d'environnement

Le code de l’application dépend de ces quatre variables d’environnement :

Variable Valeur
THIRD_PARTY_API_ENDPOINT URL de l’API tierce, telle que https://msdocs-example-api.azurewebsites.net/api/RandomNumber décrite dans la partie 3.
KEY_VAULT_URL URL d’Azure Key Vault dans laquelle vous avez stocké la clé d’accès pour l’API tierce.
THIRD_PARTY_API_SECRET_NAME Nom du secret dans Key Vault qui contient la clé d’accès pour l’API tierce.
STORAGE_QUEUE_URL URL d’une file d’attente de stockage Azure que vous configurez dans Azure, par https://msdocsexamplemainapp.queue.core.windows.net/code-requests exemple (voir la partie 4). Étant donné que le nom de la file d’attente est inclus à la fin de l’URL, vous ne voyez pas le nom n’importe où dans le code.

La façon dont vous définissez ces variables dépend de l’emplacement d’exécution du code :

  • Lorsque vous exécutez le code localement, vous créez ces variables dans l’interpréteur de commandes que vous utilisez (par exemple, PowerShell, Bash ou CMD). (Si vous déployez l’application sur une machine virtuelle, vous créez des variables côté serveur similaires.) Vous pouvez également utiliser une bibliothèque comme python-dotenv, qui lit des paires clé-valeur à partir d’un fichier .env et les définit en tant que variables d’environnement

  • Lorsque le code est déployé sur Azure App Service, comme indiqué dans cette procédure pas à pas, vous n’avez pas accès au serveur lui-même. Au lieu de cela, vous définissez les paramètres d’application avec les mêmes noms dans la configuration App Service. Ces paramètres sont automatiquement exposés à l’application en tant que variables d’environnement.

Les scripts d’approvisionnement créent ces paramètres à l’aide de la commande Azure CLI. az webapp config appsettings set Les quatre variables sont définies avec une seule commande.

Pour créer des paramètres via le portail Azure, consultez Configurer une application App Service dans le portail Azure.

Lorsque vous exécutez le code localement, vous devez également spécifier des variables d’environnement qui contiennent des informations sur votre principal de service local. DefaultAzureCredential recherche ces valeurs. Quand vous êtes déployé sur App Service, vous n’avez pas besoin de définir ces valeurs, car l’identité managée affectée par le système de l’application est utilisée à la place pour s’authentifier.

Variable Valeur
AZURE_TENANT_ID ID du locataire Microsoft Entra (répertoire).
AZURE_CLIENT_ID ID client (application) d’une inscription d’application dans le locataire.
AZURE_CLIENT_SECRET Clé secrète client générée pour l’inscription d’application.

Pour plus d’informations, consultez Authentifier les applications Python auprès des services Azure pendant le développement local à l’aide de principaux de service.