Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze reeks zelfstudies ziet 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 worden 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 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 op Azure. In deze reeks zelfstudies wordt Azure Container Apps behandeld. Container Apps is 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 reeks zelfstudies maakt u één container. Zie Containerized Python web-app in Azure met MongoDB als u een Python-web-app als container wilt implementeren in Azure App Service.
De procedures in deze reeks zelfstudies helpen u bij het voltooien van deze taken:
- Bouw een Docker-image vanuit een Python-web-app en sla de image op in Azure Container Registry.
- Configureer Azure Container Apps om de Docker-installatiekopie te hosten.
- Stel GitHub Actions in om de container bij te werken met een nieuwe Docker-image dat wordt geactiveerd door wijzigingen in uw GitHub repository. Deze stap is optioneel.
- Stel continue integratie en continue levering (CI/CD) van een Python-web-app in op Azure.
In dit eerste deel van de reeks leert u basisconcepten voor het implementeren van een Python-web-app op Azure Container Apps.
Overzicht van de service
In het volgende diagram ziet u hoe u uw lokale omgeving, GitHub opslagplaatsen en Azure services in deze reeks zelfstudies gebruikt.
Het diagram bevat de volgende onderdelen:
-
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 schalen 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 containerafbeeldingen veroorzaken een update van de geïmplementeerde container. U kunt ook GitHub Actions configureren om updates te activeren.
-
Azure Container Registry stelt u in staat om te werken met Docker-images in Azure. Omdat Container Registry zich dicht bij uw implementaties in Azure bevindt, hebt u controle over toegang. U kunt uw Microsoft Entra groepen en machtigingen gebruiken om de toegang tot Docker-installatiekopieën te beheren.
In deze serie zelfstudies 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 met behulp van een door de gebruiker toegewezen beheerde identiteit. Verbindingsgegevens worden opgeslagen in omgevingsvariabelen die expliciet of via een Azure-serviceconnector zijn geconfigureerd.
-
De voorbeeldcode voor deze reeks zelfstudies bevindt zich in een GitHub opslagplaats die u lokaal forkeert en kloont. Als u een CI/CD-werkstroom wilt instellen met GitHub Actions, hebt u een GitHub-account nodig.
U kunt deze reeks zelfstudies nog steeds volgen zonder een GitHub-account, als u lokaal of in Azure Cloud Shell werkt 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-image met uw wijzigingen. Vervolgens pusht u de image naar Container Registry en maakt u een nieuwe revisie van de container app.
Als u dit proces wilt automatiseren, ziet u in een optionele stap in de reeks zelfstudies hoe u een CI/CD-pijplijn bouwt met behulp van GitHub Actions. De pijplijn bouwt en implementeert uw code automatisch in Container-apps wanneer een nieuwe commit naar uw GitHub repository wordt gepusht.
Verificatie en beveiliging
In deze zelfstudiereeks bouwt u een Docker-containerimage rechtstreeks in Azure en implementeert u deze naar Azure Container Apps. Container Apps wordt uitgevoerd in de context van een omgeving, die wordt ondersteund door een Azure virtueel netwerk. Virtuele netwerken 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 CI/CD wilt instellen, autoriseert u Azure Container Apps als een OAuth-app voor uw GitHub-account. Als OAuth-app schrijft Container Apps een GitHub Actions werkstroombestand naar uw opslagplaats met informatie over Azure resources en taken om ze bij te werken. De werkstroom werkt Azure-resources bij met behulp van de inloggegevens van een Microsoft Entra service-principal (of een bestaande) met rolgebaseerde toegang voor Container Apps en een gebruikersnaam en wachtwoord voor Azure Container Registry. Referenties worden veilig opgeslagen in uw GitHub opslagplaats.
Ten slotte slaat de voorbeeldweb-app in deze reeks zelfstudies gegevens op in een PostgreSQL-database. De voorbeeldcode maakt via een connection string verbinding met PostgreSQL. Wanneer de app wordt uitgevoerd in Azure, maakt deze verbinding met de PostgreSQL-database met behulp van een door de gebruiker toegewezen beheerde identiteit. De code maakt gebruik van DefaultAzureCredential om het wachtwoord in de connection string dynamisch bij te werken met een Microsoft Entra toegangstoken tijdens runtime. Dit mechanisme voorkomt dat het wachtwoord in de connection string of een omgevingsvariabele moet worden vastgelegd en biedt een extra beveiligingslaag.
De reeks zelfstudies begeleidt u bij het maken van de beheerde identiteit en het verlenen van een geschikte PostgreSQL-rol en -machtigingen, zodat deze toegang heeft tot de database en deze kan bijwerken. Tijdens de configuratie van Container Apps begeleidt de reeks zelfstudies u bij het configureren van de beheerde identiteit in de app en het instellen van omgevingsvariabelen die verbindingsgegevens voor de database bevatten. U kunt ook een Azure-serviceconnector gebruiken om hetzelfde te bereiken.
Voorwaarden
U hebt het volgende nodig om deze reeks zelfstudies te voltooien:
Een Azure-account waar u het volgende kunt maken:
- Een Azure Container Registry instantie.
- Een Azure Container Apps omgeving.
- Een Azure Database for PostgreSQL exemplaar.
Visual Studio Code of de Azure CLI, afhankelijk van het hulpprogramma dat u gebruikt:
- Voor Visual Studio Code hebt u de extensie Container Apps nodig.
- U kunt de Azure CLI gebruiken via Azure Cloud Shell.
Python pakketten:
- psycopg2-binary voor het maken van verbinding met PostgreSQL.
- Flask of Django als een web framework.
Voorbeeld-app
De Python voorbeeld-app is een restaurantbeoordelingsapp die restaurant- en beoordelingsgegevens opslaat in PostgreSQL. Aan het einde van de reeks zelfstudies hebt u een restaurantbeoordelings-app geïmplementeerd en uitgevoerd in Azure Container Apps die eruitziet als de volgende schermopname.