Teilen über


Konfigurieren der lokalen Umgebung für die Bereitstellung von Python Web-Apps auf Azure

Dieser Artikel führt Sie durch das Einrichten Ihrer lokalen Umgebung, um Python -Web-Apps zu entwickeln und sie in Azure bereitzustellen. Ihre Web-App kann aus reinem Python bestehen oder eines der gängigen Python-basierten Web-Frameworks wie Django, Flask oder FastAPI verwenden.

Lokal entwickelte Python Web-Apps können für Dienste wie Azure App Service, Azure Container Apps oder Azure Static Web Apps bereitgestellt werden. Für die Bereitstellung gibt es viele Optionen. Beispielsweise können Sie für die App Service-Bereitstellung Code, einen Docker-Container oder eine statische Web-App bereitstellen. Wenn Sie aus Code bereitstellen, können Sie dies mit Visual Studio Code, über die Azure CLI, aus einem lokalen Git-Repository oder mit GitHub Actions tun. Wenn Sie in einem Docker-Container bereitstellen, können Sie dies aus der Azure Container Registry, Docker Hub oder einem privaten Repository tun.

Bevor Sie mit diesem Artikel fortfahren, empfehlen wir Ihnen, den Abschnitt Einrichten Ihrer Entwicklungsumgebung zu lesen, um Anleitungen zum Einrichten Ihrer Entwicklungsumgebung für Python und Azure zu erhalten. Im Folgenden werden wir die Einrichtung und Konfiguration speziell für die Entwicklung von Python Web-Apps besprechen.

Nachdem Sie Ihre lokale Entwicklungsumgebung für die Entwicklung von Python-Web-Apps eingerichtet haben, können Sie diese Artikel angehen:

Arbeiten mit Visual Studio Code

Die integrierte Entwicklungsumgebung (IDE) Visual Studio Code ist eine einfache Möglichkeit, Python-Web-Apps zu entwickeln und mit den Ressourcen von Azure zu arbeiten, die Web-Apps nutzen.

Tipp

Stellen Sie sicher, dass die Python Erweiterung installiert ist. Eine Übersicht über die Arbeit mit Python in VS Code finden Sie unter Einstieg in Python in VS Code.

In VS Code arbeiten Sie mit Azure-Ressourcen über VS Code-Erweiterungen. Sie können Erweiterungen aus der Erweiterungen-Ansicht oder über die Tastenkombination Strg+Shift+X installieren. Für Python Web-Apps werden Sie wahrscheinlich mit einer oder mehreren der folgenden Erweiterungen arbeiten:

  • Die Azure App Service Erweiterung ermöglicht Ihnen die Interaktion mit Azure App Service innerhalb von Visual Studio Code. App Service bietet vollständig verwaltetes Hosting für Webanwendungen, einschließlich Websites und Web-APIs.

  • Die Azure Static Web Apps-Erweiterung ermöglicht es Ihnen, Azure Static Web Apps direkt aus VS Code zu erstellen. Static Web Apps ist serverless und eine gute Wahl für das Hosting statischer Inhalte.

  • Wenn Sie planen, mit Containern zu arbeiten, dann installieren Sie:

    • Die Docker-Erweiterung ermöglicht es Ihnen, Container lokal zu erstellen und damit zu arbeiten. Sie können zum Beispiel eine containerisierte Python Web-App auf Azure App Service ausführen, indem Sie Web Apps for Containers verwenden.

    • Die Azure Container Apps-Erweiterung ermöglicht es Ihnen, containerisierte Apps direkt aus Visual Studio Code zu erstellen und bereitzustellen.

  • Es gibt weitere Erweiterungen wie z. B. die Azure Storage, Azure Databases und Azure Resources Erweiterungen. Sie können diese und andere Erweiterungen jederzeit nach Bedarf hinzufügen.

