Partager via


Tutoriel : Déployer un Aspire projet à l’aide du Azure Developer CLI

Le Azure Developer CLI (azd) vous permet de déployer des projets Aspire à l’aide de GitHub Actions ou Azure pipelines Devops en configurant automatiquement les paramètres d’authentification et d’environnement requis. Cet article vous guide tout au long du processus de création et de déploiement d’un projet Aspire sur Azure Container Apps à l'aide de azd. Vous découvrez les concepts suivants :

  • Découvrez comment fonctionne l'intégration de azd avec les projets Aspire.
  • Créer et configurer un référentiel DevOps GitHub ou Azure pour un projet Aspire à l'aide de azd
  • Surveillez et explorez le workflow GitHub Actions ou les exécutions de pipelines Azure DevOps, ainsi que les déploiements Azure.

Prerequisites

Pour travailler avec Aspire, vous avez besoin des éléments suivants installés localement :

Pour plus d’informations, consultez Aspire configuration et outils, et Aspire SDK.

  • Créer une organisation Azure DevOps ou choisir une organisation existante
  • Créer un jeton d’accès personnel DevOps Azure et l’enregistrer pour une utilisation ultérieure. Configurez le jeton avec les autorisations suivantes :
    • Pools d'agents (lire, gérer).
    • Build (lecture et exécution)
    • Code (complet)
    • Projet et équipe (lecture, écriture et gestion)
    • Release (lecture, écriture, exécution et gestion)
    • Connexions de service (lecture, requête et gestion)

Vous devez également avoir le Azure Developer CLIinstallé localement (version 1.5.1 ou ultérieure). Les options d’installation courantes sont les suivantes :

winget install microsoft.azd

Créer une Aspire solution

Comme point de départ, cet article part du principe que vous avez créé une Aspire solution à partir du Aspire modèle d’application de démarrage . Pour plus d’informations, consultez Démarrage rapide : Créer votre première Aspire application.

Initialiser le modèle

  1. Ouvrez une nouvelle fenêtre de terminal et cd dans le répertoire de votre solution Aspire.

  2. Exécutez la commande azd init pour initialiser votre projet avec azd, qui inspecte la structure de répertoires local et détermine le type d’application.

    azd init
    

    Pour plus d’informations sur la commande azd init, consultez azd init.

  3. Sélectionnez Utiliser du code dans le répertoire actif lorsque azd vous êtes invité à utiliser trois options d’initialisation d’application.

    ? How do you want to initialize your app?  [Use arrows to move, type to filter]
    > Use code in the current directory
      Select a template
      Create a minimal project
    
  4. Après avoir analysé le répertoire, azd vous invite à confirmer qu’il a trouvé le projet Aspire approprié. Sélectionnez l’option Confirmer et continuer à initialiser mon application.

    Detected services:
    
      .NET (Aspire)
      Detected in: D:\source\repos\AspireSample\AspireSample.AppHost\AspireSample.AppHost.csproj
    
    azd will generate the files necessary to host your app on Azure using Azure Container Apps.
    
    ? Select an option  [Use arrows to move, type to filter]
    > Confirm and continue initializing my app
      Cancel and exit
    
  5. Entrez un nom d’environnement, utilisé pour nommer les ressources provisionnée dans Azure et gérer différents environnements tels que dev et prod.

    Generating files to run your app on Azure:
    
      (✓) Done: Generating ./azure.yaml
      (✓) Done: Generating ./next-steps.md
    
    SUCCESS: Your app is ready for the cloud!
    You can provision and deploy your app to Azure by running the azd up command in this directory. For more information on configuring your app, see ./next-steps.md
    

azd génère un certain nombre de fichiers et les place dans le répertoire de travail. Ces fichiers sont les suivants :

  • azure.yaml: décrit les services de l’application, tels que Aspire projet AppHost, et les mappe aux ressources Azure.
  • .azure/config.json: fichier de configuration qui informe azd de quel est l'environnement actif actuel.
  • .azure/aspireazddev/.env: contient des remplacements spécifiques à l’environnement.

Créer le référentiel et le pipeline GitHub

