Partager via


Tutoriel : créer et déployer votre application vers Azure Container Apps

Cet article explique comment générer et déployer un micro-service dans Azure Container Apps à partir d’un référentiel source à l’aide votre langage de programmation préféré.

Il s’agit du premier tutoriel d’une série d’articles qui décrivent l’utilisation des fonctionnalités principales dans Azure Container Apps. La première étape consiste à créer un service d’API web back-end qui retourne une collection statique d’albums de musique.

Notes

Vous pouvez également générer et déployer cette application à l’aide de l’article az containerapp up en suivant les instructions de l’article Démarrage rapide : créer et déployer une application sur Azure Container Apps à partir d’un référentiel. La commande az containerapp up est un moyen rapide et pratique de créer, puis de déployer votre application vers Azure Container Apps à l’aide d’une seule commande. Toutefois, elle n’offre pas le même niveau de personnalisation pour votre application conteneur.

Le tutoriel suivant de la série génère et déploie l’application web front-end dans Azure Container Apps.

La capture d’écran suivante montre la sortie de l’API album déployée dans ce tutoriel.

Capture d’écran de la réponse du point de terminaison de l’API albums.

Prérequis

Pour mener à bien ce projet, vous avez besoin des éléments suivants :

Condition requise Instructions
Compte Azure Si vous n’en avez pas un, créez un compte gratuitement. Vous avez besoin de l’autorisation Administrateur de l’accès utilisateur ou Propriétaire sur l’abonnement Azure pour continuer. Veillez à utiliser le rôle le plus restrictif pour votre contexte.

Pour plus d’informations, consultez Attribuer des rôles Azure à l’aide du Portail Azure et Rôles Azure, rôles Microsoft Entra et rôles d’administrateur d’abonnement classique.
Compte GitHub Inscrivez-vous gratuitement.
git Installez Git
Azure CLI Installez Azure CLI.
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 Inscrivez-vous gratuitement.
git Installez Git
Azure CLI Installez Azure CLI.
Docker Desktop Docker fournit des programmes d’installation qui configurent l’environnement Docker sur macOS, Windows et Linux.

À partir de votre invite de commandes, tapez docker pour vérifier que Docker est exécuté.

Programme d’installation

Pour vous connecter à Azure à partir de l’interface CLI, exécutez la commande suivante et suivez les invites pour procéder à l’authentification.

az login

Pour être sûr d’utiliser la dernière version de l’interface CLI, exécutez la commande de mise à niveau.

az upgrade

Ensuite, installez ou mettez à jour l’extension Azure Container Apps pour l’interface CLI.

Si vous recevez des erreurs concernant des paramètres manquants lorsque vous exécutez des commandes az containerapp dans Azure CLI ou les cmdlets du module Az.App dans Azure PowerShell, assurez-vous que la dernière version de l’extension Azure Container Apps est installée.

az extension add --name containerapp --upgrade

Remarque

À compter de mai 2024, les extensions Azure CLI n’activent plus les fonctionnalités en préversion par défaut. Pour accéder aux fonctionnalités en préversion de Container Apps, installez l’extension Container Apps avec --allow-preview true.

az extension add --name containerapp --upgrade --allow-preview true

Maintenant que la version actuelle de l’extension ou du module est installée, inscrivez les espaces de noms Microsoft.App et Microsoft.OperationalInsights.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Créer des variables d’environnement

À présent que votre configuration Azure CLI est terminée, vous pouvez définir les variables d’environnement utilisées dans cet article.

Définissez les variables suivantes dans votre interpréteur de commandes Bash.

RESOURCE_GROUP="album-containerapps"
LOCATION="canadacentral"
ENVIRONMENT="env-album-containerapps"
API_NAME="album-api"
FRONTEND_NAME="album-ui"
GITHUB_USERNAME="<YOUR_GITHUB_USERNAME>"

Avant d’exécuter cette commande, veillez à remplacer <YOUR_GITHUB_USERNAME> par votre nom d’utilisateur GitHub.

Définissez ensuite un nom de registre de conteneurs qui vous est propre.

ACR_NAME="acaalbums"$GITHUB_USERNAME

Préparer le référentiel GitHub

Accédez au référentiel de votre langage préféré et dupliquez-le.

Sélectionnez le bouton Dupliquer (fork) en haut du référentiel de l’API album pour dupliquer le référentiel dans votre compte.

Vous pouvez maintenant cloner votre duplication de l’exemple de référentiel.

Utilisez la commande git suivante pour cloner votre référentiel dupliqué dans le dossier code-to-cloud :

git clone https://github.com/$GITHUB_USERNAME/containerapps-albumapi-csharp.git code-to-cloud

Ensuite, remplacez le répertoire dans la racine du référentiel cloné.

cd code-to-cloud/src

Création d’un groupe de ressources Azure

Créez un groupe de ressources pour organiser les services liés au déploiement de votre application de conteneur.

az group create \
  --name $RESOURCE_GROUP \
  --location "$LOCATION"

Création d’un Azure Container Registry

  1. Une fois l’API album image conteneur créée, créez ensuite une instance Azure Container Registry (ACR) dans votre groupe de ressources pour la stocker.

    az acr create \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION \
        --name $ACR_NAME \
        --sku Basic
    
  2. Votre registre de conteneurs doit autoriser les jetons d’audience Azure Resource Manager (ARM) pour l’authentification afin de pouvoir utiliser l’identité managée pour tirer (pull) des images.

    Utilisez la commande suivante pour vérifier si les jetons ARM sont autorisés à accéder à votre instance Azure Container Registry (ACR).

    az acr config authentication-as-arm show --registry "$ACR_NAME"
    

    Si les jetons ARM sont autorisés, la commande produit la sortie suivante.

    {
      "status": "enabled"
    }
    

    Si le status est disabled, autorisez les jetons ARM avec la commande suivante.

    az acr config authentication-as-arm update --registry "$ACR_NAME" --status enabled
    

Créer une identité managée attribuée par l’utilisateur

Pour éviter d’utiliser des informations d’identification d’administration, tirez (pull) des images depuis des référentiels privés dans Microsoft Azure Container Registry en utilisant des identités managées pour l’authentification. Si possible, utilisez une identité managée affectée par l’utilisateur pour tirer (pull) des images.

  1. Créer une identité managée attribuée par l’utilisateur. Avant d’exécuter les commandes suivantes, choisissez un nom pour votre identité managée, puis remplacez le \<PLACEHOLDER\> par ce nom.

    IDENTITY="<YOUR_IDENTITY_NAME>"
    
    az identity create \
        --name $IDENTITY \
        --resource-group $RESOURCE_GROUP
    
  2. Obtenez l’ID de ressource de l’identité.

    IDENTITY_ID=$(az identity show \
        --name $IDENTITY \
        --resource-group $RESOURCE_GROUP \
        --query id \
        --output tsv)
    

Générer votre application

Avec les ACR Tasks, vous pouvez générer et envoyer (push) l’image Docker pour l’API album sans installer Docker localement.

Générer le conteneur avec ACR

Exécutez la commande suivante pour lancer le processus de génération d’image et d’envoi (push) à l’aide d’ACR. Le . à la fin de la commande représente le contexte de build Docker, ce qui signifie que cette commande doit être exécutée dans le dossier src où se trouve le fichier Dockerfile.

az acr build --registry $ACR_NAME --image $API_NAME .

La sortie de la commande az acr build affiche la progression du chargement du code source dans Azure et les détails des opérations docker build et docker push.

Générer votre application

Les étapes suivantes montrent comment générer votre image conteneur localement à l’aide de Docker et envoyer (push) l’image au nouveau registre de conteneurs.

Générer le conteneur avec Docker

La commande suivante génère une image conteneur pour l’API album et l’étiquette avec le nom complet du serveur de connexion ACR. Le . à la fin de la commande représente le contexte de build Docker, ce qui signifie que cette commande doit être exécutée dans le dossier src où se trouve le fichier Dockerfile.

docker build --tag $ACR_NAME.azurecr.io/$API_NAME .

Envoyer (push) l’image à votre registre de conteneurs

Commencez par vous connecter à votre registre de conteneurs Azure Container Registry.

az acr login --name $ACR_NAME

Envoyez (push) à présent l’image dans votre registre.

docker push $ACR_NAME.azurecr.io/$API_NAME

Créer un environnement Container Apps

L’environnement Azure Container Apps agit comme une limite sécurisée autour d’un groupe d’applications de conteneur.

Créez l’environnement Container Apps à l’aide de la commande suivante.

az containerapp env create \
  --name $ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION"

Déployer votre image sur une application de conteneur

À présent que vous avez créé un environnement, vous pouvez créer et déployer votre application de conteneur à l’aide de la commande az containerapp create.

Créez et déployez votre application de conteneur à l’aide de la commande suivante.

az containerapp create \
  --name $API_NAME \
  --resource-group $RESOURCE_GROUP \
  --environment $ENVIRONMENT \
  --image $ACR_NAME.azurecr.io/$API_NAME \
  --target-port 8080 \
  --ingress external \
  --registry-server $ACR_NAME.azurecr.io \
  --user-assigned "$IDENTITY_ID" \
  --registry-identity "$IDENTITY_ID" \
  --query properties.configuration.ingress.fqdn
  • En définissant --ingress sur external, votre application de conteneur est accessible à partir de l’Internet public.

  • Le target-port est défini sur 8080 pour correspondre au port sur lequel le conteneur écoute les demandes.

  • Sans propriété query, l’appel à az containerapp create renvoie une réponse JSON qui inclut un ensemble riche de détails sur l’application. L’ajout d’un paramètre de requête filtre la sortie sur le nom de domaine complet (FQDN) uniquement de l’application.

  • Cette commande ajoute le rôle acrPull à votre identité managée affectée par l’utilisateur afin qu’elle puisse extraire des images de votre registre de conteneurs.

Vérifier le déploiement

Copiez le nom de domaine complet dans un navigateur web. À partir de votre navigateur web, accédez au point de terminaison /albums du nom de domaine complet.

Capture d’écran de la réponse du point de terminaison de l’API albums.

Nettoyer les ressources

Si vous n’allez pas poursuivre avec le tutoriel Communication entre les microservices, vous pouvez supprimer les ressources Azure créées lors de ce guide de démarrage rapide. Exécutez la commande suivante pour supprimer le groupe de ressources ainsi que toutes les ressources créées dans ce tutoriel.

az group delete --name $RESOURCE_GROUP

Conseil

Vous rencontrez des problèmes ? Faites-le nous savoir sur GitHub en ouvrant un problème dans le dépôt Azure Container Apps.

Étapes suivantes

Ce guide de démarrage rapide est le point d’entrée d’un ensemble de tutoriels progressifs qui présentent les différentes fonctionnalités dans Azure Container Apps. Poursuivez pour découvrir comment activer la communication à partir d’un serveur web frontal qui appelle l’API que vous avez déployée dans cet article.