Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Vorheriger Teil: Hauptimplementierung der App
In diesem Abschnitt werden die von der Hauptanwendung importierten Python-Bibliotheken und die Umgebungsvariablen überprüft, von der sie abhängig sind. Wenn Sie die App für Azure bereitstellen, geben Sie diese Umgebungsvariablen über anwendungseinstellungen in Azure App Service an.
Abhängigkeiten und Importanweisungen
Die Anwendung basiert auf den folgenden Bibliotheken:
- Flask – zum Definieren der Web-API
- anforderungen – der standardmäßige Python-HTTP-Client für ausgehende API-Aufrufe
- azure.identity – zur Behandlung der tokenbasierten Microsoft Entra-ID-Authentifizierung
- azure.keyvault.secrets – zum sicheren Abrufen von Geheimschlüsseln aus Azure Key Vault
- azure.storage.queue – für die Interaktion mit Azure Queue Storage
Fügen Sie diese Abhängigkeiten in die requirements.txt Datei der App ein. Installieren Sie sie während der Bereitstellung oder des lokalen Setups.
flask
requests
azure.identity
azure.keyvault.secrets
azure.storage.queue
Wenn Sie die App für Azure App Service bereitstellen, installiert Azure diese Anforderungen automatisch auf dem Hostserver. Wenn Sie lokal arbeiten, installieren Sie sie mit pip install -r requirements.txt in Ihrer Umgebung.
Die Codedatei beginnt mit den erforderlichen Importanweisungen für die Teile der im Code verwendeten Bibliotheken:
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
Umgebungsvariablen
Der App-Code hängt von den folgenden vier Umgebungsvariablen ab:
| Variable | Wert |
|---|---|
THIRD_PARTY_API_ENDPOINT |
Die URL der Drittanbieter-API, wie https://msdocs-example-api.azurewebsites.net/api/RandomNumber in Teil 3 beschrieben. |
KEY_VAULT_URL |
Die URL des Azure Key Vault, in dem Sie den Zugriffsschlüssel für die DRITTANBIETER-API gespeichert haben. |
THIRD_PARTY_API_SECRET_NAME |
Der Name des geheimen Schlüssels im Key Vault, der den Zugriffsschlüssel für die DRITTANBIETER-API enthält. |
STORAGE_QUEUE_URL |
Die URL einer Azure Storage-Warteschlange, die Sie in Azure konfigurieren, z. B. https://msdocsexamplemainapp.queue.core.windows.net/code-requests (siehe Teil 4). Da der Warteschlangenname am Ende der URL enthalten ist, wird der Name im Code nicht angezeigt. |
Wie Sie diese Variablen festlegen, hängt davon ab, wo der Code ausgeführt wird:
Wenn Sie den Code lokal ausführen, erstellen Sie diese Variablen innerhalb der verwendeten Befehlsshell (z. B. PowerShell, Bash oder CMD). (Wenn Sie die App auf einem virtuellen Computer bereitstellen, erstellen Sie ähnliche serverseitige Variablen.) Sie können auch eine Bibliothek wie python-dotenv verwenden, die Schlüsselwertpaare aus einer env-Datei liest und als Umgebungsvariablen festlegt.
Wenn Sie den Code für Azure App Service bereitstellen, wie in dieser exemplarischen Vorgehensweise gezeigt, haben Sie keinen Zugriff auf den Server selbst. Definieren Sie stattdessen Anwendungseinstellungen mit denselben Namen in der App Service-Konfiguration. Diese Einstellungen machen die Anwendung automatisch als Umgebungsvariablen verfügbar.
Die Bereitstellungsskripts erstellen diese Einstellungen mithilfe des Befehls Azure CLI. az webapp config appsettings set Legen Sie alle vier Variablen mit einem einzigen Befehl fest.
Informationen zum Erstellen von Einstellungen über das Azure-Portal finden Sie unter Konfigurieren einer App Service-App im Azure-Portal.
Wenn Sie den Code lokal ausführen, müssen Sie auch Umgebungsvariablen angeben, die Informationen zu Ihrem lokalen Dienstprinzipal enthalten.
DefaultAzureCredential sucht nach diesen Werten. Wenn Sie für App Service bereitgestellt werden, müssen Sie diese Werte nicht festlegen, da stattdessen die vom System zugewiesene verwaltete Identität der App zur Authentifizierung verwendet wird.
| Variable | Wert |
|---|---|
AZURE_TENANT_ID |
Die Microsoft Entra-Mandanten-ID (Verzeichnis-ID). |
AZURE_CLIENT_ID |
Die Client-ID (Anwendungs-ID) einer App-Registrierung im Mandanten. |
AZURE_CLIENT_SECRET |
Ein geheimer Clientschlüssel, den Sie für die App-Registrierung generiert haben. |
Weitere Informationen finden Sie unter Authentifizieren von Python-Apps für Azure-Dienste während der lokalen Entwicklung mithilfe von Dienstprinzipalen.