Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato série kurzů ukazuje, jak kontejnerizovat webovou aplikaci Python a nasadit ji do Azure Container Apps. Ukázková webová aplikace je kontejnerizovaná a image Dockeru je uložená v Azure Container Registry. Azure Container Apps je nakonfigurovaný tak, aby načítá image Dockeru ze služby Container Registry a vytvořil kontejner. Ukázková aplikace se připojí k Azure Database for PostgreSQL, která demonstruje komunikaci 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í Python na Azure. Tato série kurzů se zabývá 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 Python jako kontejner pro Azure App Service, přečtěte si téma Containerized Python web app on Azure with MongoDB.
Postupy v této sérii kurzů vás provedou dokončením těchto úloh:
- Vytvořte image Docker z webové aplikace Python a uložte image do Azure Container Registry.
- Nakonfigurujte Azure Container Apps pro hostování image Dockeru.
- Nastavte GitHub Actions tak, aby se kontejner aktualizoval novou imagí Dockeru aktivovanou 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 Python na Azure.
V této první části série se seznámíte se základními koncepty nasazení webové aplikace Python na Azure Container Apps.
Přehled služby
Následující diagram ukazuje, jak budete používat místní prostředí, GitHub úložiště 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 můžou vaše aplikace 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 z Azure Container Registry. Změny imagí kontejnerů aktivují aktualizaci nasazeného kontejneru. Můžete také nakonfigurovat GitHub Actions pro aktivaci aktualizací.
-
Azure Container Registry umožňuje pracovat s imagemi Dockeru v Azure. Vzhledem k tomu, že služba Container Registry je blízko vašich deploymentů v Azure, máte kontrolu nad přístupem. K řízení přístupu k imagím Dockeru můžete použít skupiny a oprávnění služby Microsoft Entra.
V této sérii tutoriálů je zdroj 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 této série kurzů je v GitHub úložišti, které vytvoříte forkem a klonujete místně. Pokud chcete nastavit pracovní postup CI/CD pomocí GitHub Actions, potřebujete účet GitHub.
Pokud pracujete místně nebo v Azure Cloud Shell a sestavíte image kontejneru z úložiště ukázkového kódu, můžete i nadále postupovat podle této série kurzů bez účtu GitHub.
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 vašeho GitHub repozitáře 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 environment, který podporuje virtuální síť 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 Azure Container Apps jako aplikaci OAuth pro váš účet GitHub. Jako aplikace OAuth zapisují Container Apps do vašeho úložiště soubor pracovního postupu GitHub Actions s informacemi o prostředcích Azure a úlohách pro jejich aktualizaci. Pracovní postup aktualizuje prostředků Azure pomocí přihlašovacích údajů služebního principálu Microsoft Entra (nebo již existujícího) s přístupem na základě rolí 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 GitHub.
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 connection string. Když je aplikace spuštěná 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 connection string pomocí přístupového tokenu Microsoft Entra za běhu. Tento mechanismus zabraňuje nutnosti hardcodovat 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. Stejný postup můžete provést také pomocí konektoru služby Azure.
Požadavky
K dokončení této série kurzů potřebujete:
Účet Azure, kde můžete vytvořit:
- Instance služby Azure Container Registry.
- Prostředí Azure Container Apps.
- Instance databáze Azure pro 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 Shell.
balíčky Python:
- psycopg2-binary pro připojení k PostgreSQL.
- Flask nebo Django jako webová architektura.
Ukázková aplikace
Ukázková aplikace Python je aplikace pro hodnocení restaurací, která ukládá data o restauracích a jejich hodnoceních do 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.