Övning – skapa ett nytt API i API Management från en funktionsapp

Slutförd

Om du vill presentera Azure Functions för användare som delar av ett enda API kan du lägga till dem i Azure API Management.

I ditt onlinebutiksföretag skapade utvecklarna flera Azure Functions som mikrotjänster. Varje funktion implementerar en liten del av butikens funktioner. Du vill montera dessa funktioner i ett enda API.

I den här övningen skapar du en ny API Management-instans och lägger sedan till en produktinformationsfunktion i den.

Skapa funktioner

I följande steg lägger du till en Azure-funktionsapp i Azure API Management. Senare lägger du till en andra funktionsapp i samma API Management-instans för att skapa ett enda serverlöst API från flera funktioner. Vi börjar med att använda ett skript för att skapa funktionerna:

  1. Om du vill klona funktionsprojektet kör du följande kommando i Azure Cloud Shell till höger.

    git clone https://github.com/MicrosoftDocs/mslearn-apim-and-functions.git ~/OnlineStoreFuncs
    
  2. Kör följande kommandon i Cloud Shell för att konfigurera nödvändiga Azure-resurser som vi behöver för den här övningen.

    cd ~/OnlineStoreFuncs
    bash setup.sh
    

    Skriptet setup.sh skapar de två funktionsapparna i sandbox-resursgruppen som aktiveras för den här modulen. När följande bild illustreras är varje app värd för en enda funktion – OrderDetails och ProductDetails. Skriptet konfigurerar också ett lagringskonto för funktionerna. Funktionerna har båda URL:erna i domänen azurewebsites.net-domänen. Funktionsnamnen innehåller slumpmässiga siffror för unikhet. Det tar några minuter att slutföra skriptet.

    Diagram illustrating the results of the setup.sh script and how the functions relate to the overall application's design.

Testa funktionen produktinformation

Nu ska vi testa funktionen ProductDetails för att se hur den fungerar innan vi lägger till den i API Management.

  1. Logga in på Azure-portalen med samma konto som du använde till att aktivera sandbox-miljön.

  2. På menyn i Azure-portalen eller från startsidan väljer du Alla resurser. Fönstret Alla resurser visas.

  3. Välj den funktionsapp vars namn börjar med ProductFunction. Fönstret Funktionsapp visas med fliken Översikt markerad.

    Screenshot of menu selections to open ProductDetails function.

  4. I listan över funktioner för din funktionsapp väljer du ProductDetails. Fönstret ProductDetails-funktion visas.

  5. På menyn Produktinformation går du till Utvecklare och väljer Kod + Test. Fönstret Kod + test för funktionen ProductDetails visas och visar innehållet i function.json filen.

    Screenshot of the ProductDetails Code and Test pane, with Test/Run selected in the command bar.

  6. I kommandofältet väljer du Test/Kör. Fönstret Indata/utdata visas för att testa DIN HTTP-begäran.

  7. På fliken Indata går du till listrutan HTTP-metodfält och väljer GET.

  8. Under Fråga väljer du Lägg till parameter

  9. I fältet Namn anger du ID och i fältet Värde anger du 3 och väljer sedan Kör.

    Screenshot of the input pane for Test + Run, with the input parameter for the HTTP GET method highlighted.

  10. En loggruta visas för att ansluta begäran. Fliken Utdata visar HTTP-svarskoden (200 OK) och innehållet för objekt 3 i databasen.

    Screenshot of the output of a pane for Test + Run with response results of running the GET method.

    Du kan också testa funktionen genom att ange ID-värdena 1 och 2.

  11. Välj Stäng för att stänga flikarna Indatautdata för Kod + Test.

  12. I kommandofältet i fönstret ProductDetails Code + Test väljer du Hämta funktions-URL. Observera att URL-underdomänen är namnet på din funktionsapp följt av azurewebsites.net domän.

Kommentar

