Partage via


Déployer Azure Container Apps avec la commande az containerapp up

La commande az containerapp up (ou up) est le moyen le plus rapide de déployer une application sur Azure Container Apps depuis une image existante, un code source local ou un référentiel GitHub. Avec cette seule commande, votre application conteneur peut être opérationnelle en quelques minutes.

La commande az containerapp up est un moyen simplifié de créer et de déployer des applications conteneur qui utilisent principalement les paramètres par défaut. Toutefois, vous devez exécuter d’autres commandes CLI pour configurer des paramètres plus avancés :

Pour personnaliser les paramètres de mise à l’échelle ou de ressource de votre application conteneur, vous pouvez utiliser la commande up, puis la commande az containerapp update pour modifier ces paramètres. La commande az containerapp up n’est pas une abréviation de la commande az containerapp update.

La commande up peut créer ou utiliser des ressources existantes, notamment :

  • Resource group
  • Azure Container Registry
  • Un environnement Container Apps et un espace de travail Log Analytics
  • Votre application conteneur

La commande peut générer et envoyer (push) une image conteneur à un Azure Container Registry (ACR) quand vous fournissez du code source local ou un dépôt GitHub. Quand vous travaillez à partir d’un dépôt GitHub, elle crée un workflow GitHub Actions qui génère et envoie (push) automatiquement une nouvelle image conteneur quand vous commitez les modifications apportées à votre dépôt GitHub.

Si vous avez besoin de personnaliser l’environnement Container Apps, commencez par créer l’environnement à l’aide de la commande az containerapp env create. Si vous ne fournissez pas un environnement existant, la commande up en recherche un dans votre groupe de ressources et, si elle en trouve un, elle l’utilise. Si elle n’en trouve pas, elle crée un environnement avec un espace de travail Log Analytics.

Pour en savoir plus sur la commande az containerapp up et ses options, consultez az containerapp up.

Prérequis

Condition requise Instructions
Compte Azure Si vous n’en avez pas un, créez un compte gratuitement. Vous avez besoin de l’autorisation Contributeur ou Propriétaire sur l’abonnement Azure pour continuer. Pour plus d’informations, consultez Attribuer des rôles Azure à l’aide du portail Azure.
Compte GitHub Si vous utilisez un dépôt GitHub, inscrivez-vous gratuitement.
Azure CLI Installez Azure CLI.
Code source local Vous devez disposer d’un répertoire de code source local si vous utilisez du code source local.
Image existante Si vous utilisez une image existante, vous avez besoin de votre serveur de registre, de votre nom d’image et de votre balise. Si vous utilisez un registre privé, vous avez besoin de vos informations d’identification.

Configurer

  1. Se connecter à Azure avec Azure CLI.

    az login
    
  2. Ensuite, installez l’extension Azure Container Apps pour l’interface CLI.

    az extension add --name containerapp --upgrade
    
  3. Après avoir installé la version actuelle de l’extension ou du module, inscrivez l’espace de noms Microsoft.App.

    az provider register --namespace Microsoft.App
    
  4. Inscrivez le fournisseur Microsoft.OperationalInsights pour l’espace de travail Log Analytics Azure Monitor.

    az provider register --namespace Microsoft.OperationalInsights
    

Déployer à partir d’une image existante

Vous pouvez déployer une application conteneur qui utilise une image existante dans un registre de conteneurs public ou privé. Si vous effectuez un déploiement depuis un registre privé, vous devez fournir vos informations d’identification en utilisant les options --registry-server, --registry-username et --registry-password.

Dans cet exemple, la commande az containerapp up effectue les actions suivantes :

  1. Créer un groupe de ressources.
  2. Elle crée un environnement et un espace de travail Log Analytics.
  3. Elle crée et déploie une application conteneur qui tire l’image d’un registre public.
  4. Elle définit l’entrée de l’application conteneur sur une entrée externe avec un port cible défini sur la valeur spécifiée.

Exécutez la commande suivante pour déployer une application conteneur à partir d’une image existante. Remplacez les <ESPACES RÉSERVÉS> par vos valeurs.

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
  --ingress external \
  --target-port <PORT_NUMBER> 

Vous pouvez utiliser la commande up pour redéployer une application conteneur. Si vous voulez redéployer avec une nouvelle image, utilisez l’option --image pour spécifier une nouvelle image. Vérifiez que les options --resource-group et environment sont définies sur les mêmes valeurs que le déploiement d’origine.

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
  --resource-group <RESOURCE_GROUP_NAME> \
  --environment <ENVIRONMENT_NAME> \
  --ingress external \
  --target-port <PORT_NUMBER> 

