Je travaille avec Microsoft Azure depuis un certain temps maintenant, et j’ai constaté que la configuration des journaux n’était pas triviale.
J’ai eu une expérience avec WordPress. Dans cet article, je vais démontrer c’est en réalité simple avec une API web .NET Core 8.
Les prérequis
Vous aurez besoin de :
- Un compte sur Microsoft Azure. Personnellement, je n’ai qu’un compte professionnel auprès de mon employeur actuel au moment où j’écris ces lignes. J’ai donc eu quelques problèmes pour faire fonctionner les ressources ensemble ou pour obtenir des permissions pour effectuer certaines actions. Je les détaillerai au fur et à mesure.
- Visual Studio 2022, du moins, que j’ai utilisé pour réaliser ce guide. Vous devrez connecter votre compte Microsoft pour pouvoir déployer avec la fonction Publish de Visual Studio. Cet article ne montre pas comment configurer une CI via Azure DevOps et déployer une image Docker. Veuillez lire mon autre guide sur le sujet où j’ai déployé un API web Python sur Microsoft Azure.
- Un App Service Plan : si vous n’en avez pas, il n’y a pas de difficulté à le créer. Vous le créerez en même temps que l’App Service plus tard dans l’article.
Création de la WebApi
Tout d’abord, créons l’application en local.
Dans Visual Studio, créez un nouveau projet de type « ASP.NET Core Web API » et fournissez les détails suivants :
- Nommez-la.
- Sélectionnez la cible .NET. Bien que .NET 9.0 vienne de sortir au moment où j’écris ces lignes, je préfère la version LTS actuelle, à savoir .NET 8.0.
- Ne sélectionnez aucun type d’authentification. Nous traiterons cette question avec OpenIddict dans un article ultérieur. Abonnez-vous pour en savoir plus lorsque je publierai l’article.
- Cochez l’option Configurer pour HTTPS.
- Décochez l’option Enable container support.
- Décidez si vous voulez utiliser Swagger pour documenter votre API web avec l’option Enable OpenAPI Support. Dans cet article, c’est hors sujet.
- Cochez l’option Use controllers.
- Laissez le reste tel quel.
Par défaut, il créera une application avec un contrôleur WeatherForecast.
Vérifiez que cela fonctionne par le menu clic droit et Debug > Start new instance.
Créer la ressource App Service
Avant de déployer, nous devons créer l’endroit où l’application sera exécutée.
Rendez-vous sur le portail Azure (https://portal.azure.com/
) et en utilisant la barre de recherche principale en haut, saisissez et sélectionnez « App Services ».
Sur la page chargée, vous verrez tous les App Services existants sur votre abonnement ou groupe de ressources.
Sélectionnez Create puis Web App.
Sous l’onglet Basics, vous devez entrer :
- Le groupe de ressources.
- Le nom de la ressource.
- Le type de Publish à Code.
- La Runtime stack à .NET 8 (LTS).
- Le Operating system à Linux.
- La Region (Note : j’ai choisi la même que les autres ressources, parce que j’avais un App Service Plan existant pour éviter la création (et les coûts) d’un nouveau)
- Le Linux plan. Si vous avez un plan existant, Azure le listera pour vous. Sinon, cliquez sur Create new.
Sous l’onglet Deployment, cochez la case Basic authentication à Enable pour les Authentication settings.
Laissez les onglets Database et Networking avec les valeurs par défaut. La base de données sera créée séparément lorsque nous préparerons l’intégration d’OpenIddict. Abonnez-vous pour en savoir plus lorsque je publierai l’article.
Sous l’onglet Application Insights, laissez-le tel quel, car, même si cela peut être intéressant, ce n’est pas ainsi que vous indiquerez à Azure où iront les traces applicatives.
Sous l’onglet Tags, définissez les tags pour organiser vos ressources. Vous devriez avoir une stratégie pour trier et organiser vos ressources. Mais c’est un sujet pour un autre article.
Terminez par Review + create et confirmez la création de la ressource.
Déployer l’application sur Microsoft Azure
Maintenant, déployons l’application vers la ressource App Service nouvellement créée.
Faites un clic droit sur le projet et sélectionnez Publish..
Vous devrez créer un profil de publication, donc cliquez sur Add a publish profile.
Dans la fenêtre qui vient de s’ouvrir,
- Sélectionnez Azure comme Target.
- Sélectionnez Azure App Service (Linux) comme Specific target.
- Sélectionnez la ressource App Service que vous venez de créer. Vous devez être connecté dans Visual Studio au même compte Microsoft que celui que vous avez utilisé pour créer la ressource dans Azure. Sinon, vous ne le verrez pas.
- Sélectionnez Publish (generatates pubxml file) comme Deployment type.
Fermez la fenêtre modale et cliquez sur Publish.
Après quelques minutes, l’application devrait être déployée sur Azure. Utilisez la lame Overview de la ressource App Service sur Azure pour naviguer sur l’API web : elle devrait ressembler à demowebapinetcore8-fcg3bqdgbme3dchd.westeurope-01.azurewebsites.net
. Ajoutez /weatherforecast
pour valider le fonctionnement de l’API.
Activer les traces applicatives dans le système de fichiers
Sur le portail Azure, rendez-vous sur votre ressource App Service et recherchez la lame App Service Logs.
Activez l’option Application logging en sélectionnant File System et définissez la Retention Period sur 7 days.
Enregistrez les modifications.
Pour vérifier le fonctionnement, recherchez la lame Outils avancés et cliquez sur Go.
Dans le nouvel onglet du navigateur qui s’est ouvert, sélectionnez l’onglet Bash pour charger un client SSH, également connu sous le nom de Kudu.
Saisissez la commande suivante :
|
|
Cela devrait lister un fichier nommé yyyy_mm_dd_[some_hash_value]_default_docker.log
. C’est là qu’iront les traces de votre application.
À propos de la lame LogStream
Vous avez peut-être vu des vidéos ou des articles sur YouTube qui vous disent que vous pouvez voir les journaux en direct dans le LogStream. Peut-être que c’était possible ou que c’est encore possible dans certaines conditions. Je trouve personnellement que ce n’est pas fiable. J’ai essayé beaucoup de choses et ça reste souvent bloqué avec le message « Connected! »…
Modifier Program.cs
pour ajouter votre première trace applicative
Tout d’abord, avant d’instancier le constructeur, ajoutez les lignes suivantes :
|
|
De cette manière, vous pouvez déboguer les erreurs pendant le démarrage de votre application.
Laissez-moi vous dire à quel point c’est important lorsqu’il s’agit de déboguer l’intégration de OpenIddict. Pour vous, ce ne sera peut-être pas le cas si vous suivez exactement les mêmes étapes que celles que je décris ici.
Pour tester cela, appuyez sur Publish à nouveau et attendez que l’App Service redémarre. Dans le fichier de traces applicatives, vous devriez voir les deux lignes suivantes vers la fin du fichier :
|
|
Modifier WeatherForecastController.cs
pour ajouter une trace applicative
Dans le fichier du contrôleur, utilisez l’injection de dépendance pour utiliser le logger :
|
|
Pour tester cela, appuyez à nouveau sur Publish et attendez que le App Service redémarre. Naviguer sur /weatherforecast
et vérifiez la présence des traces ajoutées dans le contrôleur.
Conclusion
Voilà, c’est fait. J’ai tellement cherché à comprendre où se trouvaient ces fichiers de traces applicatives. D’une manière ou d’une autre, les articles et les vlogs montrent des informations obsolètes et cet article est ce que vous recherchez.
À savoir : chaque solution logicielle, WordPress, Flask, ASP.NET, a sa propre interface pour ajouter des traces applicatives. Si vous trouvez comment les mettre en œuvre, elles seront ajoutées dans le fichier cité dans cet article.
Encore une fois, abonnez-vous pour la suite. J’ai prévu un article sur l’intégration de OpenIddict à l’application construite ensemble aujourd’hui.
Suivez-moi !
Merci d’avoir lu cet article. Assurez-vous de me suivre sur X, de vous abonner à ma publication Substack et d’ajouter mon blog à vos favoris pour ne pas manquer les prochains articles.
Crédit: Photo de Craig Adderley sur Pexels.