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.
Vorige deel: Implementatie van de hoofd-app
In deze sectie worden de Python-bibliotheken gecontroleerd die zijn geïmporteerd door de hoofdtoepassing en de omgevingsvariabelen die ervan afhankelijk zijn. Wanneer u de app in Azure implementeert, geeft u deze omgevingsvariabelen op via toepassingsinstellingen in Azure App Service.
Afhankelijkheden en importregels
De toepassing is afhankelijk van de volgende bibliotheken:
- Flask: de web-API definiëren
- aanvragen: de standaard Python HTTP-client voor het maken van uitgaande API-aanroepen
- azure.identity: voor het verwerken van verificatie op basis van microsoft Entra ID-tokens
- azure.keyvault.secrets: geheimen veilig ophalen uit Azure Key Vault
- azure.storage.queue: interactie met Azure Queue Storage
Neem deze afhankelijkheden op in het requirements.txt-bestand van de app. Installeer ze tijdens de implementatie of lokale installatie.
flask
requests
azure.identity
azure.keyvault.secrets
azure.storage.queue
Wanneer u de app implementeert in Azure App Service, worden deze vereisten automatisch op de hostserver geïnstalleerd. Wanneer u ze lokaal uitvoert, installeert u deze in uw omgeving met pip install -r requirements.txt.
Het codebestand begint met de vereiste importinstructies voor de onderdelen van de bibliotheken die in de code worden gebruikt:
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
Omgevingsvariabelen
De app-code is afhankelijk van deze vier omgevingsvariabelen:
| Veranderlijk | Waarde |
|---|---|
THIRD_PARTY_API_ENDPOINT |
De URL van de API van derden, zoals https://msdocs-example-api.azurewebsites.net/api/RandomNumber beschreven in deel 3. |
KEY_VAULT_URL |
De URL van de Azure Key Vault waarin u de toegangssleutel voor de API van derden hebt opgeslagen. |
THIRD_PARTY_API_SECRET_NAME |
De naam van het geheim in Key Vault die de toegangssleutel voor de API van derden bevat. |
STORAGE_QUEUE_URL |
De URL van een Azure Storage-wachtrij die u in Azure configureert, zoals https://msdocsexamplemainapp.queue.core.windows.net/code-requests (zie deel 4). Omdat de wachtrijnaam aan het einde van de URL is opgenomen, ziet u de naam nergens in de code. |
Hoe u deze variabelen instelt, is afhankelijk van waar de code wordt uitgevoerd:
Wanneer u de code lokaal uitvoert, maakt u deze variabelen in de opdrachtshell die u gebruikt (zoals PowerShell, Bash of CMD). (Als u de app implementeert op een virtuele machine, maakt u vergelijkbare variabelen aan de serverzijde.) U kunt ook een bibliotheek zoals python-dotenv gebruiken, waarmee sleutel-waardeparen uit een .env-bestand worden gelezen en ingesteld als omgevingsvariabelen.
Wanneer u de code implementeert in Azure App Service, zoals wordt weergegeven in dit scenario, hebt u geen toegang tot de server zelf. Definieer in plaats daarvan toepassingsinstellingen met dezelfde namen in de App Service-configuratie. Deze instellingen maken de toepassing automatisch beschikbaar als omgevingsvariabelen.
De inrichtingsscripts maken deze instellingen met behulp van de opdracht Azure CLI. az webapp config appsettings set Stel alle vier de variabelen in met één opdracht.
Zie Een App Service-app configureren in Azure Portalom instellingen te maken via Azure Portal.
Wanneer u de code lokaal uitvoert, moet u ook omgevingsvariabelen opgeven die informatie bevatten over uw lokale service-principal.
DefaultAzureCredential zoekt naar deze waarden. Wanneer deze worden geïmplementeerd in App Service, hoeft u deze waarden niet in te stellen omdat de door het systeem toegewezen beheerde identiteit van de app wordt gebruikt om te verifiëren.
| Veranderlijk | Waarde |
|---|---|
AZURE_TENANT_ID |
De ID van de Microsoft Entra-tenant (directory). |
AZURE_CLIENT_ID |
De client-id (toepassing) van een app-registratie in de tenant. |
AZURE_CLIENT_SECRET |
Een clientgeheim dat u hebt gegenereerd voor de app-registratie. |
Zie Python-apps verifiëren bij Azure-services tijdens lokale ontwikkeling met behulp van service-principalsvoor meer informatie.