Övning – Lägg till en annan Azure Functions-app i ett befintligt API
Kom ihåg att du vill integrera alla separata mikrotjänster, som är Azure Functions, i ett enda API. Du har lagt till funktionsappen Produkter i en ny instans av API Management. Nu vill du lägga till en annan funktionsapp till api:et.
I den här övningen lägger du till funktionsappen Beställningar i API:et curl
och använder verktyget för att testa det integrerade systemet.
Testa funktionen OrderDetails
Innan vi lägger till funktionsappen Beställningar i API:et ska vi testa funktionen som den är värd för – OrderDetails.
På Azure-resursmenyn eller på sidan Start väljer du Alla resurser. Fönstret Alla resurser visas.
Sortera resurserna efter typ och välj sedan den funktionsapp vars namn börjar med OrderFunction. Fönstret Översikt för funktionsappen OrderFunction visas.
I listan över funktioner för funktionsappen väljer du OrderDetails. Fönstret Översikt över funktionen OrderDetails visas.
På menyn Orderinformation går du till Utvecklare och väljer Kod + Test. Fönstret Kod + test för funktionen OrderDetails visas och visar innehållet i
function.json
filen.I kommandofältet väljer du Test/Kör. Fliken Indataparametrar för funktionen OrderDetails visas.
I fältet HTTP-metod väljer du GET i listrutan och under Fråga väljer du Sedan Lägg till parameter. I fältet Namn anger du namn och i fältet Värde anger du Chiba (värdet är skiftlägeskänsligt) och väljer sedan Kör.
En loggkonsol öppnas och visar status för begäran. Fliken Utdata visar HTTP-svarskoden och innehållet i JSON-format.
Du kan också köra fler begäranden med hjälp av namnvärdena Henri och Barriclough för att hämta olika kundbeställningar.
Välj Stäng för att stänga flikarna Indatautdata för Test/Kör.
I kommandofältet i fönstret OrderDetails väljer du Hämta funktions-URL. Observera att URL:en är namnet på funktionen i domänen azurewebsites.net.
Lägga till en funktion i ett befintligt API
I det här steget lägger vi till funktionen Order i API Management-resursen som vi skapade i föregående övning. I den övningen använde vi API Management-gränssnittet inifrån funktionsappens gränssnitt. Här navigerar vi till vår API Management-instans via Azure Portal resursmenyn, bara för att visa att båda metoderna är tillgängliga.
På Azure-resursmenyn eller på sidan Start väljer du Alla resurser. Fönstret Alla resurser visas.
Sortera resurserna efter typ och välj sedan tjänsten OnlineStore API Management. API Management-tjänsten för OnlineStore visas.
Välj API:er under API:er på menyn. I fönstret API:er visas alternativ för att definiera ett nytt API.
Under Skapa från Azure-resurs väljer du Funktionsapp.
Dialogrutan Skapa från funktionsapp visas.
Välj Din funktionsapp genom att välja Bläddra. Fönstret Importera Azure Functions visas.
I fältet Konfigurera nödvändiga inställningar väljer du Välj.
(.. /media/5-import-azure-function-app-03-expanded.png#lightbox)
Fönstret Välj Azure-funktionsapp visas.
Välj OrderFunctionNNNNNNNN och välj sedan Välj. Fönstret Importera Azure Functions visas igen med din OrderDetails-funktionsapp konfigurerad.
Kontrollera att OrderDetails är markerat och välj sedan Välj längst ned på sidan för att lägga till funktionen. Dialogrutan Skapa från funktionsapp visas.
Ersätt värdet i fältet API URL-suffix med order. Observera hur den här ändringen uppdaterar bas-URL:en. Välj Skapa för att skapa ditt API.
OnlineStore API Management-tjänsten visar fliken Design med alla tillgängliga API:er (GET, POST) för OrderDetails.
Testa onlinebutikens beställningsslutpunkt i portalen
Nu när vi har lagt till OrderDetails i vårt API ska vi testa det med hjälp av API Management-verktygen i Azure Portal.
På fliken OrderFunctionNNNNNN API:er design väljer du GET OrderDetails under Alla åtgärder och väljer sedan fliken Test.
I avsnittet Frågeparametrar väljer du Lägg till parameter och anger namn i fältet NAMN och Chiba och i fältet VÄRDE . Välj Skicka.
Fliken HTTP-svarsmeddelande visar http-begäran lyckades (HTTP/1.1/ 200 OK), tillsammans med ett JSON-objekt som visar ett order-ID, tillsammans med kundens namn, totalt pris för ordern och leveransstatus.
Rulla upp till avsnittet HTTP-begäran . Observera att begäran skickades till en underdomän och underkatalog i den azure-api.net domänen. Den här platsen skiljer sig från den azurewebsites.net värddomänen.
Testa det kombinerade API:et
Vi kan använda kommandoradsverktyget curl
för att skicka förfrågningar till vårt API. cURL är perfekt eftersom vi kan inkludera rätt prenumerationsnyckel med en begäran. En begäran behöver också platsen för API:et, som finns i Azure API Management och i det här fallet består av funktionerna Produkter och beställningar.
I Azure-resursmenyn eller från Start väljer du Alla resurser.
Sortera resurser efter typ och välj sedan tjänsten OnlineStore API Management. API Management-tjänsten för OnlineStore visas.
I avsnittet Essentials hovrar du över gateway-URL :en och väljer ikonen Kopiera till Urklipp .
I Azure Cloud Shell till höger kan du definiera vissa variabler. Kör följande kommando och ersätt
<paste URL here>
platshållaren med det URL-värde som du kopierade till Urklipp och tryck sedan på Retur. Det här värdet definierar gatewayvariabeln.GATEWAY_URL=<paste URL here>
I Azure går du till onlinebutikens API Management-tjänstmeny, rullar ned till API och väljer Prenumerationer. Fönstret Prenumerationer visas för din OnlineStore API Management-instans.
För den inbyggda allåtkomstprenumerationen väljer du ellipsen ... längst till höger på raden och väljer sedan Visa/dölj nycklar på snabbmenyn. Den primära nyckeln och den sekundära nyckeln för API:et visas.
I fältet Primär nyckel väljer du ikonen Kopiera till Urklipp .
Kör följande kommando i Cloud Shell, ersätt platshållaren med värdet i Urklipp och tryck sedan på Retur.
SUB_KEY=<paste key here>
Nu kan vi begära information om en beställning och en produkt genom att fråga samma API Management-tjänst:
Om du vill begära information om en kund med namnet Henri kör du följande kommando i Cloud Shell:
curl -X GET "$GATEWAY_URL/orders/OrderDetails?name=Henri" -H "Ocp-Apim-Subscription-Key:$SUB_KEY"
Svaret innehåller ett JSON-kodblock med orderinformation som visar att Order 56224 levererades till Pascale Henri. Du kan också prova kommandot med namnen Chiba och Barriclough för olika resultat.
Om du vill begära information om en produkt med ett ID på 2 kör du följande kommando i Cloud Shell:
curl -X GET "$GATEWAY_URL/products/ProductDetails?id=2" -H "Ocp-Apim-Subscription-Key:$SUB_KEY"
Svaret innehåller ett JSON-kodblock med information om en produkt. Du kan också prova kommandot med ID-värdena 1 och 3 för olika resultat.
Observera att båda funktionerna nu kan anropas via slutpunkter inom den azure-api.net domänen (enligt definitionen i GATEWAY_URL), som är den domän som används av Azure API Management. I andra Learn-moduler kan du lära dig hur du tillämpar principer, säkerhetsinställningar, externa cacheminnen och andra funktioner på funktionerna i en API Management Gateway. En gateway ger dig en central kontrollpunkt där du kan hantera flera mikrotjänster utan att ändra deras kod.