Cvičení: Zkoumání typů vstupních a výstupních vazeb

Dokončeno

V tomto cvičení vytvoříme funkci, která se spustí, když obdrží požadavek HTTP, a odpoví na každý požadavek vrácením zprávy.

Podívejte se na následující základní obrázek toho, co budeme vytvářet.

Snímek obrazovky s podoknem Kód a test zobrazující výchozí kód šablony funkce triggeru HTTP

req Parametr je vazba triggeru a parametr res je výstupní vazba. Může vám pomoct tyto parametry představit jako zkratky pro "požadavek" a "odpověď".

Snímek obrazovky s podoknem Kód a test zobrazující výchozí kód šablony funkce triggeru HTTP

Request Parametr je vazba triggeru a parametr Response je výstupní vazba.

Vytvoření aplikace funkcí

Pojďme vytvořit aplikaci funkcí, kterou můžeme použít v celém tomto modulu. Aplikace funkcí umožňuje seskupit funkce jako logickou jednotku pro snadnější správu, nasazení a sdílení prostředků.

  1. Přihlaste se na Azure Portal. Použijte účet, který jste použili k aktivaci sandboxu.

  2. V nabídce prostředku nebo na domovské stránce vyberte Vytvořit prostředek. Zobrazí se podokno Vytvořit prostředek .

  3. V nabídce Vytvořit prostředek vyberte Compute a v seznamu výsledků vyberte Function App. V okně Search a marketplace možná budete muset vyhledat aplikaci Funkcí.

  4. Vyberte Consumption a pak vyberte tlačítko Vybrat . Zobrazí se podokno Vytvořit aplikaci funkcí.

  5. Na kartě Základy zadejte pro každé nastavení následující hodnoty.

    Nastavení Hodnota Popis
    Podrobnosti projektu
    Předplatné Předplatné Concierge Předplatné Azure, které chcete použít pro toto cvičení.
    Skupina prostředků V rozevíracím seznamu vyberte [název skupiny prostředků sandboxu] Skupina prostředků sandboxu.
    Podrobnosti o instanci
    Název aplikace funkcí Zadejte globálně jedinečný název. Tento název identifikuje novou aplikaci funkcí. Platné znaky jsou a-z, 0-9 a -.
    Zásobník modulu runtime V rozevíracím seznamu vyberte Node.js Ukázkový kód v tomto modulu je napsaný v JavaScriptu.
    Verze Přijmout výchozí Výchozí hodnota je dostatečná pro toto cvičení.
    Oblast V rozevíracím seznamu vyberte umístění. Vyberte nejbližší oblast.
  6. U všech ostatních možností přijměte výchozí hodnoty. Vyberte Zkontrolovat a vytvořit , abyste ověřili nastavení, a pak vyberte Vytvořit , abyste zřídili a nasadíte aplikaci funkcí.

  7. Nasazení může chvíli trvat. V globálních ovládacích prvcích vedle názvu vašeho účtu vyberte ikonu Oznámení a sledujte zprávu o úspěšném nasazení.

  8. Po dokončení nasazení funkce vyberte Přejít k prostředku. Zobrazí se podokno Přehled vaší aplikace funkcí.

  1. Pomocí stejného účtu, kterým jste aktivovali sandbox, se přihlaste na Azure Portal.

  2. V nabídce prostředku nebo na domovské stránce vyberte Vytvořit prostředek. Zobrazí se podokno Vytvořit prostředek .

  3. V nabídce Vytvořit prostředek vyberte Compute a v seznamu výsledků vyberte Function App. V okně Search a marketplace možná budete muset vyhledat aplikaci Funkcí.

  4. Vyberte Consumption a pak vyberte tlačítko Vybrat . Zobrazí se podokno Vytvořit aplikaci funkcí.

  5. Na kartě Základy zadejte pro každé nastavení následující hodnoty.

    Nastavení Hodnota Popis
    Podrobnosti projektu
    Předplatné Předplatné Concierge Předplatné Azure, které chcete použít pro toto cvičení.
    Skupina prostředků V rozevíracím seznamu vyberte [název skupiny prostředků sandboxu] Skupina prostředků sandboxu.
    Podrobnosti o instanci
    Název aplikace funkcí Zadejte globálně jedinečný název. Tento název identifikuje novou aplikaci funkcí. Platné znaky jsou a-z, 0-9 a -.
    Zásobník modulu runtime V rozevíracím seznamu vyberte PowerShell Core. Vzorový kód pro tento modul je napsaný v PowerShellu.
    Verze Přijmout výchozí Výchozí hodnota je dostatečná pro toto cvičení.
    Oblast V rozevíracím seznamu vyberte umístění. Vyberte nejbližší oblast.
  6. U všech ostatních možností přijměte výchozí hodnoty. Vyberte Zkontrolovat a vytvořit , abyste ověřili vstup, a pak vyberte Vytvořit , aby se zřídila a nasadí aplikace funkcí.

  7. Nasazení může chvíli trvat. V globálních ovládacích prvcích vedle názvu vašeho účtu vyberte ikonu Oznámení a sledujte zprávu o úspěšném nasazení.

  8. Po dokončení nasazení funkce vyberte Přejít k prostředku. Zobrazí se podokno Přehled vaší aplikace funkcí.

