Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De Python-provider voor Azure App Configuration biedt ingebouwde mogelijkheden voor cachen en vernieuwen. Deze zelfstudie laat zien hoe u dynamische configuratie inschakelt in Python-toepassingen.
Vereisten
- Een Azure-account met een actief abonnement. Maak gratis een account.
- Een Azure App Configuration-store. Een winkel maken.
- Python 3.8 of hoger. Voor informatie over het instellen van Python op Windows, zie de documentatie voor Python on Windows.
Sleutelwaarden toevoegen
Voeg het volgende sleutel-waardepaar toe aan uw Azure App Configuration-store. Ga voor meer informatie over hoe u sleutel-waardeparen aan een store toevoegt met behulp van de Azure-portal of de CLI naar Een sleutel-waardepaar maken.
| Sleutel | Waarde | Label | Inhoudstype |
|---|---|---|---|
| bericht | Hallo wereld! | Leeg laten | Leeg laten |
| sentinel | 1 | Leeg laten | Leeg laten |
Notitie
Een sentinel-sleutel is een sleutel die u bijwerkt nadat u de wijziging van alle andere sleutels hebt voltooid. Uw app bewaakt de sentinel-sleutel. Wanneer er een wijziging wordt gedetecteerd, vernieuwt uw app alle configuratiewaarden. Deze aanpak helpt om de consistentie van de configuratie in uw app te garanderen en vermindert het totale aantal aanvragen dat is gedaan in uw Azure-app Configuratiearchief, vergeleken met het bewaken van alle sleutels voor wijzigingen.
Consoletoepassingen
Maak een nieuw Python-bestand met de naam app.py en voeg de volgende code toe:
U gebruikt de
DefaultAzureCredentialvoor verificatie bij uw App Configuration-store. Volg de instructies om aan uw aanmeldingsgegevens de rol App Configuration Data Reader toe te wijzen. Zorg ervoor dat u voldoende tijd hebt om de machtiging door te geven voordat u de toepassing uitvoert.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)Voer uw script uit:
python app.pyControleer de uitvoer.
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!Werk de volgende sleutelwaarden bij naar het Azure-app Configuratiearchief.
Sleutel Waarde Label Inhoudstype bericht Hallo wereld Vernieuwd! Leeg laten Leeg laten sentinel 2 Leeg laten Leeg laten Nadat de waarden zijn bijgewerkt en het verversingsinterval is verstreken, verschijnt de bijgewerkte waarde.
Hello World Refreshed!
Webtoepassingen
In het volgende voorbeeld ziet u hoe u een bestaande webtoepassing bijwerkt om vernieuwbare configuratiewaarden te gebruiken. Een callback kan worden opgegeven voor het on_refresh_success trefwoordargument van de load functie. Deze callback wordt aangeroepen wanneer een configuratiewijziging wordt gedetecteerd op de server en kan worden gebruikt om de configuratiewaarden in de toepassing bij te werken.
In app.py configureert u Azure App Configuration om uw configuratiewaarden te laden. Werk vervolgens uw eindpunten bij om te controleren op bijgewerkte configuratiewaarden.
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)
Werk uw sjabloon index.html bij om de nieuwe configuratiewaarden te gebruiken.
<!doctype html>
<head>
<title>Hello Azure App Configuration - Python Flask Example</title>
</head>
<html>
<body>
<main>
<div>
<h1>{{message}}</h1>
</div>
</main>
</body>
</html>
Wanneer deze eindpunten worden geactiveerd, kan er een vernieuwingscontrole worden uitgevoerd om ervoor te zorgen dat de meest recente configuratiewaarden worden gebruikt. De controle kan onmiddellijk terugkeren als het vernieuwingsinterval nog niet is verstreken of als er al een vernieuwing bezig is.
Wanneer een vernieuwing is voltooid, worden alle waarden in één keer bijgewerkt, zodat de configuratie altijd consistent is binnen het object.
Notitie
Als het verversingsinterval niet is verstreken, wordt er geen verversing geprobeerd en keert de controle onmiddellijk terug.
Volgende stappen
In deze zelfstudie hebt u uw Python-app ingeschakeld om configuratie-instellingen dynamisch te vernieuwen vanuit Azure-app Configuratie. Als u wilt weten hoe u een door Azure beheerde identiteit gebruikt om de toegang tot Azure-app Configuratie te stroomlijnen, gaat u verder met de volgende zelfstudie.