Ö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 Azure DocumentDB (med MongoDB-kompatibilitet) 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 kommer du att:

Efter att ha slutfört artiklarna i den här självstudieserien har du grunderna för kontinuerlig integrering (CI) och kontinuerlig driftsättning (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ö

Utvecklarmiljön för den här självstudien innehåller följande komponenter:

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

  • Utvecklingsverktyg: En kodredigerare och andra nödvändiga verktyg för programvaruutveckling.

  • Lokal MongoDB-instans: En lokal MongoDB-databas som används för datalagring under utvecklingen.

  • MongoDB-anslutning: En reťazec pripojenia som ger åtkomst till den lokala MongoDB-databasen.

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-containertekniken för att tillhandahålla containervärdtjänster för både inbyggda avbildningar och anpassade avbildningar med hjälp av Docker.
    • Web App for Containers använder en webhook i Azure Container Registry (ACR) för att få meddelanden om nya bilder. När du skickar en ny avbildning till registret utlöser webhook-meddelandet App Service för 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 DocumentDB (med MongoDB-kompatibilitet)

    • Azure DocumentDB är en MongoDB-kompatibel databas som används i den här självstudien för datalagring.

    • Det containerbaserade programmet ansluter till och kommer åt Azure DocumentDB-resursen med hjälp av en reťazec pripojenia, som du lagrar som en miljövariabel och tillhandahåller 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, så du behöver inte explicita autentiseringsuppgifter. I den här självstudien konfigurerar du den hanterade identiteten under installationen av App Service för att använda en registercontaineravbildning.

Exempelwebbappen i handledningen använder MongoDB för att lagra data. Exempelkoden ansluter till Azure DocumentDB 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