Share via


Overzicht: Een Python-web-app implementeren in Azure Container Apps

In deze zelfstudie leert u hoe u een Python-web-app in een container kunt zetten en deze implementeert in Azure Container Apps. Een voorbeeldweb-app wordt in een container geplaatst en de Docker-installatiekopieën die zijn opgeslagen in Azure Container Registry. Azure Container Apps is geconfigureerd om de Docker-installatiekopie op te halen uit Container Registry en een container te maken. De voorbeeld-app maakt verbinding met een Azure Database for PostgreSQL om communicatie tussen Container Apps en andere Azure-resources te demonstreren.

Er zijn verschillende opties voor het bouwen en implementeren van cloudeigen en in containers geplaatste Python-web-apps in Azure. In deze zelfstudie wordt Azure Container Apps behandeld. Container Apps zijn geschikt voor het uitvoeren van containers voor algemeen gebruik, met name voor toepassingen die veel microservices omvatten die zijn geïmplementeerd in containers. In deze zelfstudie maakt u één container. Als u een Python-web-app wilt implementeren als een container in Azure-app Service, raadpleegt u De in containers geplaatste Python-web-app in App Service.

In deze zelfstudie gaat u het volgende doen:

Na deze zelfstudie gaat u instellen voor Continue integratie (CI) en Continue implementatie (CD) van een Python-web-app naar Azure.

Serviceoverzicht

Het servicediagram dat deze zelfstudie ondersteunt, laat zien hoe uw lokale omgeving, GitHub-opslagplaatsen en Azure-services worden gebruikt in de zelfstudie.

A screenshot of the environments and services used in the Tutorial - Deploy a Python App on Azure Container Apps.

De onderdelen die deze zelfstudie ondersteunen en in het bovenstaande diagram worden weergegeven, zijn:

  • Azure Container Apps

    • Met Azure Container Apps kunt u microservices en toepassingen in containers uitvoeren op een serverloos platform. Een serverloos platform betekent dat u profiteert van de voordelen van het uitvoeren van containers met minimale configuratie. Met Azure Container Apps kunnen uw toepassingen dynamisch worden geschaald op basis van kenmerken zoals HTTP-verkeer, gebeurtenisgestuurde verwerking of CPU- of geheugenbelasting.
    • Container Apps haalt Docker-installatiekopieën op uit Azure Container Registry. Wijzigingen in containerinstallatiekopieën activeren een update naar de geïmplementeerde container. U kunt gitHub Actions ook configureren om updates te activeren.
  • Azure Container Registry

    • Met Azure Container Registry kunt u werken met Docker-installatiekopieën in Azure. Omdat Container Registry zich dicht bij uw implementaties in Azure bevindt, hebt u controle over de toegang, zodat u uw Microsoft Entra-groepen en -machtigingen kunt gebruiken om de toegang tot Docker-installatiekopieën te beheren.
    • In deze zelfstudie is de registerbron Azure Container Registry, maar u kunt ook Docker Hub of een privéregister gebruiken met kleine wijzigingen.
  • Azure Database for PostgreSQL

    • In de voorbeeldcode worden toepassingsgegevens opgeslagen in een PostgreSQL-database.
    • De container-app maakt verbinding met PostgreSQL via omgevingsvariabelen die expliciet of met Azure Service Verbinding maken or zijn geconfigureerd.
  • GitHub

    • De voorbeeldcode voor deze zelfstudie bevindt zich in een GitHub-opslagplaats die u lokaal gaat forkeren en klonen. Als u een CI/CD-werkstroom wilt instellen met GitHub Actions, hebt u een GitHub-account nodig.
    • U kunt deze zelfstudie nog steeds volgen zonder een GitHub-account, lokaal werken of in De Azure Cloud Shell om de containerinstallatiekopieën te bouwen vanuit de voorbeeldcodeopslagplaats.

Revisies en CI/CD

Als u codewijzigingen wilt aanbrengen en naar een container wilt pushen, maakt u een nieuwe Docker-installatiekopieën met uw wijziging. Vervolgens pusht u de installatiekopieën naar Container Registry en maakt u een nieuwe revisie van de container-app.

Als u dit proces wilt automatiseren, ziet u een optionele stap in de zelfstudie over het bouwen van een CI/CD-pijplijn (continue integratie en continue levering) met GitHub Actions. De pijplijn bouwt en implementeert uw code automatisch in de container-app wanneer een nieuwe doorvoering naar uw GitHub-opslagplaats wordt gepusht.

Verificatie en beveiliging

In deze zelfstudie bouwt u rechtstreeks in Azure een Docker-containerinstallatiekopieën en implementeert u deze in Azure Container Apps. Container Apps worden uitgevoerd in de context van een omgeving, die wordt ondersteund door een virtueel Azure-netwerk (VNet). VNets zijn een fundamentele bouwsteen voor uw privénetwerk in Azure. Met Container Apps kunt u uw container-app beschikbaar maken voor het openbare web door inkomend verkeer in te schakelen.

Als u continue integratie en continue levering (CI/CD) wilt instellen, autoriseert u Azure Container Apps als een OAuth-app voor uw GitHub-account. Als OAuth-app schrijft Container Apps een Werkstroombestand voor GitHub Actions naar uw opslagplaats met informatie over Azure-resources en -taken om ze bij te werken. De werkstroom werkt Azure-resources bij met behulp van referenties van een Microsoft Entra-service-principal (of een bestaande) met op rollen gebaseerde toegang voor Container Apps en gebruikersnaam en wachtwoord voor Azure Container Registry. Referenties worden veilig opgeslagen in uw GitHub-opslagplaats.

Ten slotte slaat de voorbeeldweb-app in de zelfstudie gegevens op in een PostgreSQL-database. De voorbeeldcode maakt via een verbindingsreeks verbinding met PostgreSQL. Tijdens de configuratie van de container-app wordt u in de zelfstudie begeleid bij het instellen van omgevingsvariabelen die verbindingsgegevens bevatten. U kunt ook een Azure Service Verbinding maken or gebruiken om hetzelfde te bereiken.

Vereisten

Voor het voltooien van deze zelfstudie hebt u het volgende nodig:

Voorbeeld-app

De Python-voorbeeld-app is een restaurantbeoordelings-app waarmee restaurant wordt opgeslagen en gegevens worden gecontroleerd in PostgreSQL. Aan het einde van de zelfstudie hebt u een restaurantbeoordelings-app geïmplementeerd en uitgevoerd in Azure Container Apps die er als volgt uitziet.

A screenshot of the sample app created from the Python containerized web app used in the Tutorial - Containerized Python App on Azure.

Volgende stap