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:
- rychlý start: Vytvoření webové aplikace v Pythonu (Django nebo Flask) ve službě Azure App Service.
- Kurz : Nasazení webové aplikace v Pythonu (Django nebo Flask) pomocí PostgreSQL v Azure
- vytvoření a nasazení webové aplikace Flask do Azure s spravovanou identitou přiřazenou systémem
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.
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++.
Obecně viz Visual Studio | Dokumentace k Pythonu pro všechny dokumenty související s používáním Pythonu ve Visual Studio 2022.
Postup nastavení najdete v tématu Instalace podpory Pythonu v sadě Visual Studio, která vás provede postupem instalace úlohy Pythonu do sady Visual Studio 2022.
Obecný pracovní postup použití Pythonu pro vývoj pro web najdete v tématu Rychlý start: Vytvoření první webové aplikace v Pythonu pomocí sady Visual Studio. Tento článek je užitečný pro pochopení toho, jak vytvořit webovou aplikaci Pythonu od začátku (ale nezahrnuje nasazení do Azure).
Informace o použití sady Visual Studio 2022 ke správě prostředků Azure a nasazení do Azure najdete v tématu Vývoj pro Azure pomocí sady Visual Studio. I když se v této dokumentaci konkrétně uvádí .NET, nástroje pro správu prostředků Azure a nasazení do Azure fungují stejně bez ohledu na programovací jazyk.
Pokud v sadě Visual Studio 2022 pro danou úlohu správy nebo nasazení Azure není k dispozici žádný integrovaný nástroj, můžete vždy použít příkazy Azure CLI.
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.
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.
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 - Flask
- FastAPI
Django ke spuštění aplikace používá WSGI.
python hello_world\manage.py runserver
Krok 4: Procházet aplikaci Hello World.
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.