Kurz: Přehled konceptů nasazení webové aplikace v Pythonu ve službě Azure Container Apps
V této sérii kurzů se dozvíte, jak kontejnerizovat webovou aplikaci v Pythonu a nasadit ji do Azure Container Apps. Ukázková webová aplikace je kontejnerizovaná a image Dockeru je uložená v azure Container Registry. Služba Azure Container Apps je nakonfigurovaná tak, aby načítá image Dockeru ze služby Container Registry a vytvořila kontejner. Ukázková aplikace se připojí k azure Database for PostgreSQL k předvedení komunikace mezi Container Apps a dalšími prostředky Azure.
Existuje několik možností sestavení a nasazení cloudově nativních a kontejnerizovaných webových aplikací Pythonu v Azure. Tato série kurzů se zabývá službami Azure Container Apps. Container Apps je vhodný pro spouštění kontejnerů pro obecné účely, zejména pro aplikace, které pokrývají mnoho mikroslužeb nasazených v kontejnerech.
V této sérii kurzů vytvoříte jeden kontejner. Pokud chcete nasadit webovou aplikaci v Pythonu jako kontejner do služby Azure App Service, přečtěte si téma Kontejnerizovaná webová aplikace v Pythonu v Azure s mongoDB.
Postupy v této sérii kurzů vás provedou dokončením těchto úloh:
- Vytvořte image Dockeru z webové aplikace v Pythonu a uložte image do služby Azure Container Registry.
- Nakonfigurujte Azure Container Apps pro hostování image Dockeru.
- Nastavte GitHub Actions, aby se kontejner aktualizoval novým obrazem Dockeru spuštěným změnami v úložišti GitHub. Tento krok je volitelný.
- Nastavte kontinuální integraci a průběžné doručování (CI/CD) webové aplikace Pythonu do Azure.
V této první části série se seznámíte se základními koncepty nasazení webové aplikace v Pythonu do Azure Container Apps.
Přehled služby
Následující diagram ukazuje, jak budete používat místní prostředí, úložiště GitHubu a služby Azure v této sérii kurzů.
Diagram obsahuje tyto komponenty:
-
Azure Container Apps umožňuje spouštět mikroslužby a kontejnerizované aplikace na bezserverové platformě. Bezserverová platforma znamená, že získáte výhody spouštění kontejnerů s minimální konfigurací. S Azure Container Apps se vaše aplikace můžou dynamicky škálovat na základě charakteristik, jako je provoz HTTP, zpracování řízené událostmi nebo zatížení procesoru nebo paměti.
Container Apps načítá image Dockeru ze služby Azure Container Registry. Změny imagí kontejnerů aktivují aktualizaci nasazeného kontejneru. Můžete také nakonfigurovat GitHub Actions tak, aby aktivovaly aktualizace.
-
Azure Container Registry umožňuje pracovat s imagemi Dockeru v Azure. Vzhledem k tomu, že se Container Registry blíží vašim nasazením v Azure, máte kontrolu nad přístupem. K řízení přístupu k image Dockeru můžete použít skupiny a oprávnění Microsoft Entra.
V této sérii kurzů je zdrojem registru Azure Container Registry. Můžete ale také použít Docker Hub nebo privátní registr s drobnými úpravami.
Azure Database for PostgreSQL:
Ukázkový kód ukládá data aplikace do databáze PostgreSQL. Aplikace kontejneru se připojí k PostgreSQL pomocí uživatelsky přiřazené manažované identity . Informace o připojení se ukládají do proměnných prostředí nakonfigurovaných explicitně nebo prostřednictvím konektoru služby Azure .
-
Vzorový kód pro tuto sérii tutoriálů se nachází v úložišti na GitHubu, které si můžete naklonovat a upravovat místně. Pokud chcete nastavit pracovní postup CI/CD pomocí GitHub Actions, potřebujete účet GitHubu.
Pokud pracujete místně nebo v Azure Cloud Shellu k sestavení image kontejneru z úložiště ukázkového kódu, můžete tuto sérii kurzů sledovat bez účtu GitHubu.
Revidování a CI/CD
Pokud chcete provést změny kódu a odeslat je do kontejneru, vytvoříte novou image Dockeru se změnami. Potom nasdílíte image do služby Container Registry a vytvoříte novou revizi aplikace kontejneru.
Pokud chcete tento proces automatizovat, volitelný krok v sérii kurzů ukazuje, jak vytvořit kanál CI/CD pomocí GitHub Actions. Pipeline automaticky sestaví a nasadí váš kód do Container Apps pokaždé, když se do úložiště GitHub odešle nový commit.
Ověřování a zabezpečení
V této sérii kurzů vytvoříte image kontejneru Dockeru přímo v Azure a nasadíte ji do Azure Container Apps. Container Apps běží v kontextu prostředí , které je podporováno virtuální sítí Azure . Virtuální sítě jsou základním stavebním blokem vaší privátní sítě v Azure. Container Apps umožňuje zpřístupnit kontejnerovou aplikaci veřejnému webu povolením přístupu.
Pokud chcete nastavit CI/CD, autorizujete službu Azure Container Apps jako aplikaci OAuth pro váš účet GitHubu. Jako aplikace OAuth služba Container Apps zapisuje do úložiště soubor pracovního postupu GitHub Actions s informacemi o prostředcích a úlohách Azure, které je aktualizují. Pracovní postup aktualizuje prostředky Azure pomocí přihlašovacích údajů principála služby Microsoft Entra (nebo stávajícího) s přístupem na základě role pro Container Apps a uživatelského jména a hesla pro Azure Container Registry. Přihlašovací údaje jsou bezpečně uložené v úložišti GitHubu.
Ukázková webová aplikace v této sérii kurzů ukládá data do databáze PostgreSQL. Ukázkový kód se připojí k PostgreSQL prostřednictvím připojovacího řetězce. Když aplikace běží v Azure, připojí se k databázi PostgreSQL pomocí spravované identity přiřazené uživatelem. Kód používá DefaultAzureCredential
k dynamické aktualizaci hesla v připojovacím řetězci pomocí přístupového tokenu Microsoft Entra během běhu. Tento mechanismus zabraňuje nutnosti pevně zakódovat heslo v připojovacím řetězci nebo proměnné prostředí a poskytuje další vrstvu zabezpečení.
Série kurzů vás provede vytvořením spravované identity a udělením příslušné role a oprávnění PostgreSQL, aby mohl přistupovat k databázi a aktualizovat ji. Během konfigurace Container Apps vás série kurzů provede konfigurací spravované identity v aplikaci a nastavením proměnných prostředí, které obsahují informace o připojení pro databázi. K dosažení stejného výsledku můžete použít také konektor služby Azure.
Požadavky
K dokončení této série kurzů potřebujete:
Účet Azure, ve kterém můžete vytvořit:
- Instance služby Azure Container Registry.
- Prostředí Azure Container Apps.
- Instance služby Azure Database for PostgreSQL.
Visual Studio Code nebo Azure CLI, podle toho, jaký nástroj používáte:
- Pro Visual Studio Code potřebujete rozšíření Container Apps.
- Azure CLI můžete použít prostřednictvím azure Cloud Shellu.
Balíčky Pythonu:
- psycopg2-binary pro připojení k PostgreSQL.
- Flask nebo Django jako webová architektura.
Ukázková aplikace
Ukázková aplikace Python je aplikace pro recenze restaurací, která ukládá data o restauracích a recenzích v PostgreSQL. Na konci série kurzů budete mít nasazenou a spuštěnou aplikaci pro kontrolu restaurace v Azure Container Apps, která vypadá jako na následujícím snímku obrazovky.