Freigeben über


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

In diesem Artikel erfahren Sie, wie Sie Ihre lokale Umgebung einrichten, um Python web-Apps zu entwickeln und für Azure bereitzustellen. Ihre Web-App kann rein Python sein oder eines der gängigen Python-basierten Webframeworks wie Django, Flask oder FastAPI verwenden.

Sie können Python Web-Apps bereitstellen, die lokal für Dienste wie Azure App Service, Azure Container Apps oder Azure Static Web Apps entwickelt wurden. 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 dabei Visual Studio Code, das Azure CLI, ein lokales Git-Repository oder GitHub-Aktionen verwenden. Wenn Sie in einem Docker-Container bereitstellen, können Sie dies über Azure Container Registry, Docker Hub oder eine private Registrierung tun.

Bevor Sie mit diesem Artikel fortfahren, lesen Sie das Setup Ihrer Entwicklungsumgebung, um Anleitungen zum Einrichten Ihrer Entwicklungsumgebung für Python und Azure zu erhalten. In den folgenden Abschnitten werden Setup und Konfiguration für Python Web App-Entwicklung erläutert.

Nachdem Sie Ihre lokale Umgebung für Python Web App-Entwicklung eingerichtet haben, können Sie sich mit den folgenden Artikeln befassen:

Arbeiten mit Visual Studio Code

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

Tipp

Stellen Sie sicher, dass Sie die Erweiterung Python installieren. Eine Übersicht über das Arbeiten mit Python in VS Code finden Sie unter Getting Started with Python in VS Code.

In VS Code arbeiten Sie mit Azure Ressourcen über VS-Codeerweiterungen. Sie können Erweiterungen aus der Erweiterungsansicht oder mithilfe der Tastenkombination STRG+UMSCHALT+X installieren. Bei Python Web-Apps arbeiten Sie wahrscheinlich mit einer oder mehreren der folgenden Erweiterungen:

  • Mit der Erweiterung Azure App Service können Sie von Visual Studio Code aus mit Azure App Service interagieren. App Service bietet vollständig verwaltetes Hosting für Webanwendungen, einschließlich Websites und Web-APIs.

  • Mit der Erweiterung Azure Static Web Apps können Sie Azure Static Web Apps direkt aus VS Code erstellen. Static Web Apps ist serverlos und eine gute Wahl für das Hosting statischer Inhalte.

  • Wenn Sie die Arbeit mit Containern planen, installieren Sie Folgendes:

    • Die Docker-Erweiterung zum Erstellen und Arbeiten mit Containern lokal. Sie können beispielsweise eine containerisierte Python Web-App auf Azure App Service ausführen, indem Sie Web Apps für Container verwenden.

    • Die Erweiterung Azure Container Apps zum Erstellen und Bereitstellen von containerisierten Apps direkt aus Visual Studio Code.

  • Weitere Erweiterungen sind Azure Storage, Azure Databases und Azure Resources Erweiterungen. Sie können diese und andere Erweiterungen jederzeit nach Bedarf hinzufügen.

Erweiterungen in Visual Studio Code sind wie erwartet in einer typischen IDE-Schnittstelle zugänglich. Sie können umfassende Schlüsselwortunterstützung verwenden, indem Sie die VS Code-Befehlspalette verwenden. Um die Befehlspalette aufzurufen, verwenden Sie die Tastenkombination Strg+Shift+P. Die Befehlspalette ist eine gute Möglichkeit, um alle möglichen Aktionen anzuzeigen, die Sie für eine Azure Ressource ausführen können. Der folgende Screenshot zeigt einige der Aktionen für App Service.

Ein Screenshot der Befehls-Palette von Visual Studio Code für App Service.

Arbeiten mit Dev-Containern in Visual Studio Code

