Oefening: een andere Azure Functions-app toevoegen aan een bestaande API
Zoals u zich herinnert, wilt u alle afzonderlijke microservices, die Azure Functions zijn, integreren in één API. U hebt de functie-app Producten toegevoegd aan een nieuw exemplaar van API Management. Nu wilt u een andere functie-app toevoegen aan die API.
In deze oefening voegt u de functie-app Orders toe aan de API en gebruikt u het curl
hulpprogramma om het geïntegreerde systeem te testen.
De functie OrderDetails testen
Voordat we de functie-app Orders aan de API toevoegen, gaan we de functie testen die als host fungeert- OrderDetails.
Selecteer Alle resources in het azure-resourcemenu of op de startpagina. Het deelvenster Alle resources wordt weergegeven.
Sorteer de resources op type en selecteer vervolgens de functie-app waarvan de naam begint met OrderFunction. Het deelvenster Overzicht voor de Functie-app OrderFunction wordt weergegeven.
Selecteer OrderDetails in de lijst met functies voor uw functie-app. Het deelvenster Overzicht van de functie OrderDetails wordt weergegeven.
Selecteer Code + Test in het menu Orderdetails onder Ontwikkelaars. Het deelvenster Code + Test voor de functie OrderDetails wordt weergegeven met de inhoud van het
function.json
bestand.Selecteer Testen/uitvoeren op de opdrachtbalk. Het tabblad Invoerparameters voor de functie OrderDetails wordt weergegeven.
Selecteer IN het veld HTTP-methode GET in de vervolgkeuzelijst en selecteer vervolgens onder Query de optie Parameter toevoegen en voer in het veld Naam de naam in en voer in het veld Waarde Chiba in (waarde is hoofdlettergevoelig) en selecteer Vervolgens Uitvoeren.
Er wordt een logboekconsole geopend en de status van de aanvraag weergegeven. Op het tabblad Uitvoer worden de HTTP-antwoordcode en -inhoud in JSON-indeling weergegeven.
U kunt desgewenst meer aanvragen uitvoeren met naamwaarden Henri en Barriclough om verschillende klantorders te verkrijgen.
Selecteer Sluiten om de tabbladen Invoeruitvoer voor Testen/Uitvoeren te sluiten.
Selecteer op de opdrachtbalk van het deelvenster Orderdetails de optie Functie-URL ophalen. Merk op dat de URL de naam van de functie binnen het domein azurewebsites.net is.
Een functie toevoegen aan een bestaande API
In deze stap voegen we de functie Order toe aan de API Management-resource die we in de vorige oefening hebben gemaakt. In die oefening hebben we de API Management-interface gebruikt vanuit de interface van de functie-app. Hier navigeren we naar ons API Management-exemplaar via het resourcemenu van Azure Portal, om te laten zien dat beide benaderingen beschikbaar zijn.
Selecteer Alle resources in het menu Van Azure-resources of op de startpagina. Het deelvenster Alle resources wordt weergegeven.
Sorteer de resources op type en selecteer vervolgens de OnlineStore API Management-service. De API Management-service voor OnlineStore wordt weergegeven.
Selecteer API's in het menu onder API's. In het deelvenster API's ziet u opties voor het definiëren van een nieuwe API.
Selecteer onder Maken vanuit Azure-resource de optie Functie-app.
Het dialoogvenster Maken vanuit functie-app wordt weergegeven.
Als u uw functie-app wilt selecteren, selecteert u Bladeren. Het deelvenster Azure Functions importeren wordt weergegeven.
Selecteer Selecteren in het veld Vereiste instellingen configureren.
(.. /media/5-import-azure-function-app-03-expanded.png#lightbox)
Het deelvenster Azure-functie-app selecteren wordt weergegeven.
Selecteer OrderFunctionNNNNNNNNNN en selecteer vervolgens Selecteren. Het deelvenster Azure Functions importeren wordt opnieuw weergegeven met uw OrderDetails-functie-app geconfigureerd.
Zorg ervoor dat OrderDetails is ingeschakeld en selecteer vervolgens onderaan de pagina Selecteren om de functie toe te voegen. Het dialoogvenster Maken vanuit functie-app wordt weergegeven.
Vervang de waarde in het achtervoegsel van de API-URL door orders. U ziet hoe deze wijziging de basis-URL bijwerken. Selecteer Maken om uw API te maken.
De OnlineStore API Management-service geeft het tabblad Ontwerpen weer met alle beschikbare API's (GET, POST) voor OrderDetails.
Het eindpunt voor OnlineStore-orders in de portal testen
Nu we OrderDetails aan onze API hebben toegevoegd, gaan we deze testen met behulp van de API Management-hulpprogramma's in Azure Portal.
Selecteer op het tabblad Ontwerp van API's van OrderFunctionNNNNN onder Alle bewerkingen GET OrderDetails en selecteer vervolgens het tabblad Testen.
Selecteer in de sectie Queryparameters de optie Parameter toevoegen en voer de naam in het veld NAAM en Chiba en in het veld WAARDE in. Selecteer Verzenden.
Op het tabblad HTTP-antwoordbericht ziet u dat de HTTP-aanvraag is geslaagd (HTTP/1.1/ 200 OK), samen met een JSON-object met een order-id, samen met de klantnaam, de totale prijs van de order en de verzendstatus.
Schuif omhoog naar de sectie HTTP-aanvraag . U ziet dat de aanvraag is verzonden naar een subdomein en submap binnen het azure-api.net domein. Deze locatie verschilt van het azurewebsites.net hostdomein.
De gecombineerde API testen
We kunnen het opdrachtregelprogramma curl
gebruiken om aanvragen naar onze API te verzenden. cURL is ideaal omdat we de juiste abonnementssleutel met een aanvraag kunnen opnemen. Een aanvraag heeft ook de locatie nodig van de API, die wordt gehost in Azure API Management en in dit geval bestaat uit de functies Producten en Orders.
Selecteer Alle resources in het menu van de Azure-resource of vanuit de startpagina.
Sorteer resources op type en selecteer vervolgens de OnlineStore API Management-service. De API Management-service voor OnlineStore wordt weergegeven.
Beweeg in de sectie Essentials de muisaanwijzer over de gateway-URL en selecteer het pictogram Kopiëren naar klembord .
In De Azure Cloud Shell aan de rechterkant kunnen enkele variabelen worden gedefinieerd. Voer de volgende opdracht uit, waarbij u de
<paste URL here>
tijdelijke aanduiding vervangt door de URL-waarde die u naar het klembord hebt gekopieerd en druk op Enter. Deze waarde definieert de gatewayvariabele.GATEWAY_URL=<paste URL here>
Schuif in Azure in het menu van de OnlineStore API Management-service omlaag naar DE API en selecteer Abonnementen. Het deelvenster Abonnementen wordt weergegeven voor uw OnlineStore API Management-exemplaar.
Voor het ingebouwde abonnement voor alle toegang selecteert u het beletselteken ... helemaal rechts van die rij en selecteert u Sleutels weergeven/verbergen in het contextmenu. De primaire sleutel en secundaire sleutel voor de API worden weergegeven.
Selecteer in het veld Primaire sleutel het pictogram Kopiëren naar klembord .
Voer in Cloud Shell de volgende opdracht uit, vervang de tijdelijke aanduiding door de waarde op het klembord en druk op Enter.
SUB_KEY=<paste key here>
Nu kunnen we details van een order en een product aanvragen door een query uit te voeren op dezelfde API Management-service:
Als u details wilt aanvragen voor een klant met de naam Henri, voert u de volgende opdracht uit in Cloud Shell:
curl -X GET "$GATEWAY_URL/orders/OrderDetails?name=Henri" -H "Ocp-Apim-Subscription-Key:$SUB_KEY"
Het antwoord bevat een JSON-codeblok met ordergegevens die aangeven dat Order 56224 is verzonden naar Pascale Henri. U kunt de opdracht ook proberen met de namen Chiba en Barriclough voor verschillende resultaten.
Als u de details van een product met een id van 2 wilt aanvragen, voert u de volgende opdracht uit in Cloud Shell:
curl -X GET "$GATEWAY_URL/products/ProductDetails?id=2" -H "Ocp-Apim-Subscription-Key:$SUB_KEY"
Het antwoord bevat een JSON-codeblok met de details van een product. U kunt de opdracht ook proberen met id-waarden van 1 en 3 voor verschillende resultaten.
U ziet dat beide functies nu kunnen worden aangeroepen via eindpunten binnen het azure-api.net-domein (zoals gedefinieerd door de GATEWAY_URL), het domein dat wordt gebruikt door Azure API Management. In andere Learn-modules leert u hoe u beleidsregels, beveiligingsinstellingen, externe caches en andere functies toepast op de functies in een API Management Gateway. Een gateway biedt u een centraal besturingspunt, waar u meerdere microservices kunt beheren zonder de bijbehorende code te wijzigen.