Oefening: typen in- en uitvoerbindingen verkennen
In deze oefening maken we een functie die wordt uitgevoerd wanneer deze een HTTP-aanvraag ontvangt en op elke aanvraag reageert door een bericht te retourneren.
Bekijk de volgende afbeelding op hoog niveau van wat we gaan bouwen.
De parameter req
is de triggerbinding en de parameter res
is de uitvoerbinding. Het kan helpen om deze parameters te beschouwen als afkortingen voor 'aanvraag' en 'antwoord'.
Een functie-app maken
We gaan een functie-app maken die we in deze module kunnen gebruiken. Met een functie-app kunt u functies groeperen in een logische eenheid, zodat u resources eenvoudiger kunt beheren, implementeren en delen.
Meld u aan bij Azure Portal met het account waarmee u de sandbox hebt geactiveerd.
Selecteer een resource maken in het resourcemenu of op de startpagina. Het deelvenster Een resource maken wordt weergegeven.
Selecteer Compute in het menu Een resource maken en selecteer functie-app in de lijst met resultaten. Mogelijk moet u zoeken naar functie-app in het venster Search-service s en Marketplace.
Selecteer Verbruik en selecteer vervolgens de knop Selecteren . Het deelvenster Functie-app maken wordt weergegeven.
Voer op het tabblad Basisinformatie de volgende waarden in voor elke instelling.
Instelling Weergegeven als Beschrijving Projectgegevens Abonnement Concierge-abonnement Het Azure-abonnement dat u voor deze oefening wilt gebruiken. Resourcegroep Selecteer in de vervolgkeuzelijst [naam sandbox-resourcegroep] De resourcegroep voor de sandbox. Exemplaardetails Functions App-naam Voer een wereldwijd unieke naam in Deze naam identificeert uw nieuwe functie-app. Geldige tekens zijn a-z
,0-9
en-
.Runtimestack Selecteer Node.js in de vervolgkeuzelijst De voorbeeldcode in deze module is geschreven in JavaScript. Versie Standaard accepteren De standaardwaarde is voldoende voor deze oefening. Regio Selecteer een locatie in de vervolgkeuzelijst Selecteer de dichtstbijzijnde regio. Accepteer de standaardwaarden voor alle andere opties. Selecteer Beoordelen en maken om uw instellingen te valideren en selecteer vervolgens Maken om de functie-app in te richten en te implementeren.
De implementatie kan enige tijd in beslag nemen. Selecteer in de algemene besturingselementen naast uw accountnaam het pictogram Meldingen en kijk of het bericht Implementatie is voltooid .
Wanneer de implementatie van uw functie is voltooid, selecteert u Ga naar de resource. Het deelvenster Overzicht voor uw functie-app wordt weergegeven.
Meld u aan bij Azure Portal met het account waarmee u de sandbox hebt geactiveerd.
Selecteer een resource maken in het resourcemenu of op de startpagina. Het deelvenster Een resource maken wordt weergegeven.
Selecteer Compute in het menu Een resource maken en selecteer functie-app in de lijst met resultaten. Mogelijk moet u zoeken naar functie-app in het venster Search-service s en Marketplace.
Selecteer Verbruik en selecteer vervolgens de knop Selecteren . Het deelvenster Functie-app maken wordt weergegeven.
Voer op het tabblad Basisinformatie de volgende waarden in voor elke instelling.
Instelling Weergegeven als Beschrijving Projectgegevens Abonnement Concierge-abonnement Het Azure-abonnement dat u voor deze oefening wilt gebruiken. Resourcegroep Selecteer in de vervolgkeuzelijst [naam sandbox-resourcegroep] De resourcegroep voor de sandbox. Exemplaardetails Functions App-naam Voer een wereldwijd unieke naam in Deze naam identificeert uw nieuwe functie-app. Geldige tekens zijn a-z
,0-9
en-
.Runtimestack Selecteer PowerShell Core in de vervolgkeuzelijst De voorbeeldcode voor deze module is geschreven in PowerShell. Versie Standaard accepteren De standaardwaarde is voldoende voor deze oefening. Regio Selecteer een locatie in de vervolgkeuzelijst Selecteer de dichtstbijzijnde regio. Accepteer de standaardwaarden voor alle andere opties. Selecteer Beoordelen en maken om uw invoer te valideren en selecteer vervolgens Maken om de functie-app in te richten en te implementeren.
De implementatie kan enige tijd in beslag nemen. Selecteer in de algemene besturingselementen naast uw accountnaam het pictogram Meldingen en kijk of het bericht Implementatie is voltooid .
Wanneer de implementatie van uw functie is voltooid, selecteert u Ga naar de resource. Het deelvenster Overzicht voor uw functie-app wordt weergegeven.
Tip
Als u problemen ondervindt bij het vinden van uw functie-app in Azure Portal, leert u hoe u functie-apps toevoegt aan uw favorieten in Azure Portal.
Een functie maken
Nu we een functie-app hebben, is het tijd om een functie te maken. Elke functie heeft een trigger waarmee deze wordt geactiveerd. In deze module definiëren we een HTTP-trigger met behulp van een vooraf gedefinieerde sjabloon.
Selecteer de knop Functie maken onder Maken in Azure Portal op het tabblad Functions op de pagina Overzicht .
Het deelvenster Functie maken wordt weergegeven.
Selecteer in de sectie Een sjabloon selecteren de HTTP-triggersjabloon en selecteer vervolgens Volgende.
Bevestig in de sectie Sjabloondetails de volgende instellingen.
Gebruik in het tekstvak Functienaam de standaardnaam HttpTrigger1. Azure maakt automatisch unieke namen voor de functies die u maakt. U kunt een andere naam kiezen, maar vergeet niet om betekenisvolle namen te gebruiken.
Gebruik in het tekstvak Autorisatieniveau de standaardwaardefunctie. Het autorisatieniveau bepaalt welke sleutels aanwezig moeten zijn in de aanvraag om deze uit te voeren. Voor het autorisatieniveau van de functie is een functiespecifieke sleutel vereist, die we kunnen vinden nadat de functie is gemaakt.
Selecteer Maken. Wanneer de triggerfunctie wordt doorgegeven aan uw functie-app, wordt het deelvenster Functions voor uw functie-app weergegeven, met httpTrigger1.
Selecteer Functie-URL ophalen in de opdrachtbalk. Het dialoogvenster Functie-URL ophalen wordt weergegeven.
Selecteer in de vervolgkeuzelijst de standaardwaarde (functietoets), selecteer het pictogram Kopiëren naar klembord aan het einde van de URL en selecteer vervolgens OK om het dialoogvenster te sluiten.
Plak in de adresbalk van een nieuw browsertabblad de functie-URL die u hebt gekopieerd. Druk op Enter om de aanvraag in uw browser uit te voeren. Het antwoord kan enkele minuten duren wanneer de functie-app wordt geïnitialiseerd. Als u een time-outfout ontvangt, moet u vernieuwen om de aanvraag opnieuw te verzenden.
Wanneer de functie reageert, ziet u uitvoer die lijkt op het volgende voorbeeld dat in uw browser wordt weergegeven.
This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.
Voeg de volgende querytekenreeks
&name=Joe
toe aan het einde van de URL. De resulterende URL moet er ongeveer uitzien als in het volgende voorbeeld:https://example.azurewebsites.net/api/HttpTrigger1?code=AbCdEfGhIjKlMnOpQrStUvWxYz==&name=Joe
Druk op Enter om de aanvraag in uw browser uit te voeren. Wanneer de functie reageert, ziet u uitvoer die lijkt op het volgende voorbeeld dat in uw browser wordt weergegeven.
Hello, Joe. This HTTP triggered function executed successfully.
Zoals u in deze oefening tot nu toe kunt zien, moet u een trigger definiëren wanneer u een functie maakt. Elke functie heeft één trigger. In dit voorbeeld gebruiken we een HTTP-trigger. Dat betekent dat de functie wordt gestart bij ontvangst van een HTTP-aanvraag. De standaard implementatie van de sjabloon, weergegeven in JavaScript in de volgende schermopname, retourneert de waarde van de parameternaam die zich in de querytekenreeks of hoofdtekst van de aanvraag bevond. Als er geen querytekenreeks is opgegeven, reageert de functie met een bericht waarin wordt gevraagd wie een naamwaarde aanroept.
Selecteer Code + Test in azure Portal in het menu Functie.
Het deelvenster Code + Test voor uw functie wordt weergegeven en geeft de inhoud van het index.js bestand weer. De standaard JavaScript-code voor uw functie moet er ongeveer uitzien als in het volgende voorbeeld.
module.exports = async function (context, req) { context.log('JavaScript HTTP trigger function processed a request.'); const name = (req.query.name || (req.body && req.body.name)); const responseMessage = name ? "Hello, " + name + ". This HTTP triggered function executed successfully." : "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."; context.res = { // status: 200, /* Defaults to 200 */ body: responseMessage }; }
Laten we het andere bestand van de functie, het configuratiebestand function.json, eens even onder de loep nemen. Open dit bestand door function.json te selecteren in de vervolgkeuzelijst in het bestandspad boven het codeblok. De configuratiegegevens worden vermeld in de volgende JSON-weergave.
{ "bindings": [ { "authLevel": "function", "type": "httpTrigger", "direction": "in", "name": "req", "methods": [ "get", "post" ] }, { "type": "http", "direction": "out", "name": "res" } ] }
Deze functie heeft een triggerbinding met de naam req van het type
httpTrigger
en een uitvoerbinding met de naam res van het typehttp
.
In de voorgaande code voor onze functie hebben we gezien dat we toegang hebben tot de nettolading van de binnenkomende HTTP-aanvraag via de req-parameter . Op dezelfde manier hebben we een HTTP-antwoord verzonden door de parameter res in te stellen. Met bindingen wordt ons het zware werk uit handen genomen.
Nu we een functie-app hebben, gaan we een functie maken. Elke functie heeft een trigger waarmee deze wordt geactiveerd. In deze module maken we een HTTP-trigger met behulp van een sjabloon.
Selecteer de knop Functie maken onder Maken in Azure Portal op het tabblad Functions op de pagina Overzicht .
Het deelvenster Functie maken wordt weergegeven.
Selecteer in de sectie Een sjabloon selecteren de HTTP-triggersjabloon en selecteer vervolgens Volgende.
Bevestig in de sectie Sjabloondetails de volgende instellingen.
Gebruik in het tekstvak Functienaam de standaardnaam HttpTrigger1. Azure biedt automatisch een unieke naam wanneer u een functie maakt. U kunt een andere naam kiezen, maar vergeet niet om betekenisvolle namen te gebruiken.
Accepteer de standaardwaardefunctie in het tekstvak Autorisatieniveau. Het autorisatieniveau bepaalt welke sleutels aanwezig moeten zijn in de aanvraag om deze uit te voeren. Functie vereist een functiespecifieke sleutel.
Selecteer Maken. Het deelvenster HttpTrigger1 voor uw functie wordt weergegeven.
Selecteer Functie-URL ophalen in de opdrachtbalk. Het dialoogvenster Functie-URL ophalen wordt weergegeven.
Selecteer de standaardwaarde (functietoets) in de vervolgkeuzelijst en selecteer vervolgens het pictogram Kopiëren naar klembord aan het einde van de URL en selecteer VERVOLGENS OK om het dialoogvenster te sluiten.
Plak in de adresbalk van een nieuw browsertabblad de functie-URL die u hebt gekopieerd. Druk op Enter om de aanvraag in uw browser uit te voeren. Het antwoord kan enkele minuten duren wanneer de functie-app wordt geïnitialiseerd. Als u een time-outfout ontvangt, moet u vernieuwen om de aanvraag opnieuw te verzenden.
Wanneer de functie reageert, ziet u uitvoer die lijkt op het volgende voorbeeld dat in uw browser wordt weergegeven.
This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.
Voeg een querytekenreeks
&name=Joe
toe aan het einde van de URL. De resulterende URL moet er ongeveer uitzien als in het volgende voorbeeld:https://example.azurewebsites.net/api/HttpTrigger1?code=AbCdEfGhIjKlMnOpQrStUvWxYz==&name=Joe
Druk op Enter om de aanvraag in uw browser uit te voeren. Wanneer de functie reageert, ziet u uitvoer die lijkt op het volgende voorbeeld dat in uw browser wordt weergegeven.
Hello, Joe. This HTTP triggered function executed successfully.
Zoals u in deze oefening tot nu toe kunt zien, moet u een trigger definiëren wanneer u een functie maakt. Elke functie heeft één trigger. In dit voorbeeld gebruiken we een HTTP-trigger. Dat betekent dat de functie wordt gestart bij ontvangst van een HTTP-aanvraag. De standaard implementatie van de sjabloon, weergegeven in PowerShell in de volgende schermopname, gebruikt de
Push-OutputBinding
cmdlet om te reageren met de waarde van de parameternaam die deel uitmaakte van de querytekenreeks of hoofdtekst van de aanvraag. Als er geen tekenreeks is opgegeven, reageert de functie met een bericht waarin aan de aanvrager wordt gevraagd om een waarde op te geven voor name.Selecteer Code + Test in het menu Functie. Het deelvenster Code + Test voor uw functie wordt weergegeven en de inhoud van het bestand run.ps1 wordt weergegeven.
De standaard PowerShell-code voor uw functie moet er ongeveer uitzien als in het volgende voorbeeld.
using namespace System.Net # Input bindings are passed in via param block. param($Request, $TriggerMetadata) # Write to the Azure Functions log stream. Write-Host "PowerShell HTTP trigger function processed a request." # Interact with query parameters or the body of the request. $name = $Request.Query.Name if (-not $name) { $name = $Request.Body.Name } $body = "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response." if ($name) { $body = "Hello, $name. This HTTP triggered function executed successfully." } # Associate values to output bindings by calling 'Push-OutputBinding'. Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{ StatusCode = [HttpStatusCode]::OK Body = $body })
Laten we het andere bestand van de functie, het configuratiebestand function.json, eens even onder de loep nemen. Open dit bestand door function.json te selecteren in de vervolgkeuzelijst van het bestandspad. De configuratiegegevens worden vermeld in de volgende JSON-weergave.
{ "bindings": [ { "authLevel": "function", "type": "httpTrigger", "direction": "in", "name": "Request", "methods": [ "get", "post" ] }, { "type": "http", "direction": "out", "name": "Response" } ] }
Zoals u ziet, heeft deze functie een triggerbinding met de naam Request van het type
httpTrigger
en een uitvoerbinding met de naam Response van het typehttp
. In de voorgaande code voor onze functie hebben we gezien hoe we toegang hebben tot de nettolading van de binnenkomende HTTP-aanvraag via de aanvraagparameter . Op dezelfde manier hebben we een HTTP-antwoord verzonden door de antwoordparameter in te stellen. Met bindingen wordt ons het lastige werk enigszins uit handen genomen.
Typen bindingen verkennen
Selecteer Integratie in het menu Functie. Het deelvenster Integratie voor uw functie wordt weergegeven.
U ziet dat er al een trigger en een uitvoerbinding zijn gedefinieerd, zoals wordt weergegeven in de volgende afbeelding. De integratieweergave wordt aangepast aan de beste pasvorm voor de breedte en hoogte van uw scherm. Dezelfde informatie kan horizontaal worden weergegeven als uw scherm breed genoeg is.
U kunt ook zien dat er niet meer dan één trigger kan worden toegevoegd. Als u een trigger voor een functie wilt wijzigen, moet u de trigger verwijderen en een nieuwe maken. Met de secties Invoer en Uitvoer kunt u echter meer dan één binding toevoegen, zodat de aanvraag meer dan één invoerwaarde kan accepteren en meer dan één uitvoerwaarde kan retourneren.
Selecteer Invoer toevoegen in het vak Invoer. Het deelvenster Invoer maken wordt weergegeven. Selecteer de vervolgkeuzelijst voor bindingstype om een lijst met alle mogelijke invoerbindingstypen weer te geven.
Neem even de tijd om na te gaan hoe u elk van deze invoerbindingen in een oplossing kunt gebruiken.
Verderop in deze module voegen we invoerbindingen toe, maar voorlopig selecteert u Annuleren om dit deelvenster te sluiten.
Selecteer Uitvoer toevoegen in het vak Uitvoer. Het deelvenster Uitvoer maken wordt weergegeven. Selecteer de vervolgkeuzelijst voor bindingstype om een lijst weer te geven met alle mogelijke typen uitvoerbindingen.
Zoals u ziet, kunt u kiezen uit verschillende typen uitvoerbindingen. Verderop in deze module voegen we uitvoerbindingen toe, maar voorlopig selecteert u Annuleren om dit deelvenster te sluiten.
Selecteer Integratie in het menu Functie. Het deelvenster Integratie voor uw functie wordt weergegeven.
U ziet dat er al een trigger en een uitvoerbinding zijn gedefinieerd, zoals wordt weergegeven in de volgende afbeelding. De integratieweergave wordt aangepast aan de beste pasvorm voor de breedte en hoogte van uw scherm. Dezelfde informatie kan verticaal worden weergegeven als uw scherm niet breed genoeg is.
U kunt ook zien dat er niet meer dan één trigger kan worden toegevoegd. Als u de trigger voor een functie wilt wijzigen, moet u de trigger verwijderen en een nieuwe maken. Met de secties Invoer en Uitvoer kunt u echter meerdere bindingen toevoegen, zodat de functie meer dan één invoerwaarde kan accepteren en meer dan één uitvoerwaarde kan retourneren.
Selecteer Invoer toevoegen in het vak Invoer. Het deelvenster Invoer maken wordt weergegeven. Selecteer de vervolgkeuzelijst voor bindingstype om een lijst met alle mogelijke invoerbindingstypen weer te geven.
Neem even de tijd om na te gaan hoe u elk van deze invoerbindingen in een oplossing kunt gebruiken. Er zijn veel mogelijkheden om uit te kiezen.
Verderop in deze module voegen we invoerbindingen toe, maar voorlopig selecteert u Annuleren om dit deelvenster te sluiten.
Selecteer Uitvoer toevoegen in het vak Uitvoer. Het deelvenster Uitvoer maken wordt weergegeven. Selecteer de vervolgkeuzelijst voor bindingstype om een lijst weer te geven met alle mogelijke typen uitvoerbindingen.
Zoals u ziet, kunt u kiezen uit verschillende typen uitvoerbindingen. Verderop in deze module voegen we uitvoerbindingen toe, maar voorlopig selecteert u Annuleren om dit deelvenster te sluiten.
Tot nu toe hebben we geleerd hoe u een functie-app maakt en er een functie aan toevoegt. We hebben een eenvoudige functie in actie gezien, die wordt uitgevoerd wanneer een HTTP-aanvraag wordt gedaan. We hebben ook de Azure-portal en de typen invoer- en uitvoerbindingen verkend die beschikbaar zijn voor functies. In de volgende eenheid gebruiken we een invoerbinding om tekst uit een database te lezen.