Fermer

février 13, 2025

Création d’un service d’application pour un service Web

Création d’un service d’application pour un service Web


Votre application cloud-native aura besoin d’un service Web. Voici comment configurer un service APP pour maintenir ce service Web (et comment le déployer dans le service APP à partir de Visual Studio).

Dans mon post précédent, Codage Azure 2: Configuration d’une base de données Azure SQLJ’ai configuré une base de données SQL Azure Native Cloud et je l’ai chargée avec certaines données. La prochaine étape de la création d’un microservice à trois niveaux consiste à ajouter un service Web qui accédera à cette base de données. Pour une solution de cloud-native, ce service Web s’exécutera dans un service Azure App.

Je dois mentionner que l’équipe Azure semble utiliser les deux termes «Service d’applications» et «application Web» interchangeables (ou je ne peux pas comprendre la distinction). J’utiliserai «Application Service» sauf où l’interface utilisateur m’oblige à utiliser «API Web».

Création du service d’application

Pour commencer à créer un service d’applications qui hébergera un service Web dans Azure, surfez vers le Portail azurtaper Services d’application dans la zone de recherche au milieu du haut de la page, puis cliquez sur Services d’application Dans la liste déroulante pour accéder à la page des services d’application. Puis cliquez sur le + Créer À l’extrémité gauche du menu en haut de la page et sélectionnez Application Web Pour démarrer le Créer une application Web magicien.

Comme d’habitude, vous devrez attribuer votre service d’application à un groupe de ressources et lui donner un nom (le nom du service d’application est roulé dans une URL afin que vous ne puissiez pas utiliser les espaces mais, pour un service d’application, l’interface utilisateur vous permettra Utilisez des lettres majuscules – pas qu’elles fassent la différence). Par défaut, l’assistant cognera automatiquement une chaîne aléatoire à la fin du nom pour que l’URL résultante soit unique, mais vous pouvez désactiver cela en utilisant le commutateur à bascule juste en dessous du nom de votre application (j’ai appelé mon service WarehouseAppDB, par exemple , qui s’est avéré unique, j’ai donc désactivé l’option de chaîne aléatoire).

Le prochain groupe de paramètres dépendra de la plate-forme de développement que vous utilisez et de la façon dont vous avez l’intention de déployer votre application.

La première option (Code) vous permet de choisir entre le chargement de la pile de support pour une plate-forme de développement ou un conteneur (Récipientqui vous permet, éventuellement, de charger un conteneur maintenant le code de votre service Web et sa pile de support).

Je n’ai pas l’intention de charger un conteneur à ce service d’application, donc je définis le bouton Radio Code / Container sur Code. Choisir l’option de code Affiche le Pile d’exécution Dropdown qui vous permet de choisir les packages d’assistance qui seront chargés dans mon service d’applications. J’ai choisi .Net 8 Parce qu’il correspondait à la pile que j’utiliserai pour créer mon service Web.

Si vous choisissez le Récipient Option, vous n’aurez pas à sélectionner une pile d’exécution. Cela augmentera vos coûts (voir ci-dessous) et vous devrez abandonner en utilisant un débogage à distance (que je couvrirai dans un prochain article). Vous devrez également configurer votre projet Visual Studio / Visual Studio Code pour générer votre application dans un conteneur.

Quel que soit le choix que vous avez fait dans l’option Code / conteneur, vous devrez choisir le système d’exploitation de votre service d’application. Parce que j’ai utilisé l’option de code, j’ai choisi Fenêtre Paiement à des fins pratiques: bien que .NET s’exécute sur Windows et Linux, je ne peux pas activer le débogage à distance sur un service d’applications qui utilise Linux à moins que j’utilise .NET 6 ou plus tôt. Il reflète également la plate-forme sur laquelle je développe mon service Web.

Si vous choisissez l’option Container, votre choix de système d’exploitation doit être motivé par la plate-forme sur laquelle vous développez, mais Visual Studio, au moins, vous permettra de vous développer sur Windows et de déployer sur un hôte Linux.

J’ai défini la région sur la même région que la base de données Azure SQL que j’ai créée dans Partie 2 Pour éviter toute charge croisée (Canada Centraldans mon cas).

Les sélections sont celles qui vous permettent de définir la quantité de puissance de traitement que vous obtiendrez (et, par conséquent, combien vous paierez). Sous Plan de prix J’ai cliqué sur Créer un nouveau Et, dans le dialogue résultant, a donné un nom à mon plan.

