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 :
- .NET 8.0 ou .NET 9.0
- Un runtime de conteneur conforme à OCI, tel que :
- Docker Desktop ou Podman. Pour plus d’informations, consultez du 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 (facultative)
- JetBrains Rider avec .NET.NET Aspire plug-in (facultatif)
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
Ouvrez une nouvelle fenêtre de terminal et
cd
dans le répertoire de projet AppHost de votre solution .NET.NET Aspire.Exécutez la commande
azd init
pour initialiser votre projet avecazd
, 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.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
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
Entrez un nom d’environnement, utilisé pour nommer les ressources provisionnée dans Azure et gérer différents environnements tels que
dev
etprod
.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
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
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)
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 :
-
azd package
: les projets d’application et leurs dépendances sont empaquetés dans des conteneurs. -
azd provision
: les ressources Azure dont l’application a besoin sont approvisionnées. -
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.
Cliquez sur l’application conteneur web
pour l’ouvrir dans le portail.
Cliquez sur le lien URL de l'application pour ouvrir l'interface 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.