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í Pythonu a jejich nasazením 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, Flask nebo FastAPI.

Webové aplikace v Pythonu vyvinuté místně je možné nasadit do služeb, jako je služba Aplikace Azure Service, Azure Container Apps nebo 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 si projít vývojové prostředí a 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 se sadou Visual Studio Code

Integrované vývojové prostředí (IDE) editoru Visual Studio Code představuje snadný způsob vývoje webových aplikací v Pythonu a práci s prostředky Azure, které webové aplikace používají.

Tip

Ujistěte se, že máte nainstalované rozšíření Pythonu . 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í 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.

A screenshot of the Visual Studio Code command palette for 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 je virtualenv nebo venv, rozšíření Visual Studio Code Dev Container (založené na otevřené specifikaci dev containeru) umožňuje používat kontejner Dockeru jako plnohodnotné kontejnerizované 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. Takže když se nový vývojář připojí k týmu, celé prostředí, včetně nástrojů, závislostí a dat, je připravené naklonovat na místní počítač a 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 veškerou dokumentaci související s používáním Pythonu v sadě 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 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 pro danou úlohu správy nebo nasazení Azure není k dispozici žádný integrovaný nástroj v sadě Visual Studio 2022, 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 následujícím snímku obrazovky je v integrovaném vývojovém prostředí PyCharm otevřená jednoduchá webová aplikace Flask. Pomocí příkazu je možné webovou aplikaci nasadit do služby az webapp up Aplikace Azure. 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.

A screenshot of the PyCharm IDE with an Azure CLI command deploying a web app.

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řené k vytvoření webové aplikace a vytvoření a nasazení z místního pracovního prostoru.
az container app Spravuje azure Container Apps.
az staticwebapp Spravuje Azure Static Web Apps.
az group Spravuje skupiny prostředků a nasazení šablon. Pomocí podpříkazu vytvořte skupinu prostředků, do které umístíte prostředky Azure.
az appservice Spravuje plány služby App Service.
az config Spravovaná 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 ukázkový příkaz Azure CLI pro vytvoření webové aplikace a přidružených prostředků a jeho nasazení do Azure v jednom příkazu pomocí příkazu az webapp up. Spusťte příkaz v kořenovém adresáři vaší webové aplikace.

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 Pythonu (Django nebo Flask) do služby Aplikace Azure Service.

Nezapomeňte, že pro některý pracovní postup Azure můžete také použít Azure CLI z Azure Cloud Shellu. Azure Cloud Shell je interaktivní ověřené prostředí, které je přístupné prostřednictvím prohlížeče a umožňuje spravovat prostředky 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í pipnástroje . Nebo do souboru requirements.txt vložte název indexu balíčků Pythonu (Pypi).

Dokumentace k sadě SDK Instalace Index balíčků Pythonu
Identita Azure pip install azure-identity azure-identity
Objekty blob služby Azure Storage pip install azure-storage-blob azure-storage-blob
Azure Cosmos DB pip install azure-cosmos azure-cosmos
Tajné kódy služby Azure Key Vault pip install azure-keyvault-secrets azure-keyvault-secrets

Balíček azure-identity umožňuje webové aplikaci ověřit pomocí ID Microsoft Entra. Pro ověřování v kódu webové aplikace se doporučuje použít v azure-identity balíčku 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)

Informace DefaultAzureCredential o účtu se budou hledat v předdefinovaných umístěních, například v proměnných prostředí nebo v přihlášení k 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, Flask nebo 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 architekturami místně. 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 ve virtuálním prostředí.

Krok 1: Stáhněte si architektury s pipem.

pip install Django

Krok 2: Vytvoření aplikace Hello World

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

django-admin startproject hello_world

Krok 3: Místní spuštění kódu

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

python hello_world\manage.py runserver

Krok 4: Procházení aplikace 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 ji nasadit.

Další kroky