Exercice : ajouter une autre application Azure Functions à une API existante

Effectué

Rappelez-vous que vous souhaitez intégrer tous les microservices distincts, qui sont des fonctions Azure Functions, dans une seule API. Vous avez ajouté l’application de fonction Products à une nouvelle instance Gestion des API. Vous souhaitez à présent ajouter une autre application de fonction à cette API.

Dans cet exercice, vous ajoutez la fonction Commandes à l’API et utilisez l’outil curl pour tester le système intégré.

Tester la fonction OrderDetails

Avant d’ajouter l’application de fonction Orders à l’API, testons la fonction qu’elle héberge, OrderDetails.

  1. Dans le menu de ressources Azure ou dans la page Accueil, sélectionnez Toutes les ressources. Le volet Toutes les ressources s’affiche.

  2. Triez les ressources par type, puis sélectionnez l’application de fonction dont le nom commence par OrderFunction. Le volet Vue d’ensemble de l’application de fonction OrderFunction s’affiche.

  3. Dans la liste des fonctions de votre application de fonction, sélectionnez OrderDetails. Le volet Vue d’ensemble de la fonction OrderDetails s’affiche.

  4. Dans le menu Détails de la commande, sous Développeur, sélectionnez Code + test. Le volet Code + test de la fonction OrderDetails s’affiche en montrant le contenu du fichier function.json.

    Code JSON de la fonction OrderDetails avec mise en évidence de Code + test dans le menu et de Test/Exécution dans la barre de commandes.

  5. Dans la barre de commandes, sélectionnez Test/Exécution. L’onglet Entrée relatif aux paramètres de la fonction OrderDetails s’affiche.

  6. Dans le champ Méthode HTTP, sélectionnez GET dans la liste déroulante. Sous Requête, sélectionnez Ajouter un paramètre, dans le champ Nom, entrez name (nom), dans le champ Valeur, entrez Chiba (la valeur respecte la casse), puis sélectionnez Exécuter.

  7. Une console de journal s’ouvre et affiche l’état de la requête. L’onglet Sortie affiche le code de réponse HTTP et son contenu au format JSON.

    La page d’ajout d’une nouvelle option de fonction s’affiche.

    Vous pouvez éventuellement exécuter des requêtes supplémentaires en utilisant les valeurs de nom Henri et Barriclough pour obtenir d’autres commandes de clients.

  8. Sélectionnez Fermer pour fermer les onglets Entrée et Sortie de Test/Exécution.

  9. Dans la barre de commandes du volet d’OrderDetails, sélectionnez Obtenir l’URL de la fonction. Notez que l’URL est le nom de la fonction dans le domaine azurewebsites.net.

Ajouter une fonction à une API existante

