Oefening: typen in- en uitvoerbindingen verkennen

Voltooid

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.

Screenshot of Code and Test pane showing default code for HTTP trigger function template.

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'.

Screenshot of Code and Test pane showing default code for HTTP trigger function template.

De parameter Request is de triggerbinding en de parameter Response is de uitvoerbinding.

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.

  1. Meld u aan bij Azure Portal met het account waarmee u de sandbox hebt geactiveerd.

  2. Selecteer een resource maken in het resourcemenu of op de startpagina. Het deelvenster Een resource maken wordt weergegeven.

  3. 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.

  4. Selecteer Maken. Het deelvenster Functie-app maken wordt weergegeven.

  5. Voer op het tabblad Basisinformatie de volgende waarden in voor elke instelling.

    Instelling Weergegeven als Omschrijving
    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 -.
    Wilt u code of containerinstallatiekopieën implementeren? Code Optie voor het publiceren van codebestanden of een Docker-container.
    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.
    Region Selecteer een locatie in de vervolgkeuzelijst Selecteer de dichtstbijzijnde regio.
  6. 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.

  7. 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 .

  8. Wanneer de implementatie van uw functie is voltooid, selecteert u Ga naar de resource. Het deelvenster Overzicht voor uw functie-app wordt weergegeven.

  1. Meld u aan bij Azure Portal met het account waarmee u de sandbox hebt geactiveerd.

  2. Selecteer een resource maken in het resourcemenu of op de startpagina. Het deelvenster Een resource maken wordt weergegeven.

  3. Selecteer Compute in het menu Een resource maken en zoek en selecteer functie-app. Mogelijk moet u zoeken naar functie-app in het venster Search-service s en Marketplace.

  4. Selecteer Maken. Het deelvenster Functie-app maken wordt weergegeven.

  5. Voer op het tabblad Basisinformatie de volgende waarden in voor elke instelling.

    Instelling Weergegeven als Omschrijving
    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 -.
    Wilt u code of containerinstallatiekopieën implementeren? Code Optie voor het publiceren van codebestanden of een Docker-container.
    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.
    Region Selecteer een locatie in de vervolgkeuzelijst Selecteer de dichtstbijzijnde regio.
  6. 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.

  7. 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 .

  8. Wanneer de implementatie van uw functie is voltooid, selecteert u Ga naar de resource. Het deelvenster Overzicht voor uw functie-app wordt weergegeven.

Fooi

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 wordt geactiveerd door een trigger. In deze module definiëren we een HTTP-trigger met behulp van een vooraf gedefinieerde sjabloon.

  1. Selecteer de knop Maken in Azure Portal op het tabblad Functions op de pagina Overzicht .

  2. Het deelvenster Functie maken wordt weergegeven.

    Screenshot for the Create Function pane.

  3. Selecteer in de sectie Een sjabloon selecteren de HTTP-triggersjabloon .

  4. Bevestig in de sectie Sjabloondetails de volgende instellingen.

    • Accepteer in het tekstvak Nieuwe functie 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.

    • Accepteer de standaardwaardefunctie in het tekstvak Autorisatieniveau. 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 zodra deze is gemaakt.

  5. Selecteer Maken. Wanneer de triggerfunctie is doorgegeven aan uw functie-app, wordt het deelvenster Functions voor uw functie-app weergegeven, met httpTrigger1.

  6. Selecteer Functie-URL ophalen in de opdrachtbalk. Het dialoogvenster Functie-URL ophalen wordt weergegeven.

  7. 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.

  8. 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.
    
  9. 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

  10. 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.

    Illustration of default HTTP trigger, showing HTTP request and response binding parameters.

  11. 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 bestand index.js 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
        };
    }
    
  12. Laten we kort kijken naar het andere bestand van de functie: het config-bestand function.json . 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 httpTriggeren 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 wordt geactiveerd door een trigger. In deze module maken we een HTTP-trigger met behulp van een sjabloon.

  1. Selecteer de knop Maken in Azure Portal op het tabblad Functions op de pagina Overzicht .

  2. Het deelvenster Functie maken wordt weergegeven.

  3. Selecteer in de sectie Een sjabloon selecteren de HTTP-triggersjabloon .

  4. Bevestig in de sectie Sjabloondetails de volgende instellingen.

    • Accepteer in het tekstvak Nieuwe functie 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.

      Screenshot for the Add Function pane.

  5. Selecteer Maken. Het deelvenster HttpTrigger1 voor uw functie wordt weergegeven.

  6. Selecteer Functie-URL ophalen in de opdrachtbalk. Het dialoogvenster Functie-URL ophalen wordt weergegeven.

  7. 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.

  8. 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.
    
  9. 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

  10. 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.

    Code and Test pane for HTTP request showing response and respective binding parameters.

  11. 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
    })
    
  12. 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 type http. 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

  1. Selecteer Integratie in het menu Functie. Het deelvenster Integratie voor uw functie wordt weergegeven.

    U ziet dat we al een trigger en uitvoerbinding hebben 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.

    Screenshot of vertical flow diagram showing Trigger and Inputs leading to Function and Function leading to Outputs.

    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.

  2. 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.

    Screenshot of the Add input options.

    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.

  3. 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.

    Screenshot of the Add output options.

    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.

  1. Selecteer Integratie in het menu Functie. Het deelvenster Integratie voor uw functie wordt weergegeven.

    U ziet dat we al een trigger en uitvoerbinding hebben 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.

    Screenshot of horizontal flow diagram showing Trigger and Inputs leading to Function and Function leading to Outputs.

    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.

  2. 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.

    Screenshot of the Add input options.

    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.

  3. 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.

    Screenshot of the Add output options.

    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.

U hebt tot dusver 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.