Déployer à partir d’un code source local

Quand vous utilisez la commande up pour effectuer un déploiement à partir d’une source locale, elle génère l’image conteneur, l’envoie (push) à un registre, puis déploie l’application conteneur. Elle crée le registre dans Azure Container Registry si vous n’en fournissez pas.

La commande peut générer l’image avec ou sans Dockerfile. Si vous générez sans Dockerfile, les langages suivants sont pris en charge :

  • .NET
  • Node.js
  • PHP
  • Python

L’exemple suivant montre comment déployer une application conteneur à partir du code source local.

Dans l’exemple, la commande az containerapp up effectue les actions suivantes :

  1. Créer un groupe de ressources.
  2. Elle crée un environnement et un espace de travail Log Analytics.
  3. Elle crée un registre dans Azure Container Registry.
  4. Elle génère l’image conteneur (à l’aide du Dockerfile s’il existe).
  5. Elle envoie (push) l’image au registre.
  6. Elle crée et déploie l’application conteneur.

Exécutez la commande suivante pour déployer une application conteneur à partir d’un code source local :

    az containerapp up \
      --name <CONTAINER_APP_NAME> \
      --source <SOURCE_DIRECTORY>\
      --ingress external 

Quand le Dockerfile inclut l’instruction EXPOSE, la commande up configure l’entrée et le port cible de l’application conteneur à l’aide des informations contenues dans le Dockerfile.

Si vous configurez l’entrée au moyen de votre Dockerfile, ou si votre application ne nécessite aucune entrée, vous pouvez omettre l’option ingress.

La sortie de la commande inclut l’URL de l’application conteneur.

En cas d’échec, vous pouvez réexécuter la commande avec l’option --debug pour obtenir plus d’informations sur l’échec. Si la build échoue sans Dockerfile, vous pouvez essayer d’ajouter un Dockerfile et de réexécuter la commande.

Pour utiliser la commande az containerapp up afin de redéployer votre application conteneur avec une image mise à jour, incluez les arguments --resource-group et --environment. L’exemple suivant montre comment redéployer une application conteneur à partir du code source local.

  1. Apportez des modifications au code source.

  2. Exécutez la commande suivante :

    az containerapp up \
      --name <CONTAINER_APP_NAME> \
      --source <SOURCE_DIRECTORY> \
      --resource-group <RESOURCE_GROUP_NAME> \
      --environment <ENVIRONMENT_NAME>
    

Déployer à partir d’un dépôt GitHub

Quand vous utilisez la commande az containerapp up pour effectuer un déploiement à partir d’un dépôt GitHub, elle génère un workflow GitHub Actions qui génère l’image conteneur, l’envoie (push) à un registre, puis déploie l’application conteneur. La commande crée le registre dans Azure Container Registry si vous n’en fournissez pas.

Un Dockerfile est nécessaire pour générer l’image. Quand le Dockerfile inclut l’instruction EXPOSE, la commande configure l’entrée et le port cible de l’application conteneur à l’aide des informations contenues dans le Dockerfile.

L’exemple suivant montre comment déployer une application conteneur à partir d’un dépôt GitHub.

Dans l’exemple, la commande az containerapp up effectue les actions suivantes :

  1. Créer un groupe de ressources.
  2. Elle crée un environnement et un espace de travail Log Analytics.
  3. Elle crée un registre dans Azure Container Registry.
  4. Elle génère l’image conteneur à l’aide du Dockerfile.
  5. Elle envoie (push) l’image au registre.
  6. Elle crée et déploie l’application conteneur.
  7. Elle crée un workflow GitHub Actions pour générer l’image conteneur et déployer l’application conteneur quand des modifications ultérieures sont envoyées (push) au dépôt GitHub.

Pour déployer une application à partir d’un dépôt GitHub, exécutez la commande suivante :

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --repo <GitHub repository URL> \
  --ingress external 

Si vous configurez l’entrée au moyen de votre Dockerfile, ou si votre application ne nécessite aucune entrée, vous pouvez omettre l’option ingress.

La commande up créant un flux de travail GitHub Actions, la réexécuter pour déployer les modifications apportées à l’image de votre application a pour effet de créer plusieurs flux de travail, ce qui n’est pas souhaitable. Envoyez (push) plutôt les modifications à votre référentiel GitHub pour que le flux de travail GitHub génère et déploie automatiquement votre application. Pour modifier le workflow, modifiez le fichier de workflow dans GitHub.

Étapes suivantes