Dans cette étape, nous allons ajouter la fonction Commande à la ressource Gestion des API que nous avons créée dans l’exercice précédent. Dans cet exercice, nous avons utilisé l’interface Gestion des API depuis l’interface de l’application de fonction. Ici, nous accédons à notre instance de Gestion des API via le menu de ressources du portail Microsoft Azure pour démontrer simplement que les deux approches sont disponibles.

  1. Dans le menu de ressources Azure ou dans la page Accueil, sélectionnez Toutes les ressources. Le volet Toutes les ressources s’affiche.

  2. Triez les ressources par Type, puis sélectionnez le service Gestion des API OnlineStore. Le service Gestion des API s’affiche pour OnlineStore.

  3. Dans le menu, sous API, cliquez sur API. Le volet API affiche les options permettant de définir une nouvelle API.

  4. Sous Créer à partir d’une ressource Azure, sélectionnez Application de fonction.

    Capture d’écran de l’écran Ajouter une nouvelle API avec une légende mettant en évidence l’option Application de fonction Azure.

    La boîte de dialogue Créer à partir de l’application de fonction s’affiche.

  5. Pour sélectionner votre application de fonction, sélectionnez Parcourir. Le volet Importer Azure Functions s’affiche.

  6. Dans le champ Configurer les paramètres nécessaires, sélectionnez Sélectionner.

    Capture d’écran de la boîte de dialogue Importer Azure Functions avec mise en évidence du champ Configurer les paramètres nécessaires et du bouton Sélectionner.(../media/5-import-azure-function-app-03-expanded.png#lightbox)

    Le volet Sélectionner une application de fonction Azure s’affiche.

  7. Sélectionnez OrderFunctionNNNNNNN, puis Sélectionner. Le volet Importer Azure Functions s’affiche à nouveau avec l’application de fonction OrderDetails configurée.

  8. Vérifiez si OrderDetails est coché, puis, au bas de la page, sélectionnez Sélectionner pour ajouter la fonction. La boîte de dialogue Créer à partir de l’application de fonction s’affiche.

  9. Remplacez la valeur du champ Suffixe d’URL d’API par orders (commandes). Notez comment cette modification met à jour l’URL de base. Sélectionnez Créer pour créer votre API.

    Capture d’écran de la boîte de dialogue Créer à partir de l’application de fonction remplie avec les détails de la fonction Orders.

    Le service Gestion des API OnlineStore affiche l’onglet Conception avec toutes les API (GET, POST) disponibles pour OrderDetails.

Tester le point de terminaison des commandes OnlineStore dans le portail

Maintenant que nous avons ajouté la fonction OrderDetails à notre API, testons-la en utilisant les outils Gestion des API du portail Microsoft Azure.

  1. Sous l’onglet Conception des API OrderFunctionNNNNNN, sous Toutes les opérations, sélectionnez GET OrderDetails, puis sélectionnez l’onglet Test.

  2. Dans la section Paramètres de la requête, sélectionnez Ajouter un paramètre, puis entrez name dans le champ NOM ainsi que Chiba dans le champ VALEUR. Sélectionnez Envoyer.

  3. L’onglet du message Réponse HTTP affiche la requête HTTP réussie (HTTP/1.1/ 200 OK), un objet JSON montrant un ID de commande, ainsi que le nom du client, le prix total de la commande et l’état de l’expédition.

  4. Faites défiler l’affichage jusqu’à la section Requête HTTP. Notez que la requête a été envoyée à un sous-domaine et un sous-répertoire du domaine azure-api.net. Cet emplacement diffère de celui du domaine hôte azurewebsites.net.

Tester l’API combinée

Nous pouvons utiliser l'outil en ligne de commande curl pour envoyer des requêtes à notre API. cURL est idéal, car nous pouvons inclure la clé d’abonnement appropriée dans une requête. Une requête a également besoin de l’emplacement de l’API, qui est hébergée dans Gestion des API Azure et, dans ce cas, comprend les fonctions Products et Orders.

  1. Dans le menu de ressources Azure ou la page Accueil, sélectionnez Toutes les ressources.

  2. Triez les ressources par Type, puis sélectionnez le service Gestion des API OnlineStore. Le service Gestion des API s’affiche pour OnlineStore.

  3. Dans la section Fonctionnalités essentielles, pointez sur l’URL de la passerelle, puis sélectionnez l’icône Copier dans le Presse-papiers.

  4. Dans Azure Cloud Shell à droite, vous permet de définir des variables. Exécutez la commande suivante en remplaçant l’espace réservé <paste URL here> par la valeur de l’URL que vous avez copiée dans le Presse-papiers, puis appuyez sur Entrée. Cette valeur définit la variable de passerelle.

    GATEWAY_URL=<paste URL here>
    
  5. Dans Azure, dans le menu du service Gestion des API d’OnlineStore, faites défiler l’affichage jusqu’à API, puis sélectionnez Abonnements. Le volet Abonnements s’affiche pour votre instance Gestion des API OnlineStore.

  6. Pour l’Abonnement Tous les accès intégré, sélectionnez les points de suspension ... à l’extrême droite de cette ligne, puis sélectionnez Afficher/masquer les clés dans le menu contextuel. La clé primaire et la clé secondaire de l’API s’affichent.

  7. Dans le champ Clé primaire, sélectionnez l’icône Copier dans le Presse-papiers.

  8. Dans Cloud Shell, exécutez la commande suivante, en remplaçant l’espace réservé par la valeur indiquée dans votre Presse-papiers, puis appuyez sur Entrée.

    SUB_KEY=<paste key here>
    
  9. Nous pouvons maintenant demander les détails d’une commande et d’un produit en interrogeant le même service Gestion des API :

    1. Pour demander les détails d’un client nommé Henri, exécutez la commande suivante dans Cloud Shell :

       curl -X GET "$GATEWAY_URL/orders/OrderDetails?name=Henri" -H "Ocp-Apim-Subscription-Key:$SUB_KEY"
      

      La réponse contient un bloc de code JSON avec des détails de commande montrant que la Commande 56224 a été livrée à Pascale Henri. Vous pouvez également tester la commande avec les noms Chiba et Barriclough pour afficher différents résultats.

    2. Pour demander les détails d’un produit avec l’id2, exécutez la commande suivante dans Cloud Shell :

       curl -X GET "$GATEWAY_URL/products/ProductDetails?id=2" -H "Ocp-Apim-Subscription-Key:$SUB_KEY"
      

      La réponse contient un bloc de code JSON avec les détails d’un produit. Vous pouvez également tester la commande avec les valeurs d’id1 et 3 pour voir des résultats différents.

Notez que les deux fonctions peuvent désormais être appelées via des points de terminaison au sein du domaine azure-api.net (tel que défini par GATEWAY_URL), qui représente le domaine utilisé par Gestion des API Azure. Dans d’autres modules Learn, vous pouvez découvrir comment appliquer des stratégies, des paramètres de sécurité, des caches externes ainsi que d’autres fonctionnalités aux fonctions d’une passerelle Gestion des API. Une passerelle vous fournit un point de contrôle central, où vous pouvez gérer plusieurs microservices sans en modifier le code.