Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
I den här handledningen:
Skapa och kör en Docker- container lokalt. Se Skapa och köra en containerbaserad Python-webbapp lokalt.
Skapa en Docker containeravbildning direkt i Azure. Se Skapa en containerbaserad Python-webbapp i Azure.
Konfigurera en App Service för att skapa en webbapp baserat på Docker-containeravbildningen. Se Distribuera en containerbaserad Python-app till App Service.
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.
Förutsättningar
För att slutföra den här självstudien behöver du:
Ett Azure-konto där du kan skapa:
- Azure Container Registry
- Azure App Service
- Azure Cosmos DB for MongoDB (eller åtkomst till en motsvarighet). Följ stegen i del 2 i den här självstudien för att skapa en Azure Cosmos DB for MongoDB-databas.
Visual Studio Code eller Azure CLI, beroende på vilket verktyg du väljer. Om du använder Visual Studio Code behöver du Docker-tillägget och Azure App Service-tillägget.
Följande Python-paket:
- MongoDB Shell (mongosh) för anslutning till MongoDB.
- Flask eller Django som ett webbramverk.
Docker installerat lokalt.
Exempelapp
Slutresultatet av den här handledningen är en recensionsapp för restauranger som distribueras och körs i Azure, som ser ut som på följande skärmbild.
I den här självstudien skapar du en Python-restauranggranskningsapp som använder MongoDB för datalagring. Ett exempelprogram med PostgreSQL finns i Skapa och distribuera en Flask-webbapp till Azure med en hanterad identitet.