Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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.