Partager via


Déployer un Aspire projet sur Azure Container Apps

Aspire les 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 guide tout au long de la création d’une Aspire solution et de son déploiement sur Microsoft Azure Container Apps à l’aide du Azure Developer CLI (azd). Vous allez apprendre à effectuer les tâches suivantes :

  • Provisionner un Azure groupe de ressources et un registre de conteneurs
  • Publier les projets Aspire sous forme d’images conteneurs dans le registre de conteneurs Azure
  • Provisionner un Redis conteneur dans Azure
  • Déployer les applications dans un Azure Container Apps environnement
  • Afficher les journaux de la console d’application pour résoudre les problèmes d’application

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.

Comme alternative à ce didacticiel et pour un guide plus détaillé, consultez Déployer un Aspire projet à Azure Container Apps par azd (guide détaillé).

Déployer des Aspire projets avec azd

Avec 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 la Azure Developer CLI (azd) spécifiques pour rendre le développement Aspire et le déploiement Azure une expérience transparente. Pour les scénarios de production nécessitant un contrôle granulaire sur l’infrastructure, consultez Personnaliser AspireAzure les 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 Aspire projet

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

Nommage des ressources

Lorsque vous créez de nouvelles ressources Azure, il est important de respecter les exigences de nommage. Pour Azure Container Appscela, le nom doit comporter 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 Azure ressources.

Installer le Azure Developer CLI

Le processus d’installation azd varie en fonction de votre système d’exploitation, mais il est largement disponible via winget, brew, aptou 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 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.

Déployer le modèle

  1. Une fois qu’un azd 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 du projet AppHost à l’aide d’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. SampleSubscription02 (xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx)
    
  3. Sélectionnez l’emplacement souhaité Azure à 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 Aspire DASHBOARD>

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

La azd up commande agit comme wrapper pour les commandes individuelles azd suivantes pour provisionner 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 Azure ressources dont l’application a besoin sont approvisionnées.
  3. azd deploy: Les projets sont envoyés en tant que conteneurs dans une instance de 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 azd up étapes terminées, votre application sera disponible sur Azure, et vous pouvez ouvrir le Azure portail 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 Azure portail. Dans le groupe de ressources où vous avez déployé l’application, vous verrez les trois applications conteneur et d’autres ressources.

Capture d’écran du groupe de Aspire ressources du projet dans le Azure portail.

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

Aspire project's front end in the Azure portal.

Cliquez sur le lien URL de l’application pour ouvrir le serveur frontal dans le navigateur.

Aspire project's front end in the browser.

Lorsque vous cliquez sur le nœud « Météo » dans la barre de navigation, l’application conteneur frontale web effectue un appel à l’application apiservice conteneur pour obtenir des données. La sortie du front-end sera mise en cache à l'aide de l'application conteneur redis et de l'intégration AspireRedis Output Caching. 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 Aspire tableau de bord

Vous pouvez déployer le Aspire tableau de bord 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.