Le Azure Developer CLI vous permet de créer automatiquement des pipelines CI/CD avec les configurations et autorisations appropriées pour approvisionner et déployer des ressources sur Azure. azd pouvez également créer un référentiel GitHub pour votre application s’il n’existe pas déjà.

  1. Exécutez la commande azd pipeline config pour configurer votre pipeline de déploiement et le connecter en toute sécurité à Azure:

    azd pipeline config
    
  2. Sélectionnez l’abonnement dans lequel approvisionner et déployer les ressources de l’application.

  3. Sélectionnez l’emplacement Azure à utiliser pour les ressources.

  4. Lorsqu’on vous demande si vous souhaitez créer un dépôt Git dans le répertoire, entrez y et appuyez sur Entrée.

    Note

    La création d’un référentiel GitHub vous oblige à vous connecter à GitHub. Il existe quelques sélections qui varient en fonction de vos préférences. Après vous être connecté, vous serez invité à créer un nouveau dépôt dans le répertoire actuel.

  5. Sélectionnez Créer un dépôt GitHub privé pour configurer le git distant.

  6. Entrez un nom de votre choix pour le nouveau référentiel GitHub ou appuyez sur Entrée pour utiliser le nom par défaut. azd crée un référentiel dans GitHub et le configure avec les secrets nécessaires pour s’authentifier auprès de Azure.

    une capture d’écran montrant les étapes de configuration du pipeline.

  7. Entrez y pour continuer lorsque azd vous invite à valider et à envoyer (push) vos modifications locales pour démarrer le pipeline configuré.

Explorer le flux de travail et le déploiement des actions GitHub

  1. Accédez à votre nouveau référentiel GitHub en utilisant le lien généré par azd.

  2. Sélectionnez l’onglet Actions pour afficher les flux de travail du référentiel. Vous devez voir le nouveau flux de travail en cours d’exécution ou déjà terminé. Sélectionnez le workflow pour afficher les étapes du travail et les détails dans les journaux de l’exécution. Par exemple, vous pouvez développer des étapes telles que Déployer une application pour afficher les détails de l’action terminée.

    Une capture d'écran montrant les étapes du flux de travail de l'action GitHub.

  3. Sélectionnez Déployer l’application pour développer les journaux d’activité de cette étape. Vous devriez voir deux URLs d'endpoint imprimées pour le apiservice et le webfrontend. Sélectionnez l’un de ces liens pour les ouvrir dans un autre onglet de navigateur et explorez l’application déployée.

    Une capture d’écran montrant les liens de l’application déployée.

Félicitations! Vous avez déployé un projet Aspire à l’aide des Azure Developer CLI et des GitHub Actions.

Configurer le répertoire de travail pour les solutions multi-projets

Lorsque vous ajoutez GitHub des actions à une solution multi-projet Aspire existante où le projet AppHost n’est pas dans le répertoire racine, vous devrez peut-être configurer le working-directory paramètre pour certaines étapes de flux de travail. Cette section explique quand et comment effectuer ces ajustements.

Lorsque la configuration du répertoire de travail est nécessaire

La azd pipeline config commande génère un GitHub flux de travail Actions qui suppose que votre Aspire projet AppHost se trouve dans le répertoire racine de votre référentiel. Toutefois, dans de nombreux scénarios réels, en particulier lors de l’ajout Aspire d’applications existantes, le projet AppHost peut se trouver dans un sous-répertoire.

Par exemple, si votre structure de référentiel ressemble à ceci :

└───📂 MyAspireApp
    ├───📂 MyAspireApp.ApiService
    ├───📂 MyAspireApp.AppHost
    │    ├─── MyAspireApp.AppHost.csproj
    │    └─── AppHost.cs
    ├───📂 MyAspireApp.Web
    └─── MyAspireApp.sln

Les étapes de flux de travail générées pour provisionner l’infrastructure et déployer l’application doivent s’exécuter à partir du MyAspireApp.AppHost répertoire, et non à partir de la racine du référentiel.

Mise à jour du flux de travail GitHub Actions

Après l’exécution azd pipeline config, examinez le fichier de flux de travail généré dans .github/workflows/azure-dev.yml. Recherchez les étapes qui exécutent des commandes azd et ajoutez le paramètre working-directory si nécessaire.

Voici un exemple des étapes initialement générées :

- name: Provision Infrastructure
  run: azd provision --no-prompt
  env:
    AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
    AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
    AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}

- name: Deploy Application
  run: azd deploy --no-prompt
  env:
    AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
    AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
    AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}

Mettez à jour ces étapes pour inclure le working-directory paramètre :

- name: Provision Infrastructure
  run: azd provision --no-prompt
  working-directory: ./MyAspireApp.AppHost
  env:
    AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
    AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
    AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}

- name: Deploy Application
  run: azd deploy --no-prompt
  working-directory: ./MyAspireApp.AppHost
  env:
    AZURE_ENV_NAME: ${{ vars.AZURE_ENV_NAME }}
    AZURE_LOCATION: ${{ vars.AZURE_LOCATION }}
    AZURE_SUBSCRIPTION_ID: ${{ vars.AZURE_SUBSCRIPTION_ID }}

