Översikt: Containerbaserad Python-webbapp i Azure med MongoDB
Artikel
Den här självstudieserien visar hur du containeriserar en Python-webbapp och sedan antingen kör den lokalt eller distribuerar den till Azure App Service. Med App Service Web App for Containers kan du fokusera på att skapa dina containrar utan att behöva bekymra dig om att hantera och underhålla en underliggande containerorkestrerare. När du skapar webbappar är Azure App Service ett bra alternativ för att utföra dina första steg med containrar. Den här containerwebbappen kan använda antingen en lokal MongoDB-instans eller MongoDB för Azure Cosmos DB för att lagra data. Mer information om hur du använder containrar i Azure finns i Jämföra Azure-containeralternativ.
När du har slutfört artiklarna i den här självstudieserien har du grunden för kontinuerlig integrering (CI) och kontinuerlig distribution (CD) av en Python-webbapp till Azure.
Tjänstöversikt
Tjänstdiagrammet som stöder den här självstudien visar två miljöer: utvecklarmiljö och Azure-miljö. Den visar de viktigaste Azure-tjänsterna som används i utvecklingsprocessen.
Utvecklarmiljö
Komponenterna som stöder utvecklarmiljön i den här självstudien är:
Local Development System: En persondator som används för att koda, skapa och testa Docker-containern.
Docker Containerization: Docker används för att paketera appen och dess beroenden i en bärbar container.
Development Tools: Innehåller en kodredigerare och andra verktyg som behövs för programvaruutveckling.
Lokal MongoDB-instans: En lokal MongoDB-databas som används för datalagring under utvecklingen.
MongoDB-anslutning: Åtkomst till den lokala MongoDB-databasen som tillhandahålls via en anslutningssträng.
Azure-miljö
De komponenter som stöder Azure-miljön i den här självstudien är:
I Azure App Service använder Web App for Containers Docker containerteknik för att tillhandahålla värdtjänster för både inbyggda avbildningar och anpassade avbildningar med Docker.
Web App for Containers använder en webhook i Azure Container Registry (ACR) för att få meddelanden om nya bilder. När en ny bild skickas till registret utlöser webhook-meddelandet App-tjänsten att hämta uppdateringen och starta om appen.
Med Azure Container Registry kan du lagra och hantera Docker-avbildningar och deras komponenter i Azure. Det tillhandahåller ett register nära dina distributioner i Azure som ger dig möjlighet att styra åtkomsten med hjälp av dina Microsoft Entra-grupper och -behörigheter.
I den här självstudien är Azure Container Registry registerkällan, men du kan också använda Docker Hub eller ett privat register med mindre ändringar.
Azure Cosmos DB for MongoDB är en NoSQL-databas som används i den här självstudien för datalagring.
Det containerbaserade programmet ansluter till och kommer åt Azure Cosmos DB-resursen med hjälp av en anslutningssträng som lagras som en miljövariabel och tillhandahålls till appen.
Autentisering
I den här självstudien skapar du en Docker-avbildning, antingen lokalt eller i Azure, och distribuerar den sedan till Azure App Service. App Service hämtar containeravbildningen från en Azure Container Registry-lagringsplats.
För att på ett säkert sätt hämta avbildningar från lagringsplatsen använder App Service en systemtilldelad hanterad identitet. Den här hanterade identiteten ger webbappen behörighet att interagera med andra Azure-resurser, vilket eliminerar behovet av explicita autentiseringsuppgifter. I den här guiden konfigureras den hanterade identiteten under installationen av App Service för att använda en containerbild från ett register.
Exempelwebbappen i handledningen använder MongoDB för att lagra data. Exempelkoden ansluter till Azure Cosmos DB via en anslutningssträng.
Upptäck hur du skapar en Docker-avbildning och lagrar den i Azure Container Registry, och använd sedan Azure App Service för att distribuera en webbapp som baseras på avbildningen.