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.
In dieser Lernprogrammreihe wird gezeigt, wie Sie eine Python-Web-App containern und dann entweder lokal ausführen oder in Azure App Service bereitstellen. Mit App Service Web App für Container können Sie sich auf das Erstellen Ihrer Container konzentrieren, ohne sich Gedanken über das Verwalten und Warten eines unterliegenden Container-Orchestrators machen zu müssen. Wenn Sie Web-Apps erstellen, ist Azure App Service eine gute Option zum Ausführen Ihrer ersten Schritte mit Containern. Diese Containerweb-App kann entweder eine lokale MongoDB-Instanz oder Azure DocumentDB (mit MongoDB-Kompatibilität) verwenden, um Daten zu speichern. Weitere Informationen zur Verwendung von Containern in Azure finden Sie unter Vergleich der Azure-Containeroptionen.
In diesem Tutorial lernen Sie:
Erstellen und ausführen Sie einen Docker-Container lokal. Siehe Erstellen und ausführen einer containerisierten Python-Webanwendung lokal.
Erstellen Sie ein Docker-Containerimage direkt in Azure. Siehe Erstellen einer containerisierten Python-Web-App in Azure.
Konfigurieren Sie einen App-Dienst, um eine Web-App basierend auf dem Docker-Containerimage zu erstellen. Siehe Bereitstellen einer containerisierten Python-App für App Service.
Nach Abschluss der Artikel in dieser Tutorialreihe verfügen Sie über die Grundlage für die kontinuierliche Integration (CI) und die kontinuierliche Bereitstellung (CD) einer Python-Web-App in Azure.
Dienstübersicht
Das Dienstdiagramm, das dieses Lernprogramm unterstützt, zeigt zwei Umgebungen: Entwicklerumgebung und Azure-Umgebung. Es hebt die wichtigsten Azure-Dienste hervor, die im Entwicklungsprozess verwendet werden.
Entwicklerumgebung
Die Entwicklerumgebung für dieses Lernprogramm enthält die folgenden Komponenten:
Lokales Entwicklungssystem: Ein persönlicher Computer, der zum Codieren, Erstellen und Testen des Docker-Containers verwendet wird.
Docker-Containerisierung: Docker wird verwendet, um die App und deren Abhängigkeiten in einen tragbaren Container zu verpacken.
Entwicklungstools: Ein Code-Editor und andere erforderliche Tools für die Softwareentwicklung.
Lokale MongoDB-Instanz: Eine lokale MongoDB-Datenbank, die während der Entwicklung für die Datenspeicherung verwendet wird.
MongoDB-Verbindung: Eine Verbindungszeichenfolge, die Zugriff auf die lokale MongoDB-Datenbank ermöglicht.
Azure-Umgebung
Zu den Komponenten, die die Azure Umgebung in diesem Lernprogramm unterstützen, gehören:
-
- In Azure App Service verwendet Web App für Container die Docker-Containertechnologie, um Containerhosting sowohl für integrierte Images als auch für benutzerdefinierte Images mithilfe von Docker bereitzustellen.
- Web App für Container verwendet einen Webhook in der Azure Container Registry (ACR), um über neue Images benachrichtigt zu werden. Wenn Sie ein neues Image an die Registrierung übertragen, löst die Webhook-Benachrichtigung den App-Dienst aus, um das Update abzurufen und die App neu zu starten.
-
Mit azure Container Registry können Sie Docker-Images und deren Komponenten in Azure speichern und verwalten. Es stellt eine Registrierung in der Nähe Ihrer Bereitstellungen in Azure bereit, die Ihnen die Möglichkeit bietet, den Zugriff mithilfe Ihrer Microsoft Entra Gruppen und Berechtigungen zu steuern.
In diesem Lernprogramm ist Azure Container Registry die Registrierungsquelle, Sie können aber auch Docker Hub oder eine private Registrierung mit geringfügigen Änderungen verwenden.
Azure DocumentDB (mit MongoDB-Kompatibilität)
Azure DocumentDB ist eine mongoDB-kompatible Datenbank, die in diesem Lernprogramm zur Datenspeicherung verwendet wird.
Die containerisierte Anwendung stellt über eine Verbindungszeichenfolge eine Verbindung mit der Azure DocumentDB-Ressource her und greift auf diese zu. Diese speichern Sie als Umgebungsvariable und stellen sie der App zur Verfügung.
Authentifizierung
In diesem Lernprogramm erstellen Sie ein Docker-Image, entweder lokal oder in Azure, und stellen es dann in Azure App Service bereit. Der App-Dienst ruft das Containerimage aus einem Azure-Containerregistrierungs-Repository ab.
Um Bilder sicher aus dem Repository abzurufen, verwendet App Service eine vom System zugewiesene verwaltete Identität. Diese verwaltete Identität gewährt der Web-App Berechtigungen für die Interaktion mit anderen Azure Ressourcen, sodass Sie keine expliziten Anmeldeinformationen benötigen. Konfigurieren Sie in diesem Tutorial die verwaltete Identität bei der Einrichtung von App Service so, dass ein Containerimage aus einer Registrierung verwendet wird.
Die Beispiel-Webanwendung des Tutorials verwendet MongoDB zur Speicherung von Daten. Der Beispielcode stellt über eine Verbindungszeichenfolge eine Verbindung mit Azure DocumentDB bereit.
Voraussetzungen
Um dieses Lernprogramm abzuschließen, benötigen Sie Folgendes:
Ein Azure-Konto, in dem Sie Folgendes erstellen können:
- Azure Container Registry
- Azure App Service
- Azure DocumentDB (mit MongoDB-Kompatibilität) (oder Zugriff auf ein entsprechendes Dokument). Führen Sie die Schritte in Teil 2 dieses Lernprogramms aus, um eine Azure DocumentDB-Datenbank zu erstellen.
Visual Studio Code oder Azure CLI, abhängig von Ihrem Wahltool. Wenn Sie Visual Studio Code verwenden, benötigen Sie die Docker-Erweiterung und die Azure App Service-Erweiterung.
Diese Python-Pakete:
- MongoDB Shell (mongosh) für die Verbindung mit MongoDB.
- Flask oder Django als Webframework .
Docker ist lokal installiert.
Beispiel-App
Das Endergebnis dieses Lernprogramms ist eine Restaurantbewertungs-App, die in Azure bereitgestellt wird und ausgeführt werden kann und die wie in folgendem Screenshot aussieht.
In diesem Lernprogramm erstellen Sie eine Python Restaurant Review-App, die MongoDB für die Datenspeicherung verwendet. Eine Beispiel-App mit PostgreSQL finden Sie unter Erstellen und Bereitstellen einer Flask-Web-App in Azure mit einer verwalteten Identität.