Partager via


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

La az containerapp up commande (ou up) est le moyen le plus rapide de déployer une application dans Azure Container Apps à partir d’une image existante, d’un code source local ou d’un dépôt GitHub. Lorsque vous utilisez cette seule commande, vous pouvez configurer votre application conteneur en quelques minutes.

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

Cet article explique comment utiliser la commande pour déployer une application conteneur à partir d’une image existante, d’un code source local et d’un dépôt GitHub.

Prérequis

Condition requise Instructions
Compte Azure Si vous n’en avez pas un, créez un compte gratuitement. Votre abonnement Azure doit avoir le rôle Contributeur ou Propriétaire . Pour plus d’informations, consultez Affecter des rôles Azure à l’aide du portail Azure.
L'interface CLI de Azure Installez Azure CLI.
Un compte GitHub Si vous souhaitez utiliser une image dans un dépôt GitHub, inscrivez-vous à un compte GitHub gratuit.
Code source local Si vous souhaitez créer une image à partir du code source local, placez votre code dans un répertoire local.
Image existante Si vous souhaitez utiliser une image existante, notez votre serveur de Registre, votre nom d’image et votre balise. Si vous utilisez un registre privé, notez également vos informations d’identification.

Utiliser des ressources existantes

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

  • Un groupe de ressources.
  • Registre de conteneurs.
  • Un environnement Container Apps et un espace de travail Log Analytics.
  • Votre application conteneur.

Si vous devez personnaliser l’environnement Container Apps, utilisez d’abord la az containerapp env create commande pour créer et personnaliser votre environnement. Lorsque vous exécutez ensuite la up commande, utilisez l’option --environment pour spécifier l’environnement personnalisé.

Si vous ne spécifiez pas d’environnement existant, la up commande recherche un environnement dans votre groupe de ressources. Si la commande trouve un environnement, elle utilise cet environnement. Si la commande ne trouve pas d’environnement, elle en crée un qui inclut un espace de travail Log Analytics.

Pour plus d’informations sur la az containerapp up commande et ses options, consultez az containerapp up.

Configurer votre environnement Azure CLI

  1. Utilisez Azure CLI pour vous connecter à Azure.

    az login
    
  2. Installez l’extension Container Apps pour Azure CLI.

    az extension add --name containerapp --upgrade
    
  3. Inscrivez l’espace Microsoft.App de noms.

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

    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 déployez à partir d’un registre privé, vous devez fournir vos identifiants en utilisant les options --registry-server, --registry-username et --registry-password.

Vous pouvez utiliser l’exemple de code suivant pour déployer une application conteneur à partir d’une image existante. Avant d’exécuter la commande, remplacez les espaces réservés, qui sont placés entre crochets, par vos valeurs.

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

Cette commande 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. Définit la valeur ingress de l’application conteneur sur external avec un port cible défini sur la valeur spécifiée.

Vous pouvez également utiliser la up commande 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 valeurs du 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. Si vous ne spécifiez pas de registre, la commande en crée une dans Container Registry.

La commande peut générer l’image avec ou sans Dockerfile. Dans les builds qui n’utilisent pas de fichier Dockerfile, les langages suivants sont pris en charge :

  • .NET
  • Node.js
  • PHP
  • Python

Vous pouvez utiliser l’exemple de code suivant pour déployer une application conteneur à partir du code source local :

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

Cette commande 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. Crée un registre dans Container Registry.
  4. Génère l’image conteneur (à l’aide du fichier Dockerfile s’il existe).
  5. Elle envoie (push) l’image au registre.
  6. Elle crée et déploie l’application conteneur.

Lorsque le fichier Dockerfile inclut l’instruction EXPOSE , la up commande configure l’entrée et le port cible de l’application conteneur à l’aide des informations contenues dans le fichier Dockerfile. Si vous configurez l’entrée via votre Dockerfile ou si votre application ne nécessite pas d’ingress, vous pouvez omettre l’option --ingress.

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

Si la commande signale qu’elle attend l’agent de build cloud, mais cesse de répondre, une erreur temporaire GitHub peut être la source du problème. Pour résoudre la situation, réexécutez la commande.

En cas d’échec, vous pouvez réexécuter la commande avec l’option --debug permettant d’obtenir plus d’informations. 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 options --resource-group et --environment. Pour redéployer une application conteneur à partir du code source local, procédez comme suit :

  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. Si vous ne spécifiez pas de registre, la commande en crée une dans Container Registry.

Un Dockerfile est nécessaire pour générer l’image. Lorsque le fichier 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 fichier Dockerfile.

Vous pouvez utiliser l’exemple de code suivant pour déployer une application conteneur à partir d’un dépôt GitHub :

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --repo <GITHUB_REPOSITORY_URL> \
  --ingress external 

Cette commande 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. Crée un registre dans Container Registry.
  4. Génère l’image conteneur à l’aide du fichier 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.

Si la commande échoue, car un principal de service ne peut pas être créé, vous pouvez créer manuellement un principal de service dans Azure. Vous pouvez ensuite transmettre des informations sur celle-ci à la commande :

az containerapp up \
  --name <CONTAINER_APP_NAME> \
  --repo <GITHUB_REPOSITORY_URL> \
  --service-principal-client-id "$SERVICE_PRINCIPAL_CLIENT_ID" \
  --service-principal-client-secret "$SERVICE_PRINCIPAL_CLIENT_SECRET" \
  --service-principal-tenant-id "$AZURE_TENANT_ID"
  --ingress external 

Si vous configurez l’entrée via votre Dockerfile ou si votre application ne nécessite pas d’ingress, vous pouvez omettre l’option --ingress.

La up commande crée un flux de travail GitHub Actions. Par conséquent, la réexécution de la commande a l’effet indésirable de la création de plusieurs flux de travail. Si vous souhaitez déployer des modifications sur l’image de votre application, envoyez des modifications à votre dépôt GitHub au lieu de réexécuter la commande. Le flux de travail GitHub détecte automatiquement les modifications dans votre référentiel, puis génère et déploie votre application. Pour modifier le workflow, modifiez le fichier de workflow dans GitHub.

Configurer les paramètres de l’application conteneur

La az containerapp up commande offre un moyen simplifié de créer et de déployer des applications conteneur qui utilisent principalement les paramètres par défaut. Toutefois, après avoir utilisé la up commande, vous devez exécuter d’autres commandes Azure CLI telles que les commandes suivantes si vous souhaitez configurer des paramètres plus avancés :

Si vous souhaitez personnaliser d’autres paramètres pour votre application conteneur, tels que les paramètres de ressource ou de mise à l’échelle, utilisez d’abord la up commande pour déployer votre application conteneur. Utilisez ensuite la az containerapp update commande pour modifier ces paramètres. La az containerapp up commande n’est pas une abréviation de la az containerapp update commande.

Étape suivante