Vue d’ensemble : Application web Python conteneurisée sur Azure avec MongoDB
Ce tutoriel vous montre comment conteneuriser une application web Python et la déployer sur Azure. L’application web de conteneur unique est hébergée dans Azure App Service et utilise MongoDB pour Azure Cosmos DB pour stocker des données. App Service Web App for Containers vous permet de vous concentrer sur la composition de vos conteneurs sans vous soucier de la gestion et de la maintenance d’un orchestrateur de conteneur sous-jacent. Lors de la création d’applications web, Azure App Service est une bonne option pour effectuer vos premières étapes avec des conteneurs. Pour plus d’informations sur l’utilisation de conteneurs dans Azure, consultez Comparaison des options de conteneur Azure.
Ce didacticiel vous apprendra à effectuer les opérations suivantes :
Générez et exécutez un conteneur Docker localement. Cette étape est facultative.
Générez une image conteneur Docker directement dans Azure.
Configurez un App Service pour créer une application web basée sur l’image conteneur Docker.
Après ce tutoriel, vous aurez la base de l’intégration continue (CI) et du déploiement continu (CD) d’une application web Python sur Azure.
Présentation du service
Le diagramme de service prenant en charge ce didacticiel montre deux environnements (environnement développeur et Azure) et les différents services Azure utilisés dans le didacticiel.
Les composants prenant en charge ce didacticiel et présentés dans le diagramme ci-dessus sont les suivants :
-
La fonctionnalité App Service sous-jacente qui permet la conteneurisation est Web App for Containers. Azure App Service utilise la technologie de conteneur Docker pour héberger des images intégrées et des images personnalisées. Dans ce tutoriel, vous allez générer une image à partir du code Python et la déployer sur Web App pour conteneurs.
Web App for Containers utilise un webhook dans le Registre pour être averti des nouvelles images. Un push d’une nouvelle image vers le référentiel déclenche App Service pour extraire l’image et redémarrer.
-
Azure Container Registry vous permet d’utiliser des images Docker et ses composants dans Azure. Il fournit un registre proche de vos déploiements dans Azure et qui vous permet de contrôler l’accès, ce qui vous permet d’utiliser vos groupes et autorisations Microsoft Entra.
Dans ce tutoriel, la source du Registre est Azure Container Registry, mais vous pouvez également utiliser Docker Hub ou un registre privé avec des modifications mineures.
-
Azure Cosmos DB pour MongoDB est une base de données NoSQL utilisée dans ce didacticiel pour stocker des données.
L’accès à la ressource Azure Cosmos DB est via un chaîne de connexion, qui est transmis en tant que variable d’environnement à l’application conteneurisée.
Authentification
Dans ce tutoriel, vous allez créer une image Docker (localement ou directement dans Azure) et la déployer sur Azure App Service. App Service extrait l’image conteneur à partir d’un référentiel Azure Container Registry.
App Service utilise une identité managée pour extraire des images d’Azure Container Registry. L’identité managée vous permet d’accorder des autorisations à l’application web afin qu’elle puisse accéder à d’autres ressources Azure sans avoir à spécifier d’informations d’identification. Plus précisément, ce didacticiel utilise une identité managée affectée par le système. L’identité managée est configurée lors de la configuration d’App Service pour utiliser une image conteneur de Registre.
L’exemple d’application web du didacticiel utilise MongoDB pour stocker des données. L’exemple de code se connecte à Azure Cosmos DB via un chaîne de connexion.
Prérequis
Pour suivre ce didacticiel, vous aurez besoin des éléments suivants :
Un compte Azure dans lequel vous pouvez créer :
- Azure Container Registry
- Azure App Service
- Azure Cosmos DB pour MongoDB (ou accès à un équivalent). Pour créer une base de données Azure Cosmos DB pour MongoDB, nous vous recommandons de suivre les étapes décrites dans la partie 2 de ce didacticiel.
Visual Studio Code ou Azure CLI, en fonction de l’outil que vous allez utiliser.
- Pour Visual Studio Code, vous aurez besoin de l’extension Docker et de l’extension Azure App Service.
Packages Python :
Docker installé localement si vous souhaitez exécuter le conteneur localement.
Exemple d’application
L’exemple d’application Python est une application de révision de restaurant qui enregistre les données de restaurant et de révision dans MongoDB. Pour obtenir un exemple d’application web à l’aide de PostgreSQL, consultez Créer et déployer une application web Flask sur Azure avec une identité managée.
À la fin du tutoriel, vous disposez d’une application de révision des restaurants déployée et exécutée dans Azure qui ressemble à la capture d’écran ci-dessous.