Övning: Utforska indata- och utdatabindningstyper

Slutförd

I den här övningen skapar vi en funktion som körs när den tar emot en HTTP-begäran och svarar på varje begäran genom att returnera ett meddelande.

Se följande illustration på hög nivå av vad vi ska skapa.

Skärmbild av fönstret Kod och test som visar standardkoden för http-utlösarfunktionsmallen.

Parametern req är utlösarbindningen och parametern res är utdatabindningen. Det kan hjälpa att tänka på dessa parametrar som förkortningar för "begäran" och "svar".

Skärmbild av fönstret Kod och test som visar standardkoden för http-utlösarfunktionsmallen.

Parametern Request är utlösarbindningen och parametern Response är utdatabindningen.

Skapa en funktionsapp

Nu ska vi skapa en funktionsapp som vi kan använda i hela den här modulen. I en funktionsapp kan du gruppera funktioner som en logisk enhet så att det blir enklare att hantera, distribuera och dela resurser.

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

  2. På resursmenyn eller på sidan Start väljer du Skapa en resurs. Fönstret Skapa en resurs visas.

  3. I menyn Skapa en resurs väljer du Beräkning och i resultatlistan väljer du Funktionsapp. Du kan behöva söka efter funktionsappen i fönstret tjänsten Search s och Marketplace.

  4. Välj Förbrukning och välj sedan knappen Välj . Fönstret Skapa funktionsapp visas.

  5. På fliken Grundläggande anger du följande värden för varje inställning.

    Inställning Värde beskrivning
    Projektinformation
    Prenumeration Concierge-prenumeration Den Azure-prenumeration som du vill använda för den här övningen.
    Resursgrupp I listrutan väljer du [resursgruppsnamn för sandbox-miljö] Resursgruppen för sandbox-miljön.
    Instansinformation
    Funktionsappens namn Ange ett globalt unikt namn Det här namnet identifierar din nya funktionsapp. Giltiga tecken är a-z, 0-9 och -.
    CLR-stack I listrutan väljer du Node.js Exempelkoden i den här modulen är skriven i JavaScript.
    Version Acceptera standard Standardvärdet är tillräckligt för den här övningen.
    Region I listrutan väljer du en plats Välj den region som är närmast dig.
  6. Acceptera standardinställningarna för alla andra alternativ. Välj Granska + skapa för att verifiera inställningarna och välj sedan Skapa för att etablera och distribuera funktionsappen.

  7. Distributionen kan ta lite tid. I de globala kontrollerna bredvid ditt kontonamn väljer du ikonen Meddelanden och tittar efter ett meddelande om att distributionen lyckades.

  8. När funktionsdistributionen är klar väljer du Gå till resurs. Fönstret Översikt för funktionsappen visas.

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

  2. På resursmenyn eller på sidan Start väljer du Skapa en resurs. Fönstret Skapa en resurs visas.

  3. I menyn Skapa en resurs väljer du Beräkning och i resultatlistan väljer du Funktionsapp. Du kan behöva söka efter funktionsappen i fönstret tjänsten Search s och Marketplace.

  4. Välj Förbrukning och välj sedan knappen Välj . Fönstret Skapa funktionsapp visas.

  5. På fliken Grundläggande anger du följande värden för varje inställning.

    Inställning Värde beskrivning
    Projektinformation
    Prenumeration Concierge-prenumeration Den Azure-prenumeration som du vill använda för den här övningen.
    Resursgrupp I listrutan väljer du [resursgruppsnamn för sandbox-miljö] Resursgruppen för sandbox-miljön.
    Instansinformation
    Funktionsappens namn Ange ett globalt unikt namn Det här namnet identifierar din nya funktionsapp. Giltiga tecken är a-z, 0-9 och -.
    CLR-stack I listrutan väljer du PowerShell Core Exempelkoden för den här modulen är skriven i PowerShell.
    Version Acceptera standard Standardvärdet är tillräckligt för den här övningen.
    Region I listrutan väljer du en plats Välj den region som är närmast dig.
  6. Acceptera standardinställningarna för alla andra alternativ. Välj Granska + skapa för att verifiera dina indata och välj sedan Skapa för att etablera och distribuera funktionsappen.

  7. Distributionen kan ta lite tid. I de globala kontrollerna bredvid ditt kontonamn väljer du ikonen Meddelanden och tittar efter ett meddelande om att distributionen lyckades.

  8. När funktionsdistributionen är klar väljer du Gå till resurs. Fönstret Översikt för funktionsappen visas.

