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.
Le fournisseur Python Azure App Configuration comprend des fonctionnalités intégrées de mise en cache et d’actualisation. Ce didacticiel explique comment intégrer une configuration dynamique dans des applications Python.
Prérequis
- Compte Azure avec un abonnement actif. Créez-en un gratuitement.
- Un magasin Azure App Configuration. Créez un magasin.
- Python 3.8 ou version ultérieure. Pour des informations sur la configuration de Python sur Windows, consultez la documentation Python sur Windows.
Ajouter des clés-valeurs
Ajoutez la paire clé-valeur suivante à votre magasin de configuration Azure App Configuration. Pour plus d’informations sur l’ajout de clés-valeurs à un magasin avec le Portail Azure ou la CLI, consultez Créer une clé-valeur.
| Clé | Valeur | Étiquette | Type de contenu |
|---|---|---|---|
| message | Salut tout le monde! | Laissez ce champ vide | Laissez ce champ vide |
| sentinel | 1 | Laissez ce champ vide | Laissez ce champ vide |
Remarque
Une clé Sentinel est une clé que vous mettez à jour après avoir modifié toutes les autres clés. Votre application surveille la clé Sentinel. Lorsqu’un changement est détecté, votre application actualise toutes les valeurs de configuration. Cette approche permet de garantir la cohérence de la configuration dans votre application et de réduire le nombre total de requêtes adressées à votre instance Azure App Configuration, par rapport à la surveillance de toutes les clés afin de détecter les modifications.
Applications console
Créez un fichier Python nommé app.py et ajoutez le code suivant :
Vous utilisez le
DefaultAzureCredentialpour vous authentifier auprès de votre magasin App Configuration. Suivez les instructions pour attribuer à votre identifiant le rôle de lecteur de données de configuration de l'application. Veillez à laisser suffisamment de temps pour que l’autorisation se propage avant d’exécuter votre application.from azure.appconfiguration.provider import load, WatchKey from azure.identity import DefaultAzureCredential import os import time endpoint = os.environ.get("APPCONFIGURATION_ENDPOINT") # Connecting to Azure App Configuration using connection string # Setting up to refresh when the Sentinel key is changed. config = load( endpoint=endpoint, credential=DefaultAzureCredential(), refresh_on=[WatchKey("sentinel")], refresh_interval=10, # Default value is 30 seconds, shorted for this sample ) print("Update the `message` in your Azure App Configuration store using Azure portal or CLI.") print("First, update the `message` value, and then update the `sentinel` key value.") while (True): # Refreshing the configuration setting config.refresh() # Current value of message print(config["message"]) # Waiting before the next refresh time.sleep(5)Exécutez votre script :
python app.pyVérifiez la sortie.
Update the `message` in your Azure App Configuration store using Azure portal or CLI. First, update the `message` value, and then update the `sentinel` key value. Hello World!Mettez à jour les valeurs de clés suivantes dans le magasin Azure App Configuration.
Clé Valeur Étiquette Type de contenu message Hello World mis à jour ! Laissez ce champ vide Laissez ce champ vide sentinel 2 Laissez ce champ vide Laissez ce champ vide Après la mise à jour des valeurs et la fin de l’intervalle de rafraîchissement, la valeur mise à jour apparaît.
Hello World Refreshed!
Applications web
L’exemple suivant montre comment mettre à jour une application web existante pour qu’elle utilise des valeurs de configuration actualisables. Un rappel peut être fourni à l’argument de mot clé on_refresh_success de la fonction load. Ce rappel est appelé lorsqu’une modification de configuration est détectée sur le serveur et il peut être utilisé pour mettre à jour les valeurs de configuration dans l’application.
Dans app.py, configurez Azure App Configuration pour charger vos valeurs de configuration. Ensuite, mettez à jour vos points de terminaison pour rechercher les valeurs de configuration mises à jour.
from azure.appconfiguration.provider import load, WatchKey
from azure.identity import DefaultAzureCredential
azure_app_config = None # declare azure_app_config as a global variable
def on_refresh_success():
app.config.update(azure_app_config)
global azure_app_config
azure_app_config = load(endpoint=os.environ.get("AZURE_APPCONFIG_ENDPOINT"),
credential=DefaultAzureCredential(),
refresh_on=[WatchKey("sentinel")],
on_refresh_success=on_refresh_success,
refresh_interval=10, # Default value is 30 seconds, shortened for this sample
)
@app.route("/")
def index():
global azure_app_config
# Refresh the configuration from Azure App Configuration service.
azure_app_config.refresh()
# Access a configuration setting directly from within Flask configuration
print("Request for index page received")
context = {}
context["message"] = app.config.get("message")
return render_template("index.html", **context)
Mettez à jour votre modèle index.html pour qu’il utilise les nouvelles valeurs de configuration.
<!doctype html>
<head>
<title>Hello Azure App Configuration - Python Flask Example</title>
</head>
<html>
<body>
<main>
<div>
<h1>{{message}}</h1>
</div>
</main>
</body>
</html>
Vous trouverez un exemple complet de projet ici.
Chaque fois que ces points de terminaison sont déclenchés, une vérification d’actualisation peut être effectuée pour vous assurer que les dernières valeurs de configuration sont utilisées. La vérification peut renvoyer immédiatement si l’intervalle d’actualisation ne s’est pas encore écoulé ou si une actualisation est déjà en cours.
Lorsqu’une actualisation est terminée, toutes les valeurs sont mises à jour à la fois, de sorte que la configuration est toujours cohérente dans l’objet.
Remarque
Si l’intervalle d’actualisation n’est pas écoulé, aucune actualisation n’est effectuée et la vérification se termine immédiatement.
Étapes suivantes
Dans ce tutoriel, vous avez permis à votre application Python d’actualiser dynamiquement les paramètres de configuration à partir d’Azure App Configuration. Pour savoir comment utiliser une identité managée Azure de façon à simplifier l’accès à Azure App Configuration, passez au tutoriel suivant.