Auf Erweiterungen in Visual Studio Code können Sie zugreifen, wie Sie es von einer typischen IDE-Oberfläche erwarten würden, und zwar mit umfangreicher Unterstützung für Schlüsselwörter über die VS Code Befehlspalette. Um die Befehlspalette aufzurufen, verwenden Sie die Tastenkombination Strg+Shift+P. Die Befehlspalette ist ein guter Weg, um alle möglichen Aktionen zu sehen, die Sie auf einer Azure Ressource durchführen können. Der Screenshot unten zeigt einige der Aktionen für App Service.

Ein Screenshot der Visual Studio Code-Befehlspalette für App Service.

Arbeiten mit Dev Containern in Visual Studio Code

Python Entwickler verlassen sich oft auf virtuelle Umgebungen, um eine isolierte und in sich geschlossene Umgebung für ein bestimmtes Projekt zu erstellen. Virtuelle Umgebungen bieten Entwicklern die Möglichkeit, Abhängigkeiten, Pakete und Python-Versionen für jedes Projekt separat zu verwalten und so Konflikte zwischen verschiedenen Projekten zu vermeiden, die möglicherweise unterschiedliche Paketversionen benötigen.

Während es in Python beliebte Optionen für die Verwaltung von Umgebungen wie virtualenv oder venvgibt, ermöglicht Ihnen die Visual Studio Code Dev Container Erweiterung (basierend auf der open Dev Container Spezifikation), einen Docker-Container zu verwenden, der als voll funktionsfähige containerisierte Umgebung dient. Es ermöglicht Entwicklern die Definition einer konsistenten und leicht reproduzierbaren Toolchain mit allen erforderlichen Tools, Abhängigkeiten und Erweiterungen, die vorkonfiguriert sind. Dies bedeutet, dass Sie bei Systemanforderungen, Shellkonfigurationen oder vollständigen Verwendung anderer Sprachen einen Dev-Container verwenden können, um alle Teile Ihres Projekts explizit zu konfigurieren, die sich möglicherweise außerhalb einer grundlegenden Python-Umgebung befinden.

Ein Entwickler kann beispielsweise einen einzigen Dev Container so konfigurieren, dass er alles enthält, was für die Arbeit an einem Projekt benötigt wird, einschließlich eines PostgreSQL-Datenbankservers mit der Projektdatenbank und Beispieldaten, eines Redis-Servers, Nginx, Front-End-Code, Client-Bibliotheken wie React usw. Darüber hinaus würde der Container den Code des Projekts, die Python Runtime und alle Abhängigkeiten des Python-Projekts mit den richtigen Versionen enthalten. Und schließlich kann der Container angeben, welche Erweiterungen von Visual Studio Code installiert werden sollen, damit das gesamte Team über die gleichen Tools verfügt. Wenn also ein neuer Entwickler zum Team stößt, steht die gesamte Umgebung, einschließlich der Tools, Abhängigkeiten und Daten, bereit, um auf seine lokale Maschine geklont zu werden, und er kann sofort mit der Arbeit beginnen.

Siehe Entwicklung innerhalb eines Containers.

Arbeiten mit Visual Studio 2022