Dricks

Om du har problem med att hitta funktionsappen i Azure Portal kan du lära dig hur du lägger till funktionsappar till dina favoriter i Azure Portal.

Skapa en funktion

Nu när vi har en funktionsapp är det dags att skapa en funktion. Varje funktion har en utlösare som aktiverar den. I den här modulen definierar vi en HTTP-utlösare med hjälp av en fördefinierad mall.

  1. Välj knappen Skapa funktion under Skapa i Azure Portalfliken Funktioner på sidan Översikt.

  2. Fönstret Skapa funktion visas.

    Skärmbild för fönstret Skapa funktion.

  3. I avsnittet Välj en mall väljer du mallen HTTP-utlösare och väljer sedan Nästa.

  4. Bekräfta följande inställningar i avsnittet Mallinformation.

    • I textrutan Funktionsnamn använder du standardnamnet HttpTrigger1. Azure skapar automatiskt unika namn för de funktioner som du skapar. Du kan välja ett annat namn, men kom ihåg att använda meningsfulla namn.

    • I textrutan Auktoriseringsnivå använder du standardvärdet Funktion. Auktoriseringsnivån avgör vilka nycklar som måste finnas på begäran för att den ska kunna köras. Funktionsauktoriseringsnivån kräver en funktionsspecifik nyckel som vi kan hitta när funktionen har skapats.

  5. Välj Skapa. När utlösarfunktionen sprids till din funktionsapp visas funktionsappens funktionsfönster med httptrigger1.

  6. I kommandofältet väljer du Hämta funktions-URL. Dialogrutan Hämta funktions-URL visas.

  7. I listrutan väljer du standard (funktionsnyckel), väljer ikonen Kopiera till Urklipp i slutet av URL:en och väljer sedan OK för att stänga dialogrutan.

  8. I adressfältet på en ny webbläsarflik klistrar du in funktions-URL:en som du kopierade. Tryck på Retur för att köra begäran i webbläsaren. Svaret kan ta några minuter när funktionsappen initieras. Om du får ett timeout-fel uppdaterar du för att skicka begäran igen.

    När funktionen svarar bör du se utdata som liknar följande exempel som visas i webbläsaren.

    This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.
    
  9. Lägg till följande frågesträng &name=Joe i slutet av URL:en. Den resulterande URL:en bör likna följande exempel:

    https://example.azurewebsites.net/api/HttpTrigger1?code=AbCdEfGhIjKlMnOpQrStUvWxYz==&name=Joe

  10. Tryck på Retur för att köra begäran i webbläsaren. När funktionen svarar bör du se utdata som liknar följande exempel som visas i webbläsaren.

    Hello, Joe. This HTTP triggered function executed successfully.
    

    Som du kan se i den här övningen hittills måste du definiera en utlösare när du skapar en funktion. Varje funktion har en enda utlösare. I det här exemplet använder vi en HTTP-utlösare, vilket betyder att vår funktion startar när den får en HTTP-begäran. Standardimplementeringen från mallen, som visas i JavaScript i följande skärmbild, returnerar värdet för parameternamnet som fanns i frågesträngen eller brödtexten i begäran. Om ingen frågesträng har angetts svarar funktionen med ett meddelande som ber den som anropar att ange ett namnvärde.

    Bild av http-standardutlösare som visar parametrar för HTTP-begäran och svarsbindning.

  11. I Azure Portal går du till funktionsmenyn och väljer Kod + Test.

    Fönstret Kod + test för funktionen visas och visar innehållet i din index.js-fil . JavaScript-standardkoden för din funktion bör likna följande exempel.

    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. Nu ska vi ta en snabb titt på funktionens andra fil, konfigurationsfilen function.json. Få åtkomst till den här filen genom att välja function.json i listrutan i filsökvägen ovanför kodblocket. Konfigurationsdata visas i följande JSON-lista.

    {
        "bindings": [
        {
            "authLevel": "function",
            "type": "httpTrigger",
            "direction": "in",
            "name": "req",
            "methods": [
            "get",
            "post"
            ]
        },
        {
            "type": "http",
            "direction": "out",
            "name": "res"
        }
      ]
    }
    

    Den här funktionen har en utlösarbindning med namnet req av typen httpTriggeroch en utdatabindning med namnet res av typen http.