Clic Créer un nouveau Vous permet non seulement de définir un nom, mais affiche également une liste déroulante des plans disponibles. Pour cet exemple d’application (et en utilisant l’option de code), j’ai sélectionné le F1 gratuit Plan qui me donne 60 minutes de traitement par jour pour jouer avec. Dans la vraie vie, vous voudrez choisir quelque chose avec plus de puissance. Si vous avez choisi l’option de conteneur, l’option gratuite n’est pas disponible et vous devrez choisir parmi les plans plus puissants (et coûteux).

Choisir le plan gratuit signifie que je ne peux pas sélectionner la redondance de la zone (qui créera des copies de basculement de mon service d’application dans un autre centre de données dans la même région) ou des services supplémentaires qui seraient automatiquement déployés avec mon service d’applications. Ces services supplémentaires incluent une base de données Azure SQL et un cache Redis (je vais chercher à utiliser un cache Redis plus tard dans cette série). La sélection du conteneur vous permettra également de sélectionner la redondance de la zone qui copiera votre service d’application dans un autre centre de données dans la même région vous permettant de se rendre à cette copie si vous avez une défaillance du centre de données.

Sur les autres onglets:

  • Onglet Container:

    • Cela n’apparaîtra que si vous avez sélectionné l’option de conteneur plus tôt. Si vous souhaitez utiliser une image à partir de votre propre registre, sélectionnez la source appropriée dans le Source d’image (Azure Container Registry, Docker Hub ou un registre privé), puis choisissez votre image dans le registre.
  • Onglet de déploiement:

    • Cela n’apparaîtra que si vous avez choisi l’option de code. Le plan gratuit que j’ai choisi ne prend pas en charge l’activation Déploiement continu ou intégration avec github. Si vous gardez votre code source dans GitHub, vous pouvez entrer ici les informations de votre référentiel et revoir le flux de travail qui déploiera votre succursale (je vais déployer mon exemple d’application directement de Visual Studio, donc cela ne me dérangera pas de perdre ces options ).

    • Je suis parti Authentification de base Désactivé juste pour simplifier le déploiement de Visual Studio.

  • Onglet de réseautage:

    • Je suis parti Activer l’accès du public se mettre à Sur afin que je puisse tester mon service simplement en surfant vers lui. Vous devriez aussi, pour faciliter la création de votre application. Dans la vraie vie, vous voudrez finalement désactiver cela dans votre environnement de production afin que le service ne puisse être accessible qu’à partir du frontend de l’application.

    • Le plan de service gratuit ne me laisse pas Activer l’injection de réseauqui me permettrait d’attacher mon service à un réseau virtuel et de profiter des fonctionnalités de sécurité d’un VNET. Je n’ai pas manqué cela parce que, en me concentrant sur une solution native du cloud, je voulais sécuriser mon application sans utiliser de fonctionnalités qui frappaient un centre de données physique.

  • Surveillance + onglet sécurisé:

    • J’ai handicapé Aperçu de l’application Parce que je ne voulais pas encourir de charges associées. Dans la vraie vie, vous voudrez probablement (éventuellement) permettre des informations sur les applications dans vos services d’application de développement, de test et de production, mais uniquement lorsque vous avez un problème à retrouver.

    • Je n’ai pas permis Microsoft Defender Pour la même raison que je n’ai pas permis de permettre aux informations de l’application, mais vous devriez presque certainement l’activer pour votre service d’application de production.

Déploiement de votre service d’application depuis Visual Studio

Pour déployer votre service Web à partir de Visual Studio, vous devez créer un profil de publication (dans un article ultérieur, je couvrirai comment déployer à partir du code Visual Studio). Pour commencer à créer un profil de publication:

  1. Tout d’abord, démarrez Visual Studio et créez un projet Visual Studio (j’ai utilisé le ASP.NET Core Web API modèle, appelé mon projet Entrepôtset – autre que de définir mon framework sur .NET 8.0 – a fait toutes les valeurs par défaut sur la page d’informations supplémentaires).

  2. De Visual Studio Construire menu, sélectionner Publier <project name> Pour afficher l’onglet Publier.

  3. Si c’est votre premier profil de cette boîte de dialogue Cible liste, cliquez sur le Azuré choix pour le sélectionner. (Si ce n’est pas le premier profil de votre projet, alors, dans le menu en haut du panneau à droite, cliquez sur + Créer onglet puis sélectionnez Azuré de Cible liste.)

  4. Cliquez sur Suivant bouton en bas de la boîte de dialogue pour afficher le Cible spécifique languette.

  5. Sur l’onglet cible spécifique, vous devez sélectionner une cible qui correspond au service d’application que vous avez créé. Dans mon cas, car j’ai sélectionné l’option de code lors de la configuration de mon service d’application, j’ai sélectionné le Service Azure App (Windows) cible. (Si vous avez choisi d’utiliser un conteneur avec votre service d’application, vous voudrez sélectionner le conteneur du service d’application pour la plate-forme – Windows ou Linux – que vous avez sélectionné.)

  6. Cliquez sur Suivant bouton pour passer au Service d’application page.

  7. Sur Service d’application Onglet, vous devrez explorer le service Azure App Application que vous souhaitez déployer votre service Web (la liste est organisée soit par groupe de ressources ou des applications Web et limité aux services qui correspondent au modèle que vous avez sélectionné dans l’onglet précédent). Dans mon cas, le service d’applications que je veux est mon WarehouseMgMtService dans mon groupe de ressources WarehouseMgmt.

  8. Cliquez sur Suivant bouton en bas de la boîte de dialogue pour accéder au Gestion de l’API page.

  9. En ce moment, je ne vais pas utiliser la gestion des API, alors j’ai vérifié le Sauter cette étape Cochez la boîte en bas de la boîte de dialogue.

  10. Cliquez sur Finition bouton pour créer votre profil de publication et le Fermer bouton pour revenir à Visual Studio et afficher votre profil.