Du kan använda den här URL:en för att testa funktionen i webbläsaren. URL:en kräver indata. lägg till frågesträngen &id=1 för att begära information om det första objektet i produktsamlingen.

Exponera funktionsappen som ett API med Hjälp av Azure API Management

När funktionsappen har distribuerats och testats ska vi exportera den som ett API med Hjälp av Azure API Management så att den kan anropas från andra appar och tjänster.

  1. I resursmenyn väljer du Alla resurser. Fönstret Alla resurser visas.

  2. Sortera listan över resurser efter typ. Observera att du har en OrderFunction-app och en ProductFunction-app.

  3. Välj funktionsappen ProductFunction .

  4. I menyn Funktionsapp bläddrar du till API-kategorin och väljer sedan API Management. Fönstret API Management för funktionsappen ProductFunction visas.

    Screenshot showing menu selection to open the API Management app service.

  5. Under fältet API Management väljer du Skapa ny. Fönstret Installera API Management-gateway visas.

    Screenshot showing settings for an API Management service.

  6. Ange följande värden för varje inställning.

    Inställning Värde
    Prenumeration Concierge-prenumeration
    Resursgrupp [namn på sandbox-miljöns resursgrupp]
    Region Välj en plats som stöder förbrukningsplanen: (USA) USA, västra, USA, norra centrala, Europa, västra, Europa, norra, Sydostasien, Australien, östra
    Resursnamn OnlineStore
    Organisationsnamn OnlineStore
    E-postadress för administratör Ange en e-postadress.
    Prisnivå Förbrukning (99,95 % serviceavtal)
  7. Välj Nästa: Övervaka och avmarkera alternativet Application Insights .

  8. Välj Granska + skapa. När verifieringen är klar väljer du Skapa för att skapa en länkad API Management-instans. Tillåt flera minuter för att exporten ska slutföras.

  9. När API Management-instansen har distribuerats väljer du Länk-API.

    Screenshot of API Management highlighting the Link API button.

    Fönstret Importera Azure Functions API Management-tjänsten visas med funktionen ProductDetails markerad.

    Screenshot showing the Import Azure Functions API Management service pane.

  10. Välj Välj för att fortsätta. Dialogrutan Skapa från funktionsapp visas.

    Screenshot showing the Create from Function app dialog box.

  11. Ändra värdet för API URL-suffixet till produkter och välj sedan Skapa. Azure skapar API:et för funktionen ProductDetails . Fliken Design för API Management för funktionsappen visas.

Den här övningen visar att du kan definiera ditt API, allt från Azure Function App Service.

Testa slutpunkten för OnlineStore-produkter

Nu har du ett ProductDetails API i API Management-instansen som du skapade. Nu ska vi testa API:et med API Management-verktygen i Azure.

  1. I fönstret API Management i funktionsappen väljer du fliken Test . Tillgängliga åtgärder för ditt API visas i den vänstra kolumnen.

  2. Välj GET ProductDetails. Fönstret ProductDetails-konsolen visas.

  3. Under frågeparametrar väljer du Lägg till parameter.

    Screenshot showing ProductDetails Console with query parameter values highlighted for the GET HTTP request.

  4. I fältet NAMN anger du ID och i fältet VÄRDE anger du 1 och väljer sedan Skicka för att generera en GET-begäran.

    Avsnittet HTTP-svar i konsolen har två flikar, Meddelande och Spårning. Fliken Meddelande fylls i med HTTP-svaret. Produktinformationen visas i JSON-format i slutet av svaret. Rulla upp till avsnittet HTTP-begäran och lägg märke till formatet för begäran. Begäran skickades till ett mål i domänen azure-api.net . Den här platsen skiljer sig från den azurewebsites.net domän där funktionsappen finns. Du kan testa det här API:et med andra frågeparametrar, till exempel id=2 eller id=3.

    Screenshot showing the **Http request** and **HTTP response** message.