Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
azdavec 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 :
-
.NET 8.0 ou .NET 9.0.
- Aspire À compter de la version 9.4, .NET la version Preview 5 ou ultérieure est prise en charge.
- Un runtime de conteneur conforme à OCI, tel que :
- Docker Ordinateur de bureau ou Podman. Pour plus d’informations, consultez le runtime de conteneur .
- Un environnement de développement intégré (IDE) ou un éditeur de code, par exemple :
- Visual Studio 2022 version 17.9 ou ultérieure (facultatif)
-
Visual Studio Code (facultatif)
- C# Dev Kit: Extension (facultatif)
- JetBrains Rider avec Aspire plug-in (facultatif)
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 :
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
Ouvrez une nouvelle fenêtre de terminal et
cddans le répertoire de votre solution Aspire.Exécutez la commande
azd initpour initialiser votre projet avecazd, qui inspecte la structure de répertoires local et détermine le type d’application.azd initPour plus d’informations sur la commande
azd init, consultez azd init.Sélectionnez Utiliser du code dans le répertoire actif lorsque
azdvous ê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 projectAprès avoir analysé le répertoire,
azdvous 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 exitEntrez un nom d’environnement, utilisé pour nommer les ressources provisionnée dans Azure et gérer différents environnements tels que
devetprod.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
azdde 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à.
Exécutez la commande
azd pipeline configpour configurer votre pipeline de déploiement et le connecter en toute sécurité à Azure:azd pipeline configSélectionnez l’abonnement dans lequel approvisionner et déployer les ressources de l’application.
Sélectionnez l’emplacement Azure à utiliser pour les ressources.
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.
Sélectionnez Créer un dépôt GitHub privé pour configurer le git distant.
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.
azdcrée un référentiel dans GitHub et le configure avec les secrets nécessaires pour s’authentifier auprès de Azure.
Entrez y pour continuer lorsque
azdvous 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
Accédez à votre nouveau référentiel GitHub en utilisant le lien généré par
azd.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.
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
apiserviceet lewebfrontend. Sélectionnez l’un de ces liens pour les ouvrir dans un autre onglet de navigateur et explorez 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 :
- Recherchez le projet avec la référence de package
Aspire.AppHostdans le fichier.csproj. - Recherchez le répertoire contenant le fichier azure.yaml .
- 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à.
Exécutez la commande
azd pipeline configpour configurer votre pipeline de déploiement et connectez-le en toute sécurité à Azure. Incluez l’option--provider azdopour utiliser Azure pipelines au lieu de la configuration des actions par défaut GitHub.azd pipeline config --provider azdoImportant
Avant d’exécuter
azd pipeline config, vérifiez que vous avez correctement exécutéazd initpour 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.Sélectionnez l’abonnement dans lequel approvisionner et déployer les ressources de l’application.
Sélectionnez l’emplacement Azure à utiliser pour les ressources.
Collez le jeton d’accès personnel que vous avez créé précédemment.
Entrez le Azure nom de l’organisation DevOps que vous avez créé ou sélectionné.
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.
Lorsque vous êtes invité à configurer le dépôt git distant, sélectionnez Créer un projet Azure DevOps.
Entrez un nom unique de votre choix pour le nouveau référentiel, tel que
aspireazd.azdcrée un référentiel dans Azure Repos et le configure avec les secrets nécessaires pour s’authentifier auprès de Azure.Entrez y pour continuer lorsque
azdvous invite à valider et à envoyer (push) vos modifications locales pour démarrer le pipeline configuré.
Explorer le pipeline et l’appli déployée
Accédez à votre nouveau pipeline Azure à l’aide du lien de statut généré par
azd.Sélectionnez l’exécution du pipeline terminée pour en afficher le résumé.
Sélectionnez le lien de travail en bas de la vue pour accéder aux détails du travail.
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.Sélectionnez le lien en bas des journaux de sortie d’approvisionnement pour accéder au nouveau groupe de ressources Azure.
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
azdprécédé derg-.Sélectionnez l’application conteneur webfrontend, qui héberge la partie publique de votre site.
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 :
Option 1 : Exécuter azd init dans votre pipeline (recommandé)
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,devouprod). -
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 :
- Exécutez
azd initlocalement dans votre répertoire de projet. - Ajoutez le fichier généré
azure.yamlà votre référentiel. - Si vous le souhaitez, ajoutez le
.azuredossier à 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
azdattend des Aspire projets. - Vous exécutez les commandes à partir du répertoire approprié (généralement où se trouve votre
.slnfichier). - 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.