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 vous déployez l’application sur Azure, fournissez ces variables d’environnement 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

Incluez ces dépendances dans le fichier requirements.txt de l’application. Installez-les 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, installez-les 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 :

  • Lors de l’exécution du code localement, 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 vous déployez le code 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, définissez les paramètres d’application avec les mêmes noms dans la configuration App Service. Ces paramètres exposent automatiquement 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 Définissez les quatre variables 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 (annuaire).
AZURE_CLIENT_ID ID client (application) d’un enregistrement d’application du locataire.
AZURE_CLIENT_SECRET Une clé secrète client que vous avez générée pour l’inscription de l’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.