Tip

Pokud máte potíže s vyhledáním aplikace funkcí na webu Azure Portal, zjistěte, jak přidat aplikace funkcí do oblíbených položek na webu Azure Portal.

Vytvoření funkce

Když teď máme aplikaci funkcí, je načase vytvořit funkci. Každá funkce je aktivována triggerem. V tomto modulu definujeme trigger HTTP pomocí předdefinované šablony.

  1. V části Vytvořit na webu Azure Portalna kartě Funkce na stránce Přehled vyberte tlačítko Vytvořit funkci.

  2. Zobrazí se podokno Vytvořit funkci .

    Snímek obrazovky s podoknem Vytvořit funkci

  3. V části Vybrat šablonu vyberte šablonu triggeruHTTP a pak vyberte Další.

  4. V části Podrobnosti šablony potvrďte následující nastavení.

    • Do textového pole Název funkce přijměte výchozí název HttpTrigger1. Azure automaticky vytvoří jedinečné názvy pro funkce, které vytvoříte. Můžete zvolit jiný název, ale nezapomeňte použít smysluplné názvy.

    • V textovém poli Úroveň autorizace přijměte výchozí hodnotu Funkce. Úroveň autorizace určuje, jaké klíče musí být v požadavku k dispozici, aby bylo možné ho spustit. Úroveň autorizace funkce vyžaduje klíč specifický pro funkci, který můžeme po vytvoření najít.

  5. Vyberte Vytvořit. Když se funkce triggeru rozšíří do vaší aplikace funkcí, zobrazí se podokno Funkce pro vaši aplikaci funkcí s výpisem HttpTrigger1.

  6. Na panelu příkazů vyberte Získat adresu URL funkce. Zobrazí se dialogové okno Získat adresu URL funkce.

  7. V rozevíracím seznamu vyberte výchozí (funkční klávesa), na konci adresy URL vyberte ikonu Kopírovat do schránky a pak dialogové okno zavřete kliknutím na OK .

  8. Na panelu Adresa na nové kartě prohlížeče vložte zkopírovanou adresu URL funkce. Stisknutím klávesy Enter spusťte požadavek v prohlížeči. Inicializace aplikace funkcí může trvat několik minut. Pokud se zobrazí chyba časového limitu, aktualizujte stránku v prohlížeči, aby se požadavek odeslal znovu.

    Když funkce odpoví, měl by se zobrazit výstup podobný následujícímu příkladu zobrazenému v prohlížeči.

    This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.
    
  9. Na konec adresy URL přidejte následující řetězec &name=Joe dotazu. Výsledná adresa URL by měla vypadat podobně jako v následujícím příkladu:

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

  10. Stisknutím klávesy Enter spusťte požadavek v prohlížeči. Když funkce odpoví, měl by se zobrazit výstup podobný následujícímu příkladu zobrazenému v prohlížeči.

    Hello, Joe. This HTTP triggered function executed successfully.
    

    Jak vidíte v tomto cvičení, musíte při vytváření funkce definovat trigger. Každá funkce má jeden trigger. V tomto příkladu používáme aktivační událost HTTP, což znamená, že naše funkce se spustí, když přijme požadavek HTTP. Výchozí implementace ze šablony zobrazená v JavaScriptu na následujícím snímku obrazovky vrátí hodnotu názvu parametru, který byl v řetězci dotazu nebo textu požadavku. Pokud nebyl zadaný žádný řetězec dotazu, funkce odpoví zprávou, která se zeptá, kdo volá za účelem zadání hodnoty názvu.

    Obrázek výchozího triggeru HTTP zobrazující parametry požadavku HTTP a vazby odpovědi

  11. Na webu Azure Portal v nabídce Funkce vyberte Kód + Test.

    Zobrazí se podokno Code + Test pro vaši funkci a zobrazuje obsah souboru index.js . Výchozí kód JavaScriptu pro vaši funkci by měl vypadat podobně jako v následujícím příkladu.

    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. Pojďme se krátce podívat na druhý soubor funkce – konfigurační soubor function.json. K tomuto souboru se dostanete tak , že v rozevíracím seznamu v cestě k souboru nad blokem kódu vyberete function.json . Tato konfigurační data jsou znázorněna v následujícím výpisu JSON.

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

    Tato funkce má aktivační vazbu s názvem req typu httpTriggera výstupní vazbu s názvem res typu http.