Recherche du répertoire de travail correct

Le répertoire de travail doit pointer vers le dossier contenant votre Aspire projet AppHost (le projet qui contient le fichier azure.yaml généré par azd init). Vous pouvez identifier ce répertoire en procédant comme suit :

  1. Recherchez le projet avec la référence de package Aspire.AppHost dans le fichier .csproj.
  2. Recherchez le répertoire contenant le fichier azure.yaml .
  3. Recherchez le projet référencé dans votre solution qui orchestre d’autres services.

Note

Certaines azd commandes, telles que azd init lors de l’installation du pipeline, peuvent également avoir besoin du working-directory paramètre s’ils ne s’exécutent pas à partir du répertoire du projet AppHost.

Créer le dépôt DevOps Azure et le pipeline

Important

Comme indiqué dans les conditions préalables, vous devez créer une organisation Azure DevOps ou sélectionner une organisation existante pour effectuer les étapes à suivre. Vous devez également créer un jeton d’accès personnel (PAT) avec les autorisations répertoriées dans les prérequis.

Le Azure Developer CLI vous permet de créer automatiquement des pipelines avec les configurations et autorisations appropriées pour approvisionner et déployer des ressources sur Azure. azd pouvez également créer un référentiel Azure Pipelines pour votre application s’il n’existe pas déjà.

  1. Exécutez la commande azd pipeline config pour configurer votre pipeline de déploiement et connectez-le en toute sécurité à Azure. Incluez l’option --provider azdo pour utiliser Azure pipelines au lieu de la configuration des actions par défaut GitHub.

    azd pipeline config --provider azdo
    

    Important

    Avant d’exécuter azd pipeline config, vérifiez que vous avez correctement exécuté azd init pour initialiser votre projet. Si vous rencontrez des erreurs telles que « aucun projet n’existe » pendant l’exécution du pipeline, consultez la section résolution des problèmes pour les solutions.

  2. Sélectionnez l’abonnement dans lequel approvisionner et déployer les ressources de l’application.

  3. Sélectionnez l’emplacement Azure à utiliser pour les ressources.

  4. Collez le jeton d’accès personnel que vous avez créé précédemment.

  5. Entrez le Azure nom de l’organisation DevOps que vous avez créé ou sélectionné.

  6. Lorsqu’on vous demande si vous souhaitez créer un dépôt dans le répertoire actuel, entrez y et appuyez sur Entrée.

  7. Lorsque vous êtes invité à configurer le dépôt git distant, sélectionnez Créer un projet Azure DevOps.

  8. Entrez un nom unique de votre choix pour le nouveau référentiel, tel que aspireazd. azd crée un référentiel dans Azure Repos et le configure avec les secrets nécessaires pour s’authentifier auprès de Azure.

    Une capture d’écran montrant les étapes de configuration du pipeline

  9. Entrez y pour continuer lorsque azd vous invite à valider et à envoyer (push) vos modifications locales pour démarrer le pipeline configuré.

Explorer le pipeline et l’appli déployée

  1. Accédez à votre nouveau pipeline Azure à l’aide du lien de statut généré par azd.

    Capture d’écran montrant l’exécution réussie des pipelines Azure.

  2. Sélectionnez l’exécution du pipeline terminée pour en afficher le résumé.

    Capture d’écran montrant le vue récapitulative de l’exécution des pipelines Azure.

  3. Sélectionnez le lien de travail en bas de la vue pour accéder aux détails du travail.

    Capture d’écran montrant le vue détaillée de l’exécution des pipelines Azure.

  4. La page détails du travail affiche l’état de toutes les étapes individuelles. Sélectionnez Provisionner l’infrastructure pour afficher les journaux d’activité de cette étape, qui détaillent toutes les étapes d’approvisionnement effectuées par azd. En bas des logs, prenez note du message d'état final et du lien vers le groupe de ressources fourni Azure.

  5. Sélectionnez le lien en bas des journaux de sortie d’approvisionnement pour accéder au nouveau groupe de ressources Azure.

    Capture d’écran A montrant les ressources de Azure déployées.

    Note

    Vous pouvez également accéder directement à votre nouveau groupe de ressources en le recherchant dans le portail Azure. Le nom de votre groupe de ressources est le nom d’environnement que vous avez fourni pour azd précédé de rg-.

  6. Sélectionnez l’application conteneur webfrontend, qui héberge la partie publique de votre site.

  7. Sur la page de détails du webfrontend , sélectionnez le lien URL de l'application pour ouvrir votre site dans le navigateur.