Si vous souhaitez commencer à utiliser la gestion de l’API, alors, avant de cliquer sur le bouton Terminer, vous pouvez soit sélectionner une ressource API Web existante dans la liste ou cliquer sur le + Créer nouveau bouton pour créer une API Web. (Si vous avez choisi l’option Container, vous pouvez recevoir un message sur l’augmentation de vos privilèges d’administration sur votre registre.)

Avant d’utiliser le profil, reconnaissons que vous aurez besoin de déboguer votre service Web (rien ne fonctionne jamais la première fois). Pour soutenir cela, modifiez votre profil de publication pour déployer une version de débogage: dans votre profil de publication, cliquez sur l’icône du crayon à côté du ConfigurationParamètre de libération et, dans la boîte de dialogue suivante, définissez la liste déroulante de configuration sur Déboguer Avant de cliquer sur le Sauvegarder bouton.

À long terme, vous voudrez probablement deux profils de publication: un qui se déplace vers un service d’applications «de développement» avec une version de débogage et un deuxième profil qui se déplace vers un service d’application de mise en scène / test (ou une fente de déploiement dans une application de produit Service) avec une version de version.

Déployez votre service Web

Maintenant que vous avez créé un profil de publication, vous pouvez l’utiliser: de retour dans Visual Studio, avec votre profil affiché, cliquez sur ce profil Publier bouton pour déployer le squelette de votre service Web sur votre service d’application.

Votre application sera déployée sur votre service et, si votre service d’application est en cours d’exécution, Visual Studio ouvrira une fenêtre de navigateur et demandera le service à l’URL de votre service d’application. Cela générera une page d’erreur avec une erreur HTTP 404… ce qui est en quelque sorte décevant.

Cette erreur initiale 404 se produit parce que le processus de publication demande le service Web à l’aide de l’URL de base du service APP (https: // .AzureWebsites.net /) et le service de base du modèle est (actuellement) sur https: // .AzureWebsites.net / WeatherForEcast. Modifiez l’URL en service par défaut spécifié dans votre fichier programme.cs et vous devez récupérer votre sortie par défaut.

Réinitialisation d’un service d’application

En général, vous devez constater que, à mesure que vous apportez des modifications à votre application, vous pouvez le déployer à plusieurs reprises dans son service d’application sans problème. Cependant, il est possible d’apporter des modifications suffisantes pour rendre votre service d’application inutilisable (vous obtiendrez le message «Erreur HTTP 500.30 – L’application ASP.NET Core n’a pas réussi»). Ce n’est pas facile mais, par exemple, dans un service d’applications à l’aide de services d’applications .NET, en remplaçant une application ASP.NET Core configurée pour les pages de rasoir à une configurée pour MVC / Controllers-With-Views le fera parfois.

Pour un service d’application exécutant une application .NET, vous pouvez résoudre le problème en supprimant tous les fichiers du service d’application:

  1. Dans le menu de votre service d’applications à gauche, élargissez le Outils de développement nœud.

  2. Sélectionnez le Console Node pour ouvrir une fenêtre de console à droite, avec l’invite définie sur c: \ home \ site \ wwwroot.

  3. Supprimez tous les fichiers du dossier avec:

del *.* /s /q
  1. Republiez votre application au service d’application.

Étapes suivantes

Dans un article ultérieur de cette série, j’ai les étapes de déploiement sur un service d’applications à partir de Visual Studio Code (n’hésitez pas à sauter une fois que cela a publié). Dans mon prochain article, cependant, je vais couvrir comment créer un service Web qui pourra parler à ma base de données Azure SQL. Continuez à revenir, comme on dit.




Source link