Visual Studio 2022 ist eine integrierte Entwicklungsumgebung (Integrated Development Environment, IDE) mit Unterstützung für die Python-Anwendungsentwicklung und viele integrierte Tools und Erweiterungen für den Zugriff auf und die Bereitstellung in Azure-Ressourcen. Während sich die meisten Dokumentationen zur Erstellung von Python Web-Apps auf Azure auf die Verwendung von Visual Studio Code konzentrieren, ist Visual Studio 2022 eine gute Option, wenn Sie es bereits installiert haben, damit vertraut sind und es für .NET oder C++ Projekte verwenden.

  • Unter Visual Studio | Python-Dokumentation finden Sie die gesamte Dokumentation zur Nutzung von Python in Visual Studio 2022.

  • Informationen zur Einrichtung finden Sie unter Installation der Python-Unterstützung in Visual Studio, das Sie durch die Schritte zur Installation des Python Workloads in Visual Studio 2022 führt.

  • Den allgemeinen Workflow für die Verwendung von Python für die Webentwicklung finden Sie unter Quickstart: Erstellen Sie Ihre erste Python-Web-App mit Visual Studio. Dieser Artikel ist nützlich, um zu verstehen, wie man eine Python-Webanwendung von Grund auf entwickelt, enthält jedoch nicht die Bereitstellung in Azure.

  • Wie Sie mit Visual Studio 2022 Azure Ressourcen verwalten und auf Azure bereitstellen können, erfahren Sie unter Azure-Entwicklung mit Visual Studio. Obwohl ein Großteil der Dokumentation hier speziell auf .NET eingeht, funktioniert das Tool für die Verwaltung von Azure-Ressourcen und die Bereitstellung in Azure unabhängig von der Programmiersprache auf dieselbe Weise.

  • Wenn in Visual Studio 2022 kein integriertes Tool für eine bestimmte Azure-Verwaltungs- oder Bereitstellungsaufgabe verfügbar ist, können Sie immer Azure CLI-Befehle verwenden.

Mit anderen IDEs arbeiten

Wenn Sie in einer anderen IDE arbeiten, die keine explizite Unterstützung für Azure bietet, können Sie die Azure CLI verwenden, um Azure Ressourcen zu verwalten. Auf dem Screenshot unten ist eine einfache Flask Web-App in der PyCharm IDE geöffnet. Die Web-App kann mit dem az webapp up Befehl an einen Azure App Service bereitgestellt werden. Im Screenshot wird der CLI-Befehl innerhalb des eingebetteten PyCharm Terminal-Emulators ausgeführt. Wenn Ihre IDE nicht über einen eingebetteten Emulator verfügt, können Sie ein beliebiges Terminal und denselben Befehl verwenden. Das Azure CLI muss in jedem Fall auf Ihrem Computer installiert und zugänglich sein.

Ein Screenshot der PyCharm IDE mit einem Azure CLI-Befehl, der eine Web-App bereitstellt.

Azure CLI-Befehle

Wenn Sie mit den Azure CLI Befehlen lokal mit Web-Apps arbeiten, werden Sie in der Regel mit den folgenden Befehlen arbeiten:

Befehl Beschreibung
az webapp Verwaltet Web-Apps. Enthält die Unterbefehle create und up zum Erstellen einer Web-App bzw. zum Erstellen und Bereitstellen aus einem lokalen Arbeitsbereich.
az container app Verwaltet Azure Container Apps.
az staticwebapp Verwaltet statische Azure Web Apps.
az group Verwaltet Ressourcengruppen und Vorlagenbereitstellungen. Verwenden Sie den Unterbefehl erstellen, um eine Ressourcengruppe zu erstellen, um Ihre Azure-Ressourcen zu platzieren.
az appservice Verwaltet App Service-Pläne.
az config Verwaltet die Azure CLI-Konfiguration. Um Tastenanschläge zu sparen, können Sie einen Standard-Speicherort oder eine Ressourcengruppe definieren, die andere Befehle automatisch verwenden.

Hier ist ein Beispiel für einen Azure CLI-Befehl, um eine Web-App und zugehörige Ressourcen zu erstellen und sie in einem Schritt mit az webapp up in Azure bereitzustellen. Führen Sie den Befehl im Root-Verzeichnis Ihrer Web-App aus.

az webapp up \
    --runtime PYTHON:3.9 \
    --sku B1 \
    --logs

Mehr über dieses Beispiel erfahren Sie unter Schnellstart: Bereitstellen einer Python (Django oder Flask) Web-App für Azure App Service.

Denken Sie daran, dass Sie für einige Ihrer Azure Workflows auch das Azure CLI aus einer Azure Cloud Shell verwenden können. Azure Cloud Shell ist eine interaktive, authentifizierte, über den Browser zugängliche Shell für die Verwaltung von Azure-Ressourcen.

Wichtige Azure SDK Pakete