I föregående kod för vår funktion såg vi att vi kom åt nyttolasten för den inkommande HTTP-begäran via parametern req . På samma sätt skickade vi ett HTTP-svar genom att ange vår res-parameter . Bindningar tar verkligen hand om en del tungt jobb åt oss.

Nu när vi har en funktionsapp ska vi skapa en funktion. Varje funktion har en utlösare som aktiverar den. I den här modulen skapar vi en HTTP-utlösare med hjälp av en mall.

  1. Välj knappen Skapa funktion under Skapa i Azure Portalfliken Funktioner på sidan Översikt.

  2. Fönstret Skapa funktion visas.

  3. I avsnittet Välj en mall väljer du mallen HTTP-utlösare och väljer sedan Nästa.

  4. Bekräfta följande inställningar i avsnittet Mallinformation.

    • I textrutan Funktionsnamn använder du standardnamnet HttpTrigger1. Azure ger automatiskt ett unikt namn när du skapar en funktion. Du kan välja ett annat namn, men kom ihåg att använda meningsfulla namn.

    • I textrutan Auktoriseringsnivå godkänner du standardvärdet Funktion. Auktoriseringsnivån avgör vilka nycklar som måste finnas på begäran för att den ska kunna köras. Funktionen kräver en funktionsspecifik nyckel.

      Skärmbild för fönstret Lägg till funktion.

  5. Välj Skapa. Fönstret HttpTrigger1 för funktionen visas.

  6. I kommandofältet väljer du Hämta funktions-URL. Dialogrutan Hämta funktions-URL visas.

  7. Välj standard (funktionsnyckel) i listrutan, välj sedan ikonen Kopiera till Urklipp i slutet av URL:en och välj sedan OK för att stänga dialogrutan.

  8. I adressfältet på en ny webbläsarflik klistrar du in funktions-URL:en som du kopierade. Tryck på Retur för att köra begäran i webbläsaren. Svaret kan ta några minuter när funktionsappen initieras. Om du får ett timeout-fel uppdaterar du för att skicka begäran igen.

    När funktionen svarar bör du se utdata som liknar följande exempel som visas i webbläsaren.

    This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.
    
  9. Lägg till frågesträngen &name=Joe i slutet av URL:en. Den resulterande URL:en bör likna följande exempel:

    https://example.azurewebsites.net/api/HttpTrigger1?code=AbCdEfGhIjKlMnOpQrStUvWxYz==&name=Joe

  10. Tryck på Retur för att köra begäran i webbläsaren. När funktionen svarar bör du se utdata som liknar följande exempel som visas i webbläsaren.

    Hello, Joe. This HTTP triggered function executed successfully.
    

    Som du kan se i den här övningen hittills måste du definiera en utlösare när du skapar en funktion. Varje funktion har en enda utlösare. I det här exemplet använder vi en HTTP-utlösare, vilket betyder att vår funktion startar när den får en HTTP-begäran. Standardimplementeringen från mallen, som visas i PowerShell i följande skärmbild, använder cmdleten Push-OutputBinding för att svara med värdet för parameternamnet som ingick i frågesträngen eller brödtexten i begäran. Om ingen sträng har angetts svarar funktionen med ett meddelande som uppmanar den som anropar att ange ett namnvärde.

    Kod- och testfönstret för HTTP-begäran som visar svarsparametrar och respektive bindningsparametrar.

  11. På funktionsmenyn väljer du Kod + Test. Fönstret Kod + test för funktionen visas och visar innehållet i filen run.ps1 .

    PowerShell-standardkoden för din funktion bör likna följande exempel.

    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. Nu ska vi ta en snabb titt på funktionens andra fil, konfigurationsfilen function.json. Öppna den här filen genom att välja function.json från filsökvägens listruta. Konfigurationsdata visas i följande JSON-lista.

    {
      "bindings": [
        {
          "authLevel": "function",
          "type": "httpTrigger",
          "direction": "in",
          "name": "Request",
          "methods": [
            "get",
            "post"
          ]
        },
        {
          "type": "http",
          "direction": "out",
          "name": "Response"
        }
      ]
    }
    

    Som du ser har funktionen en bindning med namnet Request av typen httpTrigger och en utdatabindning med namnet Response av typen http. I föregående kod för vår funktion såg vi hur vi kom åt nyttolasten för den inkommande HTTP-begäran via parametern Begäran . På samma sätt skickade vi ett HTTP-svar bara genom att ange parametern Svar . Bindningar tar verkligen hand om en del tungt jobb åt oss.

