Partager via


Déployer un projet .NET Aspire sur Azure Container Apps

.NET .NET Aspire projets sont conçus pour s’exécuter dans des environnements conteneurisés. Azure Container Apps est un environnement entièrement managé qui vous permet d’exécuter des microservices et des applications conteneurisées sur une plateforme serverless. Cet article vous explique comment créer une solution .NET Aspire et la déployer sur Microsoft Azure Container Apps à l’aide du Azure Developer CLI (azd). Vous allez apprendre à effectuer les tâches suivantes :

  • Provisionner un groupe de ressources Azure et un registre de conteneurs
  • Publier les projets .NET Aspire en tant qu’images conteneur dans Azure Container Registry
  • Approvisionner un conteneur Redis dans Azure
  • Déployer les applications dans un environnement Azure Container Apps
  • Afficher les journaux de la console d’application pour résoudre les problèmes d’application

Conditions préalables

Pour utiliser .NET.NET Aspire, vous avez besoin de l’installation locale suivante :

Pour plus d’informations, consultez la configuration et les outils de .NET.NET Aspire, et le SDK .NET.NET Aspire.

En guise d’alternative à ce didacticiel et pour obtenir un guide plus détaillé, consultez Déployer un projet .NET Aspire pour Azure Container Apps à l’aide de azd (guide détaillé).

Déployer des projets .NET.NET Aspire avec azd

Avec .NET Aspire et Azure Container Apps (ACA), vous disposez d’un excellent scénario d’hébergement pour créer vos applications natives cloud avec .NET. Nous avons créé de nouvelles fonctionnalités intéressantes dans le Azure Developer CLI (azd) spécifiquement conçues pour que le développement et le déploiement de .NET Aspire vers Azure deviennent une expérience sans friction. Vous pouvez toujours utiliser les options cli Azure et/ou Bicep quand vous avez besoin d’un niveau de contrôle granulaire sur vos déploiements. Toutefois, pour les nouveaux projets, vous ne trouverez pas de chemin plus facile pour obtenir une nouvelle topologie de microservice déployée dans le cloud.

Créer un projet .NET.NET Aspire

Comme point de départ, cet article part du principe que vous avez créé un projet .NET.NET Aspire à partir du modèle .NET.NET Aspire Application de démarrage. Pour plus d’informations, consultez démarrage rapide : Créer votre premier projet .NET.NET Aspire.

Nommage des ressources

Lorsque vous créez de nouvelles ressources Azure, il est important de respecter les exigences de nommage. Pour Azure Container Apps, le nom doit contenir 2 à 32 caractères et se composer de lettres minuscules, de chiffres et de traits d’union. Le nom doit commencer par une lettre et se terminer par un caractère alphanumérique.

Pour plus d’informations, consultez règles et restrictions d’affectation de noms pour les ressources Azure.

Installer le Azure Developer CLI

Le processus d’installation de azd varie en fonction de votre système d’exploitation, mais il est largement disponible via winget, brew, apt, ou directement via curl. Pour installer azd, consultez Installer Azure Developer CLI.

Initialiser le modèle

  1. Ouvrez une nouvelle fenêtre de terminal et cd dans le répertoire de projet AppHost de votre solution .NET.NET 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 invite à utiliser deux 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
    
  4. Après avoir analysé le répertoire, azd vous invite à confirmer qu'il a trouvé le projet .NET.NET AspireAppHost 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 .NET Aspire projet AppHost, et les mappe aux ressources Azure.
  • .azure/config.json: fichier de configuration qui informe azd quel est l’environnement actif actuel.
  • .azure/aspireazddev/.env: contient des paramètres spécifiques à l’environnement.

Déployer le modèle

  1. Une fois qu’un modèle est initialisé, le processus d’approvisionnement et de déploiement peut être exécuté en tant que commande unique à partir du répertoire de projet AppHost à l’aide de azd up:

    azd up
    
  2. Sélectionnez l’abonnement sur lequel vous souhaitez effectuer le déploiement dans la liste des options disponibles :

    Select an Azure Subscription to use:  [Use arrows to move, type to filter]
      1. SampleSubscription01 (xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx)
      2. SamepleSubscription02 (xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx)
    
  3. Sélectionnez l’emplacement de Azure que vous souhaitez utiliser dans la liste des options disponibles :

    Select an Azure location to use:  [Use arrows to move, type to filter]
      42. (US) Central US (centralus)
      43. (US) East US (eastus)
    > 44. (US) East US 2 (eastus2)
      46. (US) North Central US (northcentralus)
      47. (US) South Central US (southcentralus)
    

Après avoir effectué vos sélections, azd exécute le processus d’approvisionnement et de déploiement.

By default, a service can only be reached from inside the Azure Container Apps environment it is running in. Selecting a service here will also allow it to be reached from the Internet.
? Select which services to expose to the Internet webfrontend
? Select an Azure Subscription to use:  1. <YOUR SUBSCRIPTION>
? Select an Azure location to use: 1. <YOUR LOCATION>

Packaging services (azd package)


Provisioning Azure resources (azd provision)
Provisioning Azure resources can take some time.

Subscription: <YOUR SUBSCRIPTION>
Location: <YOUR LOCATION>

  You can view detailed progress in the Azure Portal:
  <LINK TO DEPLOYMENT>

  (✓) Done: Resource group: <YOUR RESOURCE GROUP>
  (✓) Done: Container Registry: <ID>
  (✓) Done: Log Analytics workspace: <ID>
  (✓) Done: Container Apps Environment: <ID>

SUCCESS: Your application was provisioned in Azure in 1 minute 13 seconds.
You can view the resources created under the resource group <YOUR RESOURCE GROUP> in Azure Portal:
<LINK TO RESOURCE GROUP OVERVIEW>

Deploying services (azd deploy)

  (✓) Done: Deploying service apiservice
  - Endpoint: <YOUR UNIQUE apiservice APP>.azurecontainerapps.io/

  (✓) Done: Deploying service webfrontend
  - Endpoint: <YOUR UNIQUE webfrontend APP>.azurecontainerapps.io/

Aspire Dashboard: <LINK TO DEPLOYED .NET ASPIRE DASHBOARD>

SUCCESS: Your up workflow to provision and deploy to Azure completed in 3 minutes 50 seconds.

La commande azd up agit comme wrapper pour les commandes azd individuelles suivantes pour approvisionner et déployer vos ressources en une seule étape :

  1. azd package: les projets d’application et leurs dépendances sont empaquetés dans des conteneurs.
  2. azd provision: les ressources Azure dont l’application a besoin sont approvisionnées.
  3. azd deploy: les projets sont envoyés en tant que conteneurs dans une instance Azure Container Registry, puis utilisés pour créer de nouvelles révisions de Azure Container Apps dans lesquelles le code sera hébergé.

Une fois les étapes de azd up terminées, votre application sera disponible sur Azure, et vous pouvez ouvrir le portail Azure pour explorer les ressources. azd génère également des URL pour accéder directement aux applications déployées.

Tester l’application déployée

Maintenant que l’application a été configurée et déployée, vous pouvez accéder au portail Azure. Dans le groupe de ressources où vous avez déployé l’application, vous verrez les trois applications conteneur et d’autres ressources.

Une capture d'écran du groupe de ressources du projet .NET Aspire dans le portail Azure.

Cliquez sur l’application conteneur web pour l’ouvrir dans le portail.

Une capture d’écran de l’interface front end du projet .NET Aspire dans le portail Azure.

Cliquez sur le lien URL de l'application pour ouvrir l'interface dans le navigateur.

Une capture d’écran de l'interface utilisateur du projet .NET.NET Aspire dans le navigateur.

Lorsque vous cliquez sur le nœud « Météo » dans la barre de navigation, le serveur frontal web application conteneur effectue un appel à l’application conteneur apiservice pour obtenir des données. La sortie du serveur frontal sera mise en cache avec l’application conteneur redis et l’intégration de la mise en cache de sortie .NET AspireRedis. Lorsque vous actualisez le serveur frontal quelques fois, vous remarquerez que les données météorologiques sont mises en cache. Elle sera mise à jour après quelques secondes.

Déployer le tableau de bord .NET.NET Aspire

Vous pouvez déployer le tableau de bord .NET.NET Aspire dans le cadre de votre application hébergée. Cette fonctionnalité est désormais entièrement prise en charge. Lors du déploiement, les journaux de sortie azd affichent une URL supplémentaire pour le tableau de bord déployé.

Vous pouvez exécuter azd monitor pour lancer automatiquement le tableau de bord.

azd monitor

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.