Dela via


Konfigurera din lokala miljö för att distribuera Python webbappar på Azure

Den här artikeln visar hur du konfigurerar din lokala miljö för att utveckla Python webbappar och distribuera dem till Azure. Webbappen kan vara ren Python eller använda något av de vanliga Python-baserade webbramverken som Django, Flask eller FastAPI.

Du kan distribuera Python webbappar som utvecklats lokalt till tjänster som Azure App Service, Azure Container Apps eller Azure Static Web Apps. Det finns många alternativ för distribution. För App Service-distribution kan du till exempel välja att distribuera från kod, en Docker-container eller en statisk webbapp. Om du distribuerar från kod kan du distribuera med hjälp av Visual Studio Code, Azure CLI, en lokal Git-lagringsplats eller GitHub åtgärder. Om du distribuerar i en Docker-container kan du göra det från Azure Container Registry, Docker Hub eller ett privat register.

Innan du fortsätter med den här artikeln, läs Ställ in din utvecklingsmiljö för vägledning om att konfigurera din utvecklingsmiljö för Python och Azure. I följande avsnitt beskrivs installation och konfiguration som är specifika för Python webbapp-utveckling.

När du har konfigurerat din lokala miljö för Python webbappsutveckling är du redo att ta itu med följande artiklar:

Arbeta med Visual Studio Code

Visual Studio Code integrerad utvecklingsmiljö (IDE) är ett enkelt sätt att utveckla Python webbappar och arbeta med Azure resurser som webbappar använder.

Tips

Kontrollera att du installerar tillägget Python. En översikt över hur du arbetar med Python i VS Code finns i Getting Started with Python in VS Code.

I VS Code arbetar du med Azure resurser via VS Code-tillägg. Du kan installera tillägg från vyn Tillägg eller med hjälp av tangentkombinationen Ctrl+Skift+X. För Python webbappar kommer du förmodligen att arbeta med ett eller flera av följande tillägg:

  • Med tillägget Azure App Service kan du interagera med Azure App Service inifrån Visual Studio Code. App Service tillhandahåller fullständigt hanterad värd för webbprogram, inklusive webbplatser och webb-API:er.

  • Med tillägget Azure Static Web Apps kan du skapa Azure Static Web Apps direkt från VS Code. Static Web Apps är serverlös och ett bra val för värdtjänster för statiskt innehåll.

  • Om du planerar att arbeta med containrar installerar du:

    • Docker-tillägget för att skapa och arbeta med containrar lokalt. Du kan till exempel köra en containerbaserad Python webbapp på Azure App Service med hjälp av Web Apps för containrar.

    • Tillägget Azure Container Apps för att skapa och distribuera containerbaserade appar direkt från Visual Studio Code.

  • Andra tillägg är Azure Storage, Azure Databases och Azure Resources extensions. Du kan alltid lägga till dessa och andra tillägg efter behov.

Tillägg i Visual Studio Code är tillgängliga som förväntat i ett typiskt IDE-gränssnitt. Du kan använda omfattande nyckelordsstöd med hjälp av VS Code-kommandopaletten. Om du vill komma åt kommandopaletten använder du tangentkombinationen Ctrl+Skift+P. Kommandopaletten är ett bra sätt att se alla möjliga åtgärder du kan vidta på en Azure resurs. Följande skärmbild visar några av åtgärderna för App Service.

En skärmbild av kommandopaletten Visual Studio Code för App Service.

Arbeta med Dev Containers i Visual Studio Code

Python utvecklare förlitar sig ofta på virtuella miljöer för att skapa en isolerad och självständig miljö för ett visst projekt. Med virtuella miljöer kan utvecklare hantera beroenden, paket och Python versioner separat för varje projekt, vilket undviker konflikter mellan olika projekt som kan kräva olika paketversioner.

