Freigeben über


Ü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 MongoDB für Azure Cosmos DB verwenden, um Daten zu speichern. Weitere Informationen zur Verwendung von Containern in Azure finden Sie unter Vergleich von Azure-Containeroptionen.

In diesem Tutorial führen Sie Folgendes durch:

Nach Abschluss der Artikel in dieser Lernprogrammreihe verfügen Sie über die Basis für continuous Integration (CI) und Continuous Deployment (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

Zu den Komponenten, die die Entwicklerumgebung in diesem Lernprogramm unterstützen, gehören:

  • 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 packen.

  • Entwicklungstools: Enthält einen 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: Zugriff auf die lokale MongoDB-Datenbank, die über eine Verbindungszeichenfolge bereitgestellt wird.

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 von integrierten Images und benutzerdefinierten Images mit Docker bereitzustellen.
    • Web App für Container verwendet einen Webhook in der Azure Container Registry (ACR), um über neue Images benachrichtigt zu werden. Wenn ein neues Bild an die Registrierung übertragen wird, 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. Sie stellt eine Registrierung in der Nähe Ihrer Bereitstellungen in Azure bereit, mit der Sie den Zugriff mithilfe Ihrer Microsoft Entra-Gruppen und -Berechtigungen steuern können.

    • 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 Cosmos DB für MongoDB

    • Die Azure Cosmos DB für MongoDB ist eine NoSQL-Datenbank, die in diesem Lernprogramm zur Datenspeicherung verwendet wird.

    • Die containerisierte Anwendung verbindet sich mit der Azure Cosmos DB-Ressource und greift darauf zu, indem sie eine Verbindungszeichenfolge verwendet, die als Umgebungsvariable gespeichert und der App bereitgestellt wird.

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, ohne dass explizite Anmeldeinformationen erforderlich sind. In diesem Tutorial wird die verwaltete Identität während der Einrichtung des App Service für die Verwendung eines Containerabbilds aus der Registrierung konfiguriert.

Die Beispiel-Webanwendung des Tutorials verwendet MongoDB zur Speicherung von Daten. Der Beispielcode stellt über eine Verbindungszeichenfolge eine Verbindung mit Azure Cosmos DB 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