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 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:
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 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.
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:
-
- 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.
-
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.
-
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:
Ein Azure-Konto, in dem Sie Folgendes erstellen können:
- Azure Container Registry
- Azure App Service
- Azure Cosmos DB für MongoDB (oder Zugriff auf ein Entsprechendes). Führen Sie die Schritte in Teil 2 dieses Lernprogramms aus, um eine Azure Cosmos DB für MongoDB-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.