Läs på engelska

Dela via


Översikt: Containerbaserad Python-webbapp i Azure med MongoDB

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 denna handledning:

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.

En skärmbild av de tjänster som används i självstudien – Containeriserad Python-app i Azure.

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:

  • Azure App Service

    • 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.
  • Azure Container Registry

    • 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 för MongoDB

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

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.

En skärmbild av exempelappen som skapats från den containerbaserade Python-webbappen som används i Självstudie – Containeriserad Python-app i Azure.

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.

Nästa steg