Python Entwickler verlassen sich häufig auf virtuelle Umgebungen, um eine isolierte und eigenständige Umgebung für ein bestimmtes Projekt zu erstellen. In virtuellen Umgebungen können Entwickler Abhängigkeiten, Pakete und Python Versionen separat für jedes Projekt verwalten und Konflikte zwischen verschiedenen Projekten vermeiden, die möglicherweise unterschiedliche Paketversionen erfordern.

Es gibt zwar beliebte Optionen in Python zum Verwalten von Umgebungen wie virtualenv oder venv, Mit der Visual Studio Code Dev ContainerErweiterung (basierend auf der Spezifikation open Dev Container) können Sie einen Docker-Container als voll funktionsfähige containerisierte Umgebung verwenden. 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, wenn Sie über Systemanforderungen, Shellkonfigurationen oder vollständig andere Sprachen verfügen, können Sie einen Dev-Container verwenden, 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 Projektcode, die Python Laufzeit und alle Python Projektabhängigkeiten mit den richtigen Versionen enthalten. Schließlich kann der Container Visual Studio Code Erweiterungen angeben, die installiert werden sollen, sodass 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 "Entwickeln innerhalb eines Containers".

Arbeiten mit Visual Studio 2022

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

  • Im Allgemeinen siehe Visual Studio | Python Dokumentation für alle Dokumentationen im Zusammenhang mit der Verwendung von Python am Visual Studio 2022.

  • Schritte zum Einrichten finden Sie unter Install Python-Unterstützung in Visual Studio die Sie durch die Schritte zum Installieren der Python Workload in Visual Studio 2022 führt.

  • Allgemeine Informationen zur Verwendung von Python für die Webentwicklung finden Sie unter Quickstart: Erstellen Ihrer ersten Python Web-App mit Visual Studio. Dieser Artikel ist hilfreich, um zu verstehen, wie Sie eine Python Webanwendung von Grund auf neu erstellen (aber die Bereitstellung für Azure nicht umfasst).

  • Informationen zur Verwendung von Visual Studio 2022 zum Verwalten von Azure Ressourcen und bereitstellen in Azure finden Sie unter Azure Development with Visual Studio. Während ein Großteil der Dokumentation hier speziell .NET erwähnt, funktioniert die Verwaltung von Azure Ressourcen und die Bereitstellung auf Azure unabhängig von der Programmiersprache gleich.

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

Mit anderen IDEs arbeiten

Wenn Sie in einer anderen IDE arbeiten, die keine explizite Unterstützung für Azure hat, verwenden Sie die Azure CLI, um Azure Ressourcen zu verwalten. Im folgenden Screenshot ist eine einfache Flask-Web-App in der PyCharm IDE geöffnet. Sie können die Web-App mithilfe des Befehls az webapp up auf einem Azure App Service bereitstellen. Im Screenshot wird der CLI-Befehl innerhalb des eingebetteten PyCharm Terminal-Emulators ausgeführt. Wenn Ihre IDE keinen eingebetteten Emulator enthält, können Sie ein beliebiges Terminal und denselben Befehl verwenden. Die Azure CLI muss auf Ihrem Computer installiert sein und in beiden Fällen zugänglich sein.

A screenshot der PyCharm IDE mit einem Azure CLI Befehl zur Bereitstellung einer Web app.

Azure CLI-Befehle

Wenn Sie lokal mit Web-Apps arbeiten, indem Sie die Befehle Azure CLI verwenden, verwenden Sie in der Regel die folgenden Befehle:

Befehl Beschreibung
az webapp Verwaltet Web-Apps. Enthält die Unterbefehle create und up, um eine Web-App zu erstellen oder um aus einem lokalen Arbeitsbereich zu erstellen und bereitzustellen.
az-Container-App Verwaltet Azure Container Apps.
az staticwebapp Verwaltet Azure Static Web Apps.
az group Verwaltet Ressourcengruppen und Vorlagenbereitstellungen. Verwenden Sie den Unterbefehl create, um eine Ressourcengruppe so zu erstellen, dass Ihre Azure Ressourcen eingefügt werden.
az appservice Verwaltet App Service-Pläne.
az config Verwaltet Azure CLI Konfiguration. Um Tastenanschläge zu sparen, können Sie einen Standard-Speicherort oder eine Ressourcengruppe definieren, die andere Befehle automatisch verwenden.

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

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

Weitere Informationen zu diesem Beispiel finden Sie unter Quickstart: Deploy a Python (Django or Flask) web app to Azure App Service.

Beachten Sie, dass Sie für einige Ihrer Azure Workflows auch die Azure CLI aus einem Azure Cloud Shell verwenden können. Azure Cloud Shell ist eine interaktive, authentifizierte, browserfreundliche Shell zum Verwalten Azure Ressourcen.

Azure SDK Schlüsselpakete

In Ihren Python Web-Apps können Sie programmgesteuert auf Azure Dienste verweisen, indem Sie die Azure SDK für Python verwenden. Im Abschnitt Use the Azure libraries (SDK) for Python wird dieses SDK ausführlich erläutert. In diesem Abschnitt erfahren Sie mehr über einige wichtige Pakete des SDK, das Sie in der Webentwicklung verwenden. Außerdem sehen Sie ein Beispiel, das bewährte Methoden zum Authentifizieren des Codes mit Azure Ressourcen befolgt.

In der folgenden Tabelle sind einige der Pakete aufgeführt, die häufig in der Web-App-Entwicklung verwendet werden. Sie können Pakete in Ihrer virtuellen Umgebung direkt mithilfe von pip. Oder fügen Sie den Namen des Python Paketindex (PyPI) in die Datei requirements.txt ein.

SDK-Dokumente Installieren Python Paketindex
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

Mit dem Paket azure-identity kann sich Ihre Web-App bei Microsoft Entra ID authentifizieren. Verwenden Sie für die Authentifizierung im Web-App-Code die DefaultAzureCredential im azure-identity Paket. Das folgende Beispiel zeigt, wie Sie auf Azure Storage zugreifen. Das Muster ähnelt anderen Azure Ressourcen.

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)

Die DefaultAzureCredential sucht an vordefinierten Speicherorten nach Kontoinformationen, z. B. Umgebungsvariablen oder der Azure CLI Anmeldung. Ausführliche Informationen zur logik DefaultAzureCredential finden Sie unter Authenticate Python apps to Azure services by using the Azure SDK for Python.

Python-basierte Webframeworks

In Python Web-App-Entwicklung arbeiten Sie häufig mit Python-basierten Webframeworks. Diese Frameworks bieten Funktionen wie Seitenvorlagen, Sitzungsverwaltung, Datenbankzugriff und einfachen Zugriff auf HTTP-Anforderungs- und Antwortobjekte. Mit Frameworks können Sie vermeiden, das Rad für allgemeine Funktionen neu zu erfinden.

Drei gängige Python Webframeworks sind Django, Flask und FastAPI. Sie können diese und andere Webframeworks mit Azure verwenden.

Das folgende Beispiel zeigt, wie Sie schnell mit diesen Frameworks lokal beginnen können. Wenn Sie diese Befehle ausführen, haben Sie eine Anwendung, wenn auch eine einfache Anwendung, die Sie für Azure bereitstellen können. Führen Sie diese Befehle in einer virtuellen Umgebung aus.

Schritt 1: Laden Sie die Frameworks mithilfe von Pip herunter.

pip install Django

Schritt 2: Erstellen Sie eine Hello World-App.

Erstellen Sie ein Beispielprojekt mithilfe des Befehls "django-admin startproject ". Das Projekt enthält eine manage.py Datei, die als Einstiegspunkt für die Ausführung der App dient.

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 Hello World-App.

http://127.0.0.1:8000/

Fügen Sie zu diesem Zeitpunkt eine requirements.txt Datei hinzu. Stellen Sie dann die Web-App entweder auf Azure bereit oder containerisieren Sie sie mit Docker und stellen Sie sie bereit.

Nächste Schritte