Konfigurera din lokala miljö för att distribuera Python-webbappar i Azure
Den här artikeln beskriver hur du konfigurerar din lokala miljö för att utveckla Python webbappar och distribuera dem till Azure. Din webbapp kan vara ren Python eller använda något av de vanliga Python-baserade webbramverken som Django, Flaskeller FastAPI-.
Python-webbappar som utvecklats lokalt kan distribueras till tjänster som Azure App Service, Azure Container Appseller 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 Visual Studio Code, med Azure CLI, från en lokal Git-lagringsplats eller med 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 rekommenderar vi att du läser Konfigurera utvecklingsmiljön för vägledning om hur du konfigurerar utvecklingsmiljön för Python och Azure. Nedan går vi igenom installation och konfiguration som är specifik för utveckling av Python-webbappar.
När du har konfigurerat din lokala miljö för utveckling av Python-webbappar är du redo att ta itu med följande artiklar:
- Snabbstart: Skapa en Python-webbapp (Django eller Flask) i Azure App Service.
- Självstudie: Distribuera en Python-webbapp (Django eller Flask) med PostgreSQL i Azure
- Skapa och distribuera en Flask-webbapp till Azure med en systemtilldelad hanterad identitet
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 har Python-tillägget installerat. En översikt över hur du arbetar med Python i VS Code finns i Komma igång med Python i VS Code.
I VS Code arbetar du med Azure-resurser via VS Code-tillägg. Du kan installera tillägg från Tillägg Vy eller tangentkombinationen Ctrl+Shift+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 i Azure App Service med hjälp av Web Apps for Containers.
Azure Container Apps-tillägget för att skapa och distribuera containerbaserade appar direkt från Visual Studio Code.
Det finns andra tillägg som Azure Storage, Azure Databasesoch Azure Resources-tillägg. 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 och med omfattande nyckelordsstöd med hjälp av kommandopaletten VS Code. 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 som du kan vidta för en Azure-resurs. Skärmbilden nedan visar några av åtgärderna 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 fristående 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
, men med tillägget Visual Studio Code Dev Container (baserat på öppna Dev Container specification) kan du använda en Docker-container som en containermiljö 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 skulle containern innehålla projektkoden, Python-körningen och alla Python-projektberoenden med rätt versioner. Slutligen kan containern ange att Visual Studio Code-tillägg 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.
Arbeta med Visual Studio 2022
Visual Studio 2022 är en komplett integrerad utvecklingsmiljö (IDE) med stöd för Utveckling av Python-program och många inbyggda verktyg och tillägg för åtkomst till och distribution till Azure-resurser. De flesta dokumentationer för att skapa Python-webbappar i Azure fokuserar på att använda Visual Studio Code, men Visual Studio 2022 är ett bra alternativ om du redan har installerat det, men du är bekväm med att använda det och använder det 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 i Visual Studio 2022.
Installationssteg finns i Installera Python-stöd 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 Snabbstart: Skapa din första Python-webbapp med Visual Studio. Den här artikeln är användbar för att förstå hur du skapar ett Python-webbprogram 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 med 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 kan du använda Azure CLI för att hantera Azure-resurser. I skärmbilden nedan är en enkel Flask-webbapp öppen i PyCharm IDE. Webbappen kan distribueras 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. Azure CLI måste vara installerat på datorn och vara tillgängligt i båda fallen.
Azure CLI-kommandon
När du arbetar lokalt med webbappar med hjälp av kommandona Azure CLI arbetar du vanligtvis med följande kommandon:
Befallning | Beskrivning |
---|---|
az webapp | Hanterar webbappar. Innehåller de underkommandon skapa för att skapa en webbapp och upp för att skapa och distribuera från en lokal arbetsyta |
az container app | Hanterar Azure Container Apps. |
az staticwebapp | Hanterar Azure Static Web Apps. |
az group | Hanterar resursgrupper och malldistributioner. Använd underkommandot skapa till en resursgrupp för att placera dina Azure-resurser i. |
az appservice | Hanterar App Service-planer. |
az config | Hanterad 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 på ett 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 Snabbstart: 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 även 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. Denna SDK beskrivs utförligt i avsnittet Använda Azure-bibliotek (SDK) för Python. I det här avsnittet ska vi kort nämna några viktiga paket i SDK:et som du ska använda i webbutveckling. Och vi visar ett exempel på bästa praxis för att autentisera din kod med Azure-resurser.
Nedan visas några av de paket som ofta används i webbappsutveckling. Du kan installera paket i din virtuella miljö direkt med pip
. Eller placera Python-paketindexnamnet (Pypi) i din requirements.txt-fil.
SDK-dokumentation | Installera | 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-hemligheter | pip install azure-keyvault-secrets |
azure-keyvault-secrets |
Med azure-identity--paketet kan din webbapp autentiseras med Microsoft Entra-ID. För autentisering i webbappkoden rekommenderar vi att du använder DefaultAzureCredential- i azure-identity
-paketet. Här är ett exempel på hur du får åtkomst till 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 i miljövariabler eller från Azure CLI-inloggningen. Mer detaljerad information om DefaultAzureCredential
logik finns i Autentisera Python-appar till Azure-tjänster med hjälp av Azure SDK för Python.
Python-baserade webbramverk
I Utveckling av Python-webbappar arbetar du ofta med Python-baserade webbramverk. Dessa ramverk tillhandahåller funktioner som sidmallar, sessionshantering, databasåtkomst och enkel åtkomst till HTTP-begärande- och svarsobjekt. Med ramverk kan du undvika behovet av att behöva återuppfinna hjulet för vanliga funktioner.
Tre vanliga Python-webbramverk är Django, Flaskeller FastAPI. Dessa och andra webbramverk kan användas med Azure.
Nedan visas ett exempel på hur du kan komma igång snabbt med dessa ramverk lokalt. När du kör de här kommandona får du ett program, även om det är ett enkelt program som kan distribueras till Azure. Kör dessa kommandon i en virtuell miljö.
Steg 1: Ladda ned ramverken med pip.
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 är startpunkten 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.
Nu lägger du till en requirements.txt fil och sedan kan du distribuera webbappen till Azure eller containerisera den med Docker och sedan distribuera den.