Important

Si vous rencontrez une erreur 403 Forbidden lors de l’affichage de votre site dans le navigateur, vérifiez que les paramètres d’entrée sont configurés correctement. Sur la page de l’application webfrontend du portail Azure, accédez à Entrée dans la navigation à gauche. Assurez-vous que le trafic entrant est défini sur Accepter le trafic de n’importe où et enregistrez vos modifications.

Félicitations! Vous avez déployé avec succès un projet Aspire à l'aide des pipelines Azure Developer CLI et Azure.

Résoudre les problèmes de déploiement de pipeline Azure DevOps

Cette section traite des problèmes courants que vous pouvez rencontrer lors du déploiement de Aspire projets à l’aide Azure de pipelines DevOps.

ERREUR : aucun projet n’existe ; pour créer un projet, exécutez azd init

Problème : pendant l’étape d’approvisionnement de votre Azure pipeline DevOps, vous rencontrez le message d’erreur :

ERROR: no project exists; to create a new project, run azd init

Cause : cette erreur se produit car la azd init commande génère des fichiers (azure.yaml et le .azure dossier) qui ne sont généralement pas validés dans votre référentiel. Lorsque le pipeline s’exécute dans un environnement propre, ces fichiers n’existent pas, ce qui provoque l’échec des azd commandes.

Solution : il existe plusieurs approches pour résoudre ce problème :

Ajoutez une azd init étape à votre Azure pipeline DevOps avant l’étape d’approvisionnement. Vous pouvez utiliser les indicateurs --from-code et --no-prompt pour exécuter la commande de manière non interactive :

- task: AzureCLI@2
  displayName: 'Initialize Azure Developer CLI'
  inputs:
    azureSubscription: '$(AZURE_SERVICE_CONNECTION)'
    scriptType: 'bash'
    scriptLocation: 'inlineScript'
    inlineScript: |
      azd init --from-code --no-prompt
      azd env new $(AZURE_ENV_NAME) --location $(AZURE_LOCATION) --subscription $(AZURE_SUBSCRIPTION_ID)

Note

Si vous rencontrez des invites même avec --no-prompt, essayez d’exécuter azd init et azd env new en tant qu’étapes distinctes, ou utilisez des variables d’environnement pour fournir des réponses à toutes les invites. L’indicateur --from-code indique à azd d’utiliser le code existant dans le répertoire actif plutôt que de créer un projet à partir d’un modèle.

Veillez à définir les variables suivantes dans votre pipeline :

  • AZURE_ENV_NAME: nom de votre environnement (par exemple, dev ou prod).
  • AZURE_LOCATION: Votre Azure région (par exemple, eastus2).
  • AZURE_SUBSCRIPTION_ID: VOTRE Azure ID d’abonnement.

Option 2 : Effectuer la validation des fichiers requis dans votre référentiel

Si vous préférez valider les fichiers générés dans votre référentiel :

  1. Exécutez azd init localement dans votre répertoire de projet.
  2. Ajoutez le fichier généré azure.yaml à votre référentiel.
  3. Si vous le souhaitez, ajoutez le .azure dossier à votre référentiel si vous souhaitez conserver des paramètres spécifiques à l’environnement.

Note

Le .azure dossier contient une configuration spécifique à l’environnement qui peut inclure des informations sensibles. Passez en revue attentivement le contenu avant de valider quoi que ce soit dans votre dépôt.

Option 3 : Utiliser la configuration du pipeline azd avec une initialisation appropriée

Assurez-vous d'exécuter azd pipeline config --provider azdo après avoir exécuté azd init avec succès localement. Cette commande doit configurer le pipeline avec la configuration correcte qui gère automatiquement l’initialisation.

Si vous continuez à rencontrer des problèmes, vérifiez que :

  • Votre structure de projet correspond à ce qui azd attend des Aspire projets.
  • Vous exécutez les commandes à partir du répertoire approprié (généralement où se trouve votre .sln fichier).
  • Votre Azure connexion de service DevOps dispose des autorisations nécessaires pour l’approvisionnement des ressources.

Nettoyer les ressources

Exécutez la commande CLI Azure suivante pour supprimer le groupe de ressources lorsque vous n’avez plus besoin des ressources Azure que vous avez créées. La suppression du groupe de ressources supprime également les ressources contenues à l’intérieur de celui-ci.

az group delete --name <your-resource-group-name>

Pour plus d’informations, consultez Nettoyer les ressources dans Azure.