Det finns populära alternativ i Python för att hantera miljöer som virtualenv eller venv, Med tillägget Visual Studio Code Dev Container (baserat på open Dev Container specification) kan du använda en Docker-container som en container med fullständiga funktioner. Det gör det möjligt för utvecklare att definiera en konsekvent och lätt reproducerbar verktygskedja med alla nödvändiga verktyg, beroenden och tillägg som är förkonfigurerade. Det innebär att om du har systemkrav, gränssnittskonfigurationer eller använder andra språk helt och hållet kan du använda en Dev Container för att uttryckligen konfigurera alla de delar av projektet som kan finnas utanför en grundläggande Python miljö.

En utvecklare kan till exempel konfigurera en enda Dev Container för att inkludera allt som behövs för att arbeta med ett projekt, inklusive en PostgreSQL-databasserver tillsammans med projektdatabasen och exempeldata, en Redis-server, Nginx, frontend-kod, klientbibliotek som React och så vidare. Dessutom innehåller containern projektkoden, Python-körningen och alla Python projektberoenden med rätt versioner. Slutligen kan containern ange Visual Studio Code tillägg som ska installeras så att hela teamet har samma tillgängliga verktyg. Så när en ny utvecklare ansluter till teamet är hela miljön, inklusive verktyg, beroenden och data, redo att klonas till den lokala datorn, och de kan börja arbeta omedelbart.

Se Utveckling i en container.

Arbeta med Visual Studio 2022

Visual Studio 2022 är en komplett integrerad utvecklingsmiljö (IDE) med stöd för Python programutveckling och många inbyggda verktyg och tillägg för åtkomst och distribution till Azure resurser. Även om den mesta dokumentationen för att skapa Python webbappar på Azure fokuserar på att använda Visual Studio Code, är Visual Studio 2022 ett bra alternativ om du redan har installerat den, men du är bekväm med att använda den och du använder den för .NET- eller C++-projekt.

  • I allmänhet kan du läsa Visual Studio | Python dokumentation för all dokumentation som rör användning av Python den Visual Studio 2022.

  • Installationssteg finns i Installera stöd för Python i Visual Studio som vägleder dig genom stegen för att installera Python-arbetsbelastningen i Visual Studio 2022.

  • Allmänt arbetsflöde för användning av Python för webbutveckling finns i Quickstart: Skapa din första Python webbapp med hjälp av Visual Studio. Den här artikeln är användbar för att förstå hur du skapar en Python webbapp från grunden (men inkluderar inte distribution till Azure).

  • Information om hur du använder Visual Studio 2022 för att hantera Azure resurser och distribuera till Azure finns i Azure Development with Visual Studio. Även om mycket av dokumentationen här specifikt nämner .NET, fungerar verktygen för att hantera Azure resurser och distribuera till Azure på samma sätt oavsett programmeringsspråk.

  • När det inte finns något inbyggt verktyg tillgängligt i Visual Studio 2022 för en viss Azure hanterings- eller distributionsuppgift kan du alltid använda Azure CLI kommandon.

Arbeta med andra IDE:er

Om du arbetar i en annan IDE som inte har uttryckligt stöd för Azure använder du Azure CLI för att hantera Azure resurser. I följande skärmbild är en enkel Flask-webbapp öppen i PyCharm IDE. Du kan distribuera webbappen till en Azure App Service med hjälp av kommandot az webapp up. I skärmbilden körs CLI-kommandot i den inbäddade PyCharm-terminalemulatorn. Om din IDE inte har någon inbäddad emulator kan du använda valfri terminal och samma kommando. Den Azure CLI måste vara installerad på datorn och vara tillgänglig i båda fallen.

En skärmbild av PyCharm IDE med ett Azure CLI-kommando som distribuerar en webbapp.

Azure CLI kommandon

När du arbetar lokalt med webbappar med hjälp av kommandona Azure CLI använder du vanligtvis följande kommandon:

Befallning Beskrivning
az webapp Hanterar webbappar. Innehåller underkommandona create och up för att skapa en webbapp eller för att skapa och distribuera från ett lokalt arbetsutrymme.
az container app Hanterar Azure Container Apps.
az staticwebapp Hanterar Azure Static Web Apps.
az group Hanterar resursgrupper och malldistributioner. Använd underkommandot create för att skapa en resursgrupp för att placera dina Azure resurser i.
az appservice Hanterar App Service-planer.
az config Hanterar Azure CLI konfiguration. Om du vill spara tangenttryckningar kan du definiera en standardplats eller resursgrupp som andra kommandon använder automatiskt.

Här är ett exempel Azure CLI kommando för att skapa en webbapp och associerade resurser och distribuera den till Azure i ett kommando med hjälp av az webapp up. Kör kommandot i webbappens rotkatalog.

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

Mer information om det här exemplet finns i Quickstart: Distribuera en Python-webbapp (Django eller Flask) till Azure App Service.

Tänk på att för vissa av dina Azure arbetsflöden kan du också använda Azure CLI från en Azure Cloud Shell. Azure Cloud Shell är ett interaktivt, autentiserat, webbläsartillgängligt gränssnitt för hantering av Azure resurser.

Azure SDK nyckelpaket

I dina Python webbappar kan du referera programmatiskt till Azure tjänster med hjälp av Azure SDK för Python. I avsnittet Använd Azure-bibliotek (SDK) för Python beskrivs detta SDK i stor utsträckning. I det här avsnittet får du lära dig om några viktiga paket i SDK:et som du använder i webbutveckling. Du ser också ett exempel som följer metodtipsen för att autentisera koden med Azure resurser.

I följande tabell visas några av de paket som ofta används i webbappsutveckling. Du kan installera paket direkt i din virtuella miljö med hjälp av pip. Du kan också placera namnet Python paketindex (PyPI) i filen requirements.txt.

SDK-dokumentation Installera Python paketindex
Azure Identity pip install azure-identity azure-identity
Azure Storage Blobbar 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

Med paketet azure-identity kan webbappen autentiseras med Microsoft Entra ID. För autentisering i webbappkoden använder du StandardAzureCredential i azure-identity paketet. I följande exempel visas hur du kommer åt Azure Storage. Mönstret liknar andra Azure resurser.

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)

DefaultAzureCredential söker efter kontoinformation på fördefinierade platser, till exempel miljövariabler eller Azure CLI inloggning. Mer detaljerad information om logiken DefaultAzureCredential finns i Authenticate Python apps to Azure services by using the Azure SDK for Python.

Python-baserade webbramverk

I Python webbappsutveckling arbetar du ofta med Python-baserade webbramverk. Dessa ramverk tillhandahåller funktioner, till exempel sidmallar, sessionshantering, databasåtkomst och enkel åtkomst till HTTP-begärande- och svarsobjekt. Med ramverk kan du undvika att återuppfinna hjulet för vanliga funktioner.

Tre vanliga Python webbramverk är Django, Flask och FastAPI. Du kan använda dessa och andra webbramverk med Azure.

I följande exempel visas hur du kan komma igång snabbt med dessa ramverk lokalt. När du kör de här kommandona får du en applikation, om än en enkel sådan, som du kan distribuera till Azure. Kör dessa kommandon i en virtuell miljö.

Steg 1: Ladda ned ramverken med pip.

pip install Django

Steg 2: Skapa en hello world-app.

Skapa ett exempelprojekt med hjälp av kommandot django-admin startproject . Projektet innehåller en manage.py fil som fungerar som startpunkt för att köra appen.

django-admin startproject hello_world

Steg 3: Kör koden lokalt.

Django använder WSGI för att köra appen.

python hello_world\manage.py runserver

Steg 4: Bläddra i hello world-appen.

http://127.0.0.1:8000/

Lägg nu till en requirements.txt fil. Distribuera sedan webbappen till Azure eller containerisera den med Docker och distribuera applikationen.

Nästa steg