Partager via


Créer une application web Python conteneurisée dans le cloud

Cet article fait partie d’un didacticiel sur la façon de conteneuriser et de déployer une application web Python sur Azure App Service. App Service vous permet d’exécuter des applications web conteneurisées et de déployer via des fonctionnalités d’intégration/de déploiement continu (CI/CD) avec Docker Hub, Azure Container Registry et Visual Studio Team Services. Dans cette partie du tutoriel, vous allez apprendre à générer l’application web Python conteneurisée dans le cloud.

Dans la partie facultative et précédente de ce didacticiel (), une image conteneur a été générée et exécutée localement. En revanche, dans cette partie du didacticiel, vous générez (conteneuriser) une application web Python dans une image Docker directement dans Azure Container Registry. La création de l’image dans Azure est généralement plus rapide et plus facile que la génération locale, puis l’envoi (push) de l’image vers un registre. En outre, la création dans le cloud ne nécessite pas que Docker s’exécute dans votre environnement de développement.

Une fois l’image Docker dans Azure Container Registry, elle peut être déployée sur Azure App Service.

Ce diagramme de service met en évidence les composants abordés dans cet article.

Capture d’écran des services à l’aide du didacticiel - Application Python en conteneur sur Azure avec le chemin d’accès au cloud intégré mis en surbrillance.

Créer un Registre de conteneurs Azure

Si vous disposez déjà d’Azure Container Registry, passez à l’étape suivante. Si ce n’est pas le cas, créez-en un.

Les commandes Azure CLI peuvent être exécutées dans le Azure Cloud Shell ou sur une station de travail avec l'Azure CLI installée. Lors de l’exécution dans Cloud Shell, ignorez étape 3.

  1. Si nécessaire, créez un groupe de ressources avec la commande az group create. Si vous avez déjà configuré un compte Azure Cosmos DB pour MongoDB dans la partie 2. Générez et testez le conteneur localement de ce didacticiel, définissez la variable d’environnement RESOURCE_GROUP_NAME sur le nom du groupe de ressources que vous avez utilisé pour ce compte et passez à l’étape suivante.

    RESOURCE_GROUP_NAME='msdocs-web-app-rg'
    LOCATION='eastus'
    
    az group create -n $RESOURCE_GROUP_NAME -l $LOCATION
    

    LOCATION doit être une valeur d’emplacement Azure. Choisissez un emplacement près de vous. Vous pouvez répertorier les valeurs d’emplacement Azure avec la commande suivante : az account list-locations -o table.

  2. Créez un registre de conteneurs avec la commande az acr create.

    REGISTRY_NAME='<your Azure Container Registry name>'
    
    az acr create -g $RESOURCE_GROUP_NAME -n $REGISTRY_NAME --sku Basic
    

    REGISTRY_NAME doit être unique dans Azure et contenir 5 à 50 caractères alphanumériques.

    Dans la sortie JSON de la commande, recherchez la valeur loginServer, qui est le nom de Registre complet (toutes les minuscules) et qui doit inclure le nom de Registre que vous avez spécifié.

  3. Si vous exécutez Azure CLI localement, connectez-vous au Registre à l’aide de la commande az acr login.

    az acr login -n $REGISTRY_NAME
    

    La commande ajoute « azurecr.io » au nom pour créer le nom de registre entièrement qualifié. Si elle réussit, le message « Connexion réussie » s’affiche.

    Remarque

    La commande az acr login n’est pas nécessaire ou prise en charge dans Cloud Shell.

Créer une image dans Azure Container Registry

Vous pouvez générer l’image conteneur directement dans Azure de plusieurs façons. Tout d’abord, vous pouvez utiliser Azure Cloud Shell, qui génère l’image sans utiliser votre environnement local. Vous pouvez également générer l’image conteneur dans Azure à partir de votre environnement local à l’aide de VS Code ou d’Azure CLI. La création de l’image dans le cloud ne nécessite pas que Docker s’exécute dans votre environnement local. Si vous en avez besoin, vous pouvez suivre les instructions de Cloner ou télécharger l’exemple d’application dans la partie 2 de ce tutoriel pour obtenir l’exemple d’application web Flask ou Django.

Les commandes Azure CLI peuvent être exécutées sur une station de travail avec l’interface de ligne de commande Azure installée ou dans Azure Cloud Shell. Lors de l’exécution dans Cloud Shell, ignorez étape 1.

  1. Si vous exécutez Azure CLI localement, connectez-vous au Registre si vous ne l’avez pas déjà fait avec la commande az acr login.

    az acr login -n $REGISTRY_NAME
    

    Si vous accédez au Registre à partir d’un abonnement différent de celui dans lequel le Registre a été créé, utilisez le commutateur --suffix.

    Remarque

    La commande az acr login n’est pas nécessaire et n’est pas prise en charge dans Cloud Shell.

  2. Générez l’image avec la commande az acr build.

    az acr build -r $REGISTRY_NAME -g $RESOURCE_GROUP_NAME -t msdocspythoncontainerwebapp:latest .
    

    Dans cette commande :

    • Le point (« . ») à la fin de la commande indique l’emplacement du code source à générer. Si vous n’exécutez pas cette commande dans l’exemple de répertoire racine de l’application, spécifiez le chemin d’accès au code.

      Au lieu d’un chemin d’accès au code dans votre environnement, vous pouvez éventuellement spécifier un chemin d’accès à l’exemple de dépôt GitHub : https://github.com/Azure-Samples/msdocs-python-django-container-web-app ou https://github.com/Azure-Samples/msdocs-python-flask-container-web-app.

    • Si vous ne laissez pas l’option -t (identique à --image), la commande met en file d’attente une build de contexte local sans l’envoyer au registre. La génération sans envoi peut s’avérer utile pour vérifier que l’image est générée.

  3. Vérifiez que l’image conteneur a été créée avec la commande az acr repository list.

    az acr repository list -n $REGISTRY_NAME
    

Étape suivante