Utforska bindningstyper

  1. I menyn Funktion väljer du Integrering. Fönstret Integrering för din funktion visas.

    Observera att en utlösare och en utdatabindning redan har definierats, enligt följande bild. Integreringsvyn justeras efter den bästa passformen för skärmens bredd och höjd. Samma information kan visas vågrätt om skärmen är tillräckligt bred.

    Skärmbild av det lodräta flödesdiagram som visar utlösare och indata som leder till funktion och funktion som leder till utdata.

    Du ser även att vi inte kan lägga till mer än en utlösare. Om du vill ändra en utlösare för en funktion måste du ta bort utlösaren och skapa en ny. I avsnitten Indata och Utdata kan du dock lägga till fler än en bindning, så att begäran kan acceptera mer än ett indatavärde och returnera mer än ett utdatavärde.

  2. I rutan Indata väljer du Lägg till indata. Fönstret Skapa indata visas. Välj listrutan för Bindningstyp för att visa en lista över alla möjliga typer av indatabindningar.

    Skärmbild av alternativen Lägg till indata.

    Fundera över hur du kan använda var och en av dessa indatabindningar i en lösning.

    Senare i den här modulen lägger vi till indatabindningar, men för tillfället väljer du Avbryt för att stänga det här fönstret.

  3. I rutan Utdata väljer du Lägg till utdata. Fönstret Skapa utdata visas. Välj listrutan för Bindningstyp för att visa en lista över alla möjliga typer av utdatabindningar.

    Skärmbild av alternativen Lägg till utdata.

    Som du ser har du flera typer av utdatabindningar. Senare i den här modulen lägger vi till utdatabindningar, men för tillfället väljer du Avbryt för att stänga det här fönstret.

  1. I menyn Funktion väljer du Integrering. Fönstret Integrering för din funktion visas.

    Observera att en utlösare och en utdatabindning redan har definierats, enligt följande bild. Integreringsvyn justeras efter den bästa passformen för skärmens bredd och höjd. Samma information kan visas lodrätt om skärmen inte är tillräckligt bred.

    Skärmbild av det vågräta flödesdiagram som visar utlösare och indata som leder till funktion och funktion som leder till utdata.

    Du ser även att vi inte kan lägga till mer än en utlösare. Om du vill ändra utlösaren för en funktion måste du ta bort utlösaren och skapa en ny. I avsnitten Indata och utdata kan du dock lägga till flera bindningar, så att funktionen kan acceptera mer än ett indatavärde och returnera mer än ett utdatavärde.

  2. I rutan Indata väljer du Lägg till indata. Fönstret Skapa indata visas. Välj listrutan för Bindningstyp för att visa en lista över alla möjliga typer av indatabindningar.

    Skärmbild av alternativen Lägg till indata.

    Fundera över hur du kan använda var och en av dessa indatabindningar i en lösning. Det finns många möjligheter att välja mellan.

    Senare i den här modulen lägger vi till indatabindningar, men för tillfället väljer du Avbryt för att stänga det här fönstret.

  3. I rutan Utdata väljer du Lägg till utdata. Fönstret Skapa utdata visas. Välj listrutan för Bindningstyp för att visa en lista över alla möjliga typer av utdatabindningar.

    Skärmbild av alternativen Lägg till utdata.

    Som du ser har du flera typer av utdatabindningar. Senare i den här modulen lägger vi till utdatabindningar, men för tillfället väljer du Avbryt för att stänga det här fönstret.

Hittills har vi lärt oss hur du skapar en funktionsapp och lägger till en funktion i den. Vi såg en enkel funktion i praktiken – en som körs när en HTTP-begäran görs. Vi har också utforskat Azure Portal och vilka typer av indata- och utdatabindningar som är tillgängliga för funktioner. I nästa utbildningsenhet använder vi en indatabindning för att läsa text från en databas.