In Ihren Python Web-Apps können Sie mit dem Azure SDK für Python programmgesteuert auf Azure Services zugreifen. Dieses SDK wird im Abschnitt Nutzen Sie die Azure-Bibliotheken (SDK) für Python ausführlich besprochen. In diesem Abschnitt gehen wir kurz auf einige wichtige Pakete des SDK ein, die Sie bei der Webentwicklung verwenden werden. Außerdem zeigen wir ein Beispiel für die bewährten Methoden für die Authentifizierung Ihres Codes mit Azure-Ressourcen.

Im Folgenden finden Sie einige der Pakete, die bei der Entwicklung von Web-Apps häufig verwendet werden. Sie können Pakete in Ihrer virtuellen Umgebung direkt mit pip installieren. Oder setzen Sie den Namen des Python-Paketindexes (Pypi) in Ihre requirements.txt-Datei.

SDK docs Installieren Python-Paket-Index
Azure Identity pip install azure-identity azure-identity
Azure Storage Blobs pip install azure-storage-blob azure-storage-blob
Azure Cosmos DB pip install azure-cosmos azure-cosmos
Azure Key Vault Secrets pip install azure-keyvault-secrets azure-keyvault-secrets

Das Paket azure-identity ermöglicht es Ihrer Web-App, sich bei Microsoft Entra ID zu authentifizieren. Für die Authentifizierung in Ihrem Web-App-Code wird empfohlen, den DefaultAzureCredential aus dem azure-identity Package zu verwenden. Hier sehen Sie ein Beispiel für den Zugriff auf Azure Storage. Das Muster ist für andere Azure Ressourcen ähnlich strukturiert.

from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient

azure_credential = DefaultAzureCredential()
blob_service_client = BlobServiceClient(
    account_url=account_url,
    credential=azure_credential)

Das DefaultAzureCredential sucht an vordefinierten Orten nach Kontoinformationen, beispielsweise in Umgebungsvariablen oder aus der Azure CLI-Anmeldung. Ausführliche Informationen über die DefaultAzureCredential Logik finden Sie unter Authentifizierung von Python Apps bei Azure Services mit dem Azure SDK für Python.

Python-basierte Web-Frameworks

Bei der Entwicklung von Python Web-Apps arbeiten Sie häufig mit Python-basierten Web-Frameworks. Diese Frameworks bieten Funktionen wie Seitenvorlagen, Sitzungsverwaltung, Datenbankzugriff und einfachen Zugriff auf HTTP-Anforderungs- und Antwortobjekte. Frameworks ermöglichen es Ihnen, die Notwendigkeit zu vermeiden, das Rad für grundlegende Funktionen neu erfinden zu müssen.

Drei gängige Python Web-Frameworks sind Django, Flask oder FastAPI. Diese und andere Web-Frameworks können mit Azure verwendet werden.

Nachfolgend finden Sie ein Beispiel dafür, wie Sie schnell mit diesen Frameworks lokal arbeiten können. Wenn Sie diese Befehle ausführen, erhalten Sie eine Anwendung, wenn auch eine einfache, die Sie in Azure bereitstellen können. Führen Sie diese Befehle innerhalb einer virtuellen Umgebung aus.

Schritt 1: Laden Sie die Frameworks mit pip herunter.

pip install Django

Schritt 2: Erstellen Sie eine Hallo-Welt-App.

Erstellen Sie ein Beispielprojekt mit dem Befehl django-admin startproject. Das Projekt enthält eine manage.py Datei, die den Einstiegspunkt zum Ausführen der App darstellt.

django-admin startproject hello_world

Schritt 3: Führen Sie den Code lokal aus.

Django verwendet WSGI, um die App auszuführen.

python hello_world\manage.py runserver

Schritt 4: Durchsuchen Sie die App "hello world".

http://127.0.0.1:8000/

Fügen Sie an dieser Stelle eine requirements.txt Datei hinzu und stellen Sie die Web-App in Azure bereit oder containerisieren Sie sie mit Docker und stellen Sie sie dann bereit.

Nächste Schritte