Übersicht: Containerisierte Python-Web-App in Azure mit MongoDB

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:

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.

Screenshot der Im Lernprogramm verwendeten Dienste – Containerisierte Python-App in Azure.

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:

  • Azure App Service

    • 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.
  • Azure Container Registry

    • 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:

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.

Screenshot der Beispiel-App, die aus der python containerisierten Web-App erstellt wurde, die im Lernprogramm – Containerized Python App in Azure verwendet wird.

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.

Nächster Schritt