V předchozím kódu pro naši funkci jsme viděli, že jsme prostřednictvím parametru req přistupovali k datové části příchozího požadavku HTTP. Podobně jsme odeslali odpověď HTTP nastavením parametru res . Vazby se za nás postarají o spoustu náročných operací.

Teď, když máme aplikaci funkcí, vytvoříme funkci. Každá funkce je aktivována triggerem. V tomto modulu vytvoříme trigger HTTP pomocí šablony.

  1. V části Vytvořit na webu Azure Portalna kartě Funkce na stránce Přehled vyberte tlačítko Vytvořit funkci.

  2. Zobrazí se podokno Vytvořit funkci .

  3. V části Vybrat šablonu vyberte šablonu triggeruHTTP a pak vyberte Další.

  4. V části Podrobnosti šablony potvrďte následující nastavení.

    • Do textového pole Název funkce přijměte výchozí název HttpTrigger1. Azure automaticky poskytuje jedinečný název při vytváření funkce. Můžete zvolit jiný název, ale nezapomeňte použít smysluplné názvy.

    • V textovém poli Úroveň autorizace přijměte výchozí hodnotu Funkce. Úroveň autorizace určuje, jaké klíče musí být v požadavku k dispozici, aby bylo možné ho spustit. Funkce vyžaduje klíč specifický pro funkci.

      Snímek obrazovky s podoknem Přidat funkci

  5. Vyberte Vytvořit. Zobrazí se podokno HttpTrigger1 pro vaši funkci .

  6. Na panelu příkazů vyberte Získat adresu URL funkce. Zobrazí se dialogové okno Získat adresu URL funkce.

  7. V rozevíracím seznamu vyberte výchozí (funkční klíč) a potom na konci adresy URL vyberte ikonu Kopírovat do schránky a pak kliknutím na tlačítko OK zavřete dialogové okno.

  8. Na panelu Adresa na nové kartě prohlížeče vložte zkopírovanou adresu URL funkce. Stisknutím klávesy Enter spusťte požadavek v prohlížeči. Inicializace aplikace funkcí může trvat několik minut. Pokud se zobrazí chyba časového limitu, aktualizujte stránku v prohlížeči, aby se požadavek odeslal znovu.

    Když funkce odpoví, měl by se zobrazit výstup podobný následujícímu příkladu zobrazenému v prohlížeči.

    This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.
    
  9. Na konec adresy URL přidejte řetězec &name=Joe dotazu. Výsledná adresa URL by měla vypadat podobně jako v následujícím příkladu:

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

  10. Stisknutím klávesy Enter spusťte požadavek v prohlížeči. Když funkce odpoví, měl by se zobrazit výstup podobný následujícímu příkladu zobrazenému v prohlížeči.

    Hello, Joe. This HTTP triggered function executed successfully.
    

    Jak vidíte v tomto cvičení, musíte při vytváření funkce definovat trigger. Každá funkce má jeden trigger. V tomto příkladu používáme aktivační událost HTTP, což znamená, že naše funkce se spustí, když přijme požadavek HTTP. Výchozí implementace ze šablony zobrazená v PowerShellu na následujícím snímku obrazovky používá Push-OutputBinding rutinu k odpovědi s hodnotou názvu parametru, která byla součástí řetězce dotazu nebo textu požadavku. Pokud nebyl žádný řetězec poskytnut, funkce jako odpověď vrátí volajícímu výzvu k poskytnutí hodnoty name.

    Podokno Kód a Test pro požadavek HTTP zobrazující odpověď a příslušné parametry vazby

  11. V nabídce Funkce vyberte Kód + Test. Zobrazí se podokno Code + Test pro vaši funkci a zobrazuje obsah souboru run.ps1 .

    Výchozí kód PowerShellu pro vaši funkci by měl vypadat podobně jako v následujícím příkladu.

    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. Pojďme se krátce podívat na druhý soubor funkce – konfigurační soubor function.json. Otevřete tento soubor tak , že v rozevíracím seznamu cesty vyberete function.json . Tato konfigurační data jsou znázorněna v následujícím výpisu JSON.

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

    Jak můžete vidět, má tato funkce vazbu aktivační události s názvem Request typu httpTrigger a výstupní vazbu s názvem Response typu http. V předchozím kódu pro naši funkci jsme viděli, jak jsme přistupovali k datové části příchozího požadavku HTTP prostřednictvím parametru Request . Podobně jsme odeslali odpověď HTTP jednoduše nastavením parametru Response . Vazby se za nás postarají o spoustu náročných operací.

