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.

A screenshot of the environments and services used in the Tutorial - Deploy a Python App on Azure Container Apps.

Komponenty podporující tento kurz a znázorněné v diagramu výše jsou:

  • Azure Container Apps

    • 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

    • 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.
  • Azure Database for PostgreSQL

    • 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.
  • GitHub

    • 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:

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.

A screenshot of the sample app created from the Python containerized web app used in the Tutorial - Containerized Python App on Azure.

Další krok