Přehled: Kontejnerizovaná webová aplikace v Pythonu v Azure s MongoDB
V tomto kurzu se dozvíte, jak kontejnerizovat webovou aplikaci v Pythonu a nasadit ji do Azure. Webová aplikace s jedním kontejnerem je hostovaná ve službě Aplikace Azure Service a k ukládání dat používá MongoDB pro Azure Cosmos DB. App Service Web App for Containers umožňuje soustředit se na vytváření kontejnerů, aniž byste se museli starat o správu a údržbu základního orchestrátoru kontejnerů. Při vytváření webových aplikací je Aplikace Azure Service dobrou volbou pro první kroky s kontejnery. Další informace o používání kontejnerů v Azure najdete v tématu Porovnání možností kontejneru Azure.
V tomto kurzu:
Sestavte a spusťte kontejner Dockeru místně. Tento krok je nepovinný.
Sestavte image kontejneru Dockeru přímo v Azure.
Nakonfigurujte službu App Service tak, aby vytvořila webovou aplikaci založenou na imagi kontejneru Dockeru.
V tomto kurzu budete mít základ pro 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 dvě prostředí (vývojové prostředí a Azure) a různé služby Azure používané v tomto kurzu.
Komponenty podporující tento kurz a znázorněné v diagramu výše jsou:
-
Základní funkce služby App Service, které umožňují kontejnerizaci, jsou Web App for Containers. Aplikace Azure Služba používá Technologie kontejneru Dockeru pro hostování integrovaných i vlastních imagí V tomto kurzu vytvoříte image z kódu Pythonu a nasadíte ji do služby Web App for Containers.
Služba Web App for Containers používá webhook v registru k oznámení o nových imagích. Nasdílení změn nové image do úložiště aktivuje službu App Service, aby image stáhla a restartovala.
-
Azure Container Registry umožňuje pracovat s imagemi Dockeru a jeho komponentami v Azure. Poskytuje registr, který je blízko vašich nasazení v Azure a poskytuje vám kontrolu nad přístupem a umožňuje používat vaše skupiny a oprávnění Microsoft Entra.
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 Cosmos DB for MongoDB je databáze NoSQL použitá v tomto kurzu k ukládání dat.
Přístup k prostředku Azure Cosmos DB je prostřednictvím připojovací řetězec, který se předá do kontejnerizované aplikace jako proměnná prostředí.
Ověřování
V tomto kurzu vytvoříte image Dockeru (místně nebo přímo v Azure) a nasadíte ji do služby Aplikace Azure Service. App Service načte image kontejneru z úložiště Azure Container Registry.
Služba App Service používá spravovanou identitu k načtení imagí ze služby Azure Container Registry. Spravovaná identita umožňuje udělit oprávnění webové aplikaci, aby mohl přistupovat k jiným prostředkům Azure bez nutnosti zadávat přihlašovací údaje. Konkrétně tento kurz používá spravovanou identitu přiřazenou systémem. Spravovaná identita se konfiguruje během instalace služby App Service tak, aby používala image kontejneru registru.
Ukázková webová aplikace kurzu používá k ukládání dat MongoDB. Ukázkový kód se připojí ke službě Azure Cosmos DB prostřednictvím připojovací řetězec.
Požadavky
K dokončení tohoto kurzu budete potřebovat:
Účet Azure, ve kterém můžete vytvořit:
- Azure Container Registry
- Azure App Service
- Azure Cosmos DB pro MongoDB (nebo přístup k ekvivalentu). Pokud chcete vytvořit databázi Azure Cosmos DB for MongoDB, doporučujeme postupovat podle kroků v části 2 tohoto kurzu.
Visual Studio Code nebo Azure CLI podle toho, jaký nástroj budete používat.
Balíčky Pythonu:
Docker je nainstalovaný místně, pokud chcete spustit kontejner místně.
Ukázková aplikace
Ukázková aplikace v Pythonu je aplikace pro kontrolu restaurace, která ukládá restaurace a kontroluje data v MongoDB. Příklad webové aplikace využívající PostgreSQL najdete v tématu Vytvoření a nasazení webové aplikace Flask do Azure se spravovanou identitou.
Na konci kurzu budete mít nasazenou a spuštěnou aplikaci pro kontrolu restaurace v Azure, která vypadá jako na následujícím snímku obrazovky.