Prozkoumejte typy vazeb

  1. V nabídce Funkce vyberte Možnost Integrace. Zobrazí se podokno Integrace pro vaši funkci.

    Všimněte si, že jsme už definovali trigger a výstupní vazbu, jak je znázorněno na následujícím obrázku. Zobrazení integrace se přizpůsobí šířce a výšce obrazovky. Stejné informace se můžou zobrazit vodorovně, pokud je obrazovka dostatečně široká.

    Snímek obrazovky s diagramem svislého toku zobrazující aktivační událost a vstupy vedoucí k funkcím a funkcím, které vedou k výstupům

    Můžete vidět, že nemůžeme přidat více než jednu aktivační událost. Pokud chcete změnit trigger funkce, musíte trigger odstranit a vytvořit nový. Oddíly Vstupy a výstupy však umožňují přidat více než jednu vazbu, takže požadavek může přijmout více než jednu vstupní hodnotu a vrátit více než jednu výstupní hodnotu.

  2. V poli Vstupy vyberte Přidat vstup. Zobrazí se podokno Vytvořit vstup . Výběrem rozevíracího seznamu pro typ vazby zobrazíte seznam všech možných typů vstupních vazeb.

    Snímek obrazovky s možnostmi přidání vstupu

    Chvíli zvažte, jak můžete v řešení použít každou z těchto vstupních vazeb.

    Později v tomto modulu přidáme vstupní vazby, ale prozatím toto podokno zavřete výběrem možnosti Storno .

  3. V poli Výstupy vyberte Přidat výstup. Zobrazí se podokno Vytvořit výstup . Výběrem rozevíracího seznamu pro typ vazby zobrazíte seznam všech možných typů výstupních vazeb.

    Snímek obrazovky s možnostmi přidání výstupu

    Jak můžete vidět, k dispozici máte několik typů výstupních vazeb. Později v tomto modulu přidáme výstupní vazby, ale prozatím výběrem možnosti Storno zavřete toto podokno.

  1. V nabídce Funkce vyberte Možnost Integrace. Zobrazí se podokno Integrace pro vaši funkci.

    Všimněte si, že jsme už definovali trigger a výstupní vazbu, jak je znázorněno na následujícím obrázku. Zobrazení integrace se přizpůsobí šířce a výšce obrazovky. Stejné informace se můžou zobrazovat svisle, pokud vaše obrazovka není dostatečně široká.

    Snímek obrazovky s diagramem vodorovného toku zobrazující aktivační událost a vstupy vedoucí k funkcím a funkcím, které vedou k výstupům

    Můžete vidět, že nemůžeme přidat více než jednu aktivační událost. Pokud chcete změnit trigger funkce, musíte trigger odstranit a vytvořit nový. Oddíly Vstupy a výstupy však umožňují přidat více vazeb, takže funkce může přijmout více než jednu vstupní hodnotu a vrátit více než jednu výstupní hodnotu.

  2. V poli Vstupy vyberte Přidat vstup. Zobrazí se podokno Vytvořit vstup . Výběrem rozevíracího seznamu pro typ vazby zobrazíte seznam všech možných typů vstupních vazeb.

    Snímek obrazovky s možnostmi přidání vstupu

    Chvíli zvažte, jak můžete v řešení použít každou z těchto vstupních vazeb. Existuje mnoho možností, ze které si můžete vybrat.

    Později v tomto modulu přidáme vstupní vazby, ale prozatím toto podokno zavřete výběrem možnosti Storno .

  3. V poli Výstupy vyberte Přidat výstup. Zobrazí se podokno Vytvořit výstup . Výběrem rozevíracího seznamu pro typ vazby zobrazíte seznam všech možných typů výstupních vazeb.

    Snímek obrazovky s možnostmi přidání výstupu

    Jak můžete vidět, k dispozici máte několik typů výstupních vazeb. Později v tomto modulu přidáme výstupní vazby, ale prozatím výběrem možnosti Storno zavřete toto podokno.

Zatím jsme se seznámili s postupem vytvoření aplikace funkcí a s tím, jak do ní přidat funkce. Viděli jsme jednoduchou funkci v akci – jedna, která se spustí při provedení požadavku HTTP. Prozkoumali jsme také web Azure Portal a typy vstupních a výstupních vazeb, které jsou dostupné pro funkce. V další lekci použijeme vstupní vazbu ke čtení textu z databáze.