Sdílet prostřednictvím


Konfigurace místního prostředí pro nasazení webových aplikací v Pythonu v Azure

Tento článek vás provede nastavením místního prostředí pro vývoj webových aplikací v Pythonu a jejich nasazení do Azure. Vaše webová aplikace může být čistě Python nebo používat některou z běžných webových architektur založených na Pythonu, jako je Django, Flasknebo FastAPI.

Webové aplikace Python vyvinuté místně je možné nasadit do služeb, jako jsou Azure App Service, Azure Container Appsnebo azure Static Web Apps. Existuje mnoho možností nasazení. Například pro nasazení služby App Service můžete zvolit nasazení z kódu, kontejneru Dockeru nebo statické webové aplikace. Pokud nasadíte z kódu, můžete ho nasadit pomocí editoru Visual Studio Code, pomocí Azure CLI, z místního úložiště Git nebo pomocí GitHub Actions. Pokud nasadíte v kontejneru Dockeru, můžete to udělat z Azure Container Registry, Docker Hubu nebo libovolného privátního registru.

Než budete pokračovat v tomto článku, doporučujeme projít si Nastavení vývojového prostředí pokyny k nastavení vývojového prostředí pro Python a Azure. Níže probereme nastavení a konfiguraci specifické pro vývoj webových aplikací v Pythonu.

Jakmile získáte nastavení místního prostředí pro vývoj webových aplikací v Pythonu, budete připraveni začít s těmito články:

Práce s Visual Studio Code

Visual Studio Code integrované vývojové prostředí (IDE) je snadný způsob, jak vyvíjet webové aplikace v Pythonu a pracovat s prostředky Azure, které webové aplikace používají.

Spropitné

Ujistěte se, že máte nainstalované rozšíření Python. Přehled práce s Pythonem ve VS Code najdete v tématu Začínáme s Pythonem ve VS Code.

Ve VS Code pracujete s prostředky Azure prostřednictvím rozšíření VS Code. Rozšíření můžete nainstalovat ze Zobrazení rozšíření nebo kombinace kláves Ctrl+Shift+X. U webových aplikací v Pythonu budete pravděpodobně pracovat s jedním nebo více z následujících rozšíření:

  • Rozšíření Azure App Service umožňuje pracovat se službou Azure App Service z editoru Visual Studio Code. App Service poskytuje plně spravované hostování webových aplikací včetně webů a webových rozhraní API.

  • Rozšíření Azure Static Web Apps umožňuje vytvářet azure Static Web Apps přímo z VS Code. Static Web Apps je bezserverová a dobrá volba pro hostování statického obsahu.

  • Pokud plánujete pracovat s kontejnery, nainstalujte:

    • Rozšíření Dockeru pro lokální sestavování a práci s kontejnery. Můžete například spustit kontejnerizovanou webovou aplikaci v Pythonu ve službě Azure App Service pomocí Web Apps for Containers.

    • Rozšíření Azure Container Apps pro vytváření a nasazování kontejnerizovaných aplikací přímo ze sady Visual Studio Code.

  • Existují další rozšíření, jako jsou azure Storage, azure Databases a rozšíření Azure Resources. Podle potřeby můžete tato a další rozšíření kdykoli přidat.

Rozšíření v editoru Visual Studio Code jsou přístupná tak, jak byste očekávali v typickém rozhraní IDE a s bohatou podporou klíčových slov pomocí palety příkazů VS Code. Pro přístup k paletě příkazů použijte kombinaci kláves Ctrl+Shift+P. Paleta příkazů je dobrý způsob, jak zobrazit všechny možné akce, které můžete provést u prostředku Azure. Následující snímek obrazovky ukazuje některé akce služby App Service.

snímek obrazovky s paletou příkazů editoru Visual Studio Code pro App Service.

Práce s Dev Containers v editoru Visual Studio Code

Vývojáři Pythonu často spoléhají na virtuální prostředí k vytvoření izolovaného a samostatného prostředí pro konkrétní projekt. Virtuální prostředí umožňují vývojářům spravovat závislosti, balíčky a verze Pythonu samostatně pro každý projekt a vyhnout se konfliktům mezi různými projekty, které mohou vyžadovat různé verze balíčků.

I když jsou v Pythonu k dispozici oblíbené možnosti pro správu prostředí, jako jsou virtualenv nebo venv, rozšíření Visual Studio Code Dev Container (na základě open Dev Container specification) umožňuje používat kontejner Dockeru jako plnohodnotné kontejnerové prostředí. Umožňuje vývojářům definovat konzistentní a snadno reprodukovatelnou sadu nástrojů se všemi potřebnými nástroji, závislostmi a rozšířeními předem nakonfigurovanými. To znamená, že pokud máte systémové požadavky, konfigurace prostředí nebo zcela používáte jiné jazyky, můžete pomocí vývojového kontejneru explicitně nakonfigurovat všechny tyto části projektu, které můžou žít mimo základní prostředí Pythonu.

Vývojář může například nakonfigurovat jeden vývojový kontejner tak, aby zahrnoval všechno potřebné k práci na projektu, včetně databázového serveru PostgreSQL spolu s projektovou databází a ukázkovými daty, serveru Redis, serveru Nginx, front-endového kódu, klientských knihoven, jako je React atd. Kontejner by navíc obsahoval kód projektu, modul runtime Pythonu a všechny závislosti projektu Pythonu se správnými verzemi. Kontejner může také určit rozšíření editoru Visual Studio Code, která se mají nainstalovat, aby byl k dispozici stejný nástroj pro celý tým. Když se nový vývojář připojí k týmu, celé prostředí, včetně nástrojů, závislostí a dat, je připravené k naklonování na jeho místní počítač, takže může okamžitě začít pracovat.

Podívejte se na Vývoj uvnitř kontejneru.

Práce se sadou Visual Studio 2022

Visual Studio 2022 je plnohodnotné integrované vývojové prostředí (IDE) s podporou vývoje aplikací v Pythonu a mnoho integrovaných nástrojů a rozšíření pro přístup k prostředkům Azure a jejich nasazení. I když se většina dokumentace k vytváření webových aplikací Pythonu v Azure zaměřuje na používání editoru Visual Studio Code, je Visual Studio 2022 skvělou volbou, pokud ji už máte nainstalovanou, můžete ji používat a používat ji pro projekty .NET nebo C++.

Práce s jinými prostředími IDE

Pokud pracujete v jiném integrovaném vývojovém prostředí, které nemá explicitní podporu pro Azure, můžete ke správě prostředků Azure použít Azure CLI. Na snímku obrazovky níže je v integrovaném vývojovém prostředí PyCharm otevřená jednoduchá webová aplikace Flask. Webovou aplikaci je možné nasadit do služby Azure App Service pomocí příkazu az webapp up. Na snímku obrazovky se příkaz rozhraní příkazového řádku spustí v emulátoru integrovaného terminálu PyCharm. Pokud integrované vývojové prostředí nemá integrovaný emulátor, můžete použít libovolný terminál a stejný příkaz. Rozhraní příkazového řádku Azure musí být nainstalované na vašem počítači a musí být přístupné v obou případech.

snímek obrazovky integrovaného vývojového prostředí PyCharm s příkazem Azure CLI, který nasazuje webovou aplikaci.

Příkazy Azure CLI

Při práci s webovými aplikacemi pomocí příkazů Azure CLI obvykle budete pracovat s následujícími příkazy:

Příkaz Popis
az webapp Spravuje webové aplikace. Zahrnuje podpříkazy vytvořit k vytvoření webové aplikace a nahoře k vytvoření a nasazení z místního pracovního prostoru.
az container app Spravuje aplikace Azure Container.
az staticwebapp Spravuje Azure Static Web Apps.
az skupina Spravuje skupiny prostředků a nasazení šablon. Pomocí podpříkazu vytvořte skupinu prostředků, kam umístíte vaše prostředky Azure.
az appservice Spravuje plány služby App Service.
az config Správa konfigurace Azure CLI Pokud chcete uložit stisknutí kláves, můžete definovat výchozí umístění nebo skupinu prostředků, které ostatní příkazy používají automaticky.

Tady je příklad příkazu Azure CLI pro vytvoření webové aplikace a přidružených prostředků a jeho nasazení do Azure v jednom příkazu pomocí az webapp up. Spusťte příkaz v kořenovém adresáři vaší webové aplikace.

  • bash
  • terminálu PowerShellu
az webapp up \
    --runtime PYTHON:3.9 \
    --sku B1 \
    --logs

Další informace o tomto příkladu najdete v tématu Rychlý start: Nasazení webové aplikace v Pythonu (Django nebo Flask) do služby Azure App Service.

Mějte na paměti, že pro některý pracovní postup Azure můžete také použít Azure CLI z Azure Cloud Shellu. Azure Cloud Shell je interaktivní prostředí přístupné z prohlížeče pro správu prostředků Azure.

Balíčky klíčů sady Azure SDK

Ve webových aplikacích v Pythonu můžete prostřednictvím kódu programu odkazovat na služby Azure pomocí sady Azure SDK pro Python. Tato sada SDK je podrobně popsána v části Použití knihoven Azure (SDK) pro Python. V této části stručně zmíníme některé klíčové balíčky sady SDK, které použijete při vývoji webu. A ukážeme si příklad s osvědčeným postupem pro ověřování kódu pomocí prostředků Azure.

Níže jsou uvedené některé balíčky, které se běžně používají při vývoji webových aplikací. Balíčky můžete do svého virtuálního prostředí nainstalovat přímo pomocí pip. Nebo do souboru requirements.txt vložte název indexu balíčku Pythonu (Pypi).

Dokumentace k sadě SDK Nainstalovat Index balíčků Pythonu
Azure Identita pip install azure-identity azure-identity
Azure Storage Blobů pip install azure-storage-blob azure-storage-blob
Azure Cosmos DB pip install azure-cosmos azure-cosmos
tajemství služby Azure Key Vault pip install azure-keyvault-secrets azure-trezor-tajemství

Balíček azure-identity umožňuje webové aplikaci ověřit pomocí Microsoft Entra ID. Pro ověřování v kódu webové aplikace se doporučuje v balíčku azure-identity použít DefaultAzureCredential. Tady je příklad přístupu ke službě Azure Storage. Tento model je podobný pro ostatní prostředky Azure.

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 bude vyhledávat informace o účtu v předdefinovaných umístěních, například v proměnných prostředí nebo při přihlášení pomocí Azure CLI. Podrobné informace o logice DefaultAzureCredential najdete v tématu Ověřování aplikací Pythonu ve službách Azure pomocí sady Azure SDK pro Python.

Webové architektury založené na Pythonu

Ve vývoji webových aplikací v Pythonu často pracujete s webovými architekturami založenými na Pythonu. Tyto architektury poskytují funkce, jako jsou šablony stránek, správa relací, přístup k databázi a snadný přístup k objektům požadavků a odpovědí HTTP. Architektury umožňují vyhnout se nutnosti znovu vymyslet kolo pro běžné funkce.

Tři běžné webové architektury Pythonu jsou Django, Flasknebo FastAPI. Tyto a další webové architektury je možné použít s Azure.

Níže je příklad toho, jak můžete rychle začít s těmito frameworky lokálně. Spuštěním těchto příkazů skončíte s aplikací, i když je to jednoduchý příkaz, který by se dal nasadit do Azure. Tyto příkazy spusťte v virtuálním prostředí.

Krok 1: Stáhněte frameworky s pip.

pip install Django

krok 2: Vytvoření aplikace Hello World

Vytvořte ukázkový projekt pomocí příkazu django-admin startproject. Projekt obsahuje soubor manage.py, který je vstupním bodem pro spuštění aplikace.

django-admin startproject hello_world

krok 3: spusťte kód místně.

Django ke spuštění aplikace používá WSGI.

python hello_world\manage.py runserver

Krok 4: Procházet aplikaci Hello World.

http://127.0.0.1:8000/

V tomto okamžiku přidejte soubor requirements.txt a pak můžete webovou aplikaci nasadit do Azure nebo ji kontejnerizovat pomocí Dockeru a pak ho nasadit.

Další kroky