Přehled: Nasazení webové aplikace v Pythonu v Azure Container Apps
V tomto kurzu se dozvíte, jak kontejnerizovat webovou aplikaci v Pythonu a nasadit ji do Azure Container Apps. Ukázková webová aplikace bude kontejnerizovaná a image Dockeru uložená ve službě 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í ke službě Azure Database for PostgreSQL , která demonstruje komunikaci mezi Container Apps a dalšími prostředky Azure.
Existuje několik možností pro sestavení a nasazení cloudových nativních a kontejnerizovaných webových aplikací v Pythonu v Azure. Tento kurz se zabývá službami Azure Container Apps. KontejnerOvé aplikace jsou vhodné pro spouštění kontejnerů pro obecné účely, zejména pro aplikace, které se nacházejí v mnoha mikroslužbách nasazených v kontejnerech. V tomto kurzu vytvoříte jeden kontejner. Pokud chcete nasadit webovou aplikaci v Pythonu jako kontejner do služby Aplikace Azure Service, přečtěte si téma Kontejnerizovaná webová aplikace v Pythonu ve službě App Service.
V tomto kurzu:
- Vytvořte image Dockeru z webové aplikace v Pythonu a uložte ji do služby Azure Container Registry.
- Nakonfigurujte Azure Container Apps pro hostování image Dockeru.
- Nastavte akci GitHubu, která aktualizuje kontejner novou imagí Dockeru aktivovanou změnami v úložišti GitHub. Tento poslední krok je volitelný.
V tomto kurzu nastavíte kontinuální integraci (CI) a průběžné nasazování (CD) webové aplikace v Pythonu do Azure.
Přehled služeb
Diagram služby podporující tento kurz ukazuje, jak se v tomto kurzu používají vaše místní prostředí, úložiště GitHubu a služby Azure.
Komponenty podporující tento kurz a znázorněné v diagramu výše jsou:
-
- Azure Container Apps umožňuje provozovat 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, abyste mohli používat skupiny a oprávnění Microsoft Entra k řízení přístupu k imagím Dockeru.
- V tomto kurzu je zdrojem registru Azure Container Registry, ale můžete také použít Docker Hub nebo privátní registr s drobnými úpravami.
-
- Ukázkový kód ukládá data aplikace do databáze PostgreSQL.
- Aplikace kontejneru se připojí k PostgreSQL prostřednictvím proměnných prostředí nakonfigurovaných explicitně nebo pomocí služby Azure Service Připojení or.
-
- Vzorový kód pro tento kurz je v úložišti GitHubu, ve kterém budete forkovat a klonovat místně. Pokud chcete nastavit pracovní postup CI/CD pomocí GitHub Actions, budete potřebovat účet GitHubu.
- Tento kurz můžete dál sledovat bez účtu GitHubu, který pracuje místně nebo v Azure Cloud Shellu a sestaví image kontejneru z úložiště ukázkového kódu.
Revize a CI/CD
Pokud chcete provést změny kódu a odeslat je do kontejneru, vytvoříte novou image Dockeru se změnou. 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 kurzu ukazuje, jak vytvořit kanál kontinuální integrace a průběžného doručování (CI/CD) pomocí GitHub Actions. Kanál automaticky sestaví a nasadí váš kód do kontejnerové aplikace pokaždé, když se do úložiště GitHub odešle nové potvrzení.
Ověření a zabezpečení
V tomto kurzu 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é podporuje 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 zveřejnit aplikaci kontejneru pro veřejný web povolením příchozího přenosu dat.
Pokud chcete nastavit kontinuální integraci a průběžné doručování (CI/CD), autorizujete 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ů instančního objektu Microsoft Entra (nebo existujícího) s přístupem na základě role pro Container Apps a uživatelským jménem a heslem pro Azure Container Registry. Přihlašovací údaje jsou bezpečně uložené v úložišti GitHubu.
Nakonec ukázková webová aplikace kurzu ukládá data do databáze PostgreSQL. Ukázkový kód se připojí k PostgreSQL prostřednictvím připojovací řetězec. Během konfigurace kontejnerové aplikace vás tento kurz provede nastavením proměnných prostředí obsahujících informace o připojení. K dosažení stejného výsledku můžete použít také službu Azure Service Připojení or.
Požadavky
K dokončení tohoto kurzu budete potřebovat:
Účet Azure, ve kterém můžete vytvořit:
- Azure Container Registry
- Prostředí Azure Container Apps
- Azure Database for PostgreSQL
Visual Studio Code nebo Azure CLI podle toho, jaký nástroj použijete
- Pro Visual Studio Code budete potřebovat rozšíření Container Apps.
- Azure CLI můžete použít také prostřednictvím Azure Cloud Shellu.
Balíčky Pythonu:
- pyscopg2-binary pro připojení k PostgreSQL.
- Webová architektura Flask nebo Django
Ukázková aplikace
Ukázková aplikace v Pythonu je aplikace pro kontrolu restaurace, která ukládá restaurace a kontroluje data v PostgreSQL. Na konci kurzu 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.