Spuštění kódu na vyžádání pomocí Azure Functions

Dokončeno

Teď, když jsme vytvořili aplikaci funkcí, se podíváme na to, jak sestavit, nakonfigurovat a spustit funkci. Funkci spustíme v dalším cvičení, takže v této lekci nemusíte provádět žádné úkoly.

Aktivační události

Funkce jsou řízené událostmi, což znamená, že se spouštějí v reakci na událost. Typ události, která spouští funkci, se nazývá trigger. Každá funkce musí být nakonfigurovaná přesně s jednou aktivační událostí.

Spouštění funkcí můžete aktivovat pomocí požadavků HTTP, naplánovaného časovače a událostí z následujících služeb Azure:

Služba Azure Popis aktivační události
Blob Storage Spustí funkci při zjištění nového nebo aktualizovaného objektu blob.
Azure Cosmos DB Funkce se spustí při zjištění vkládání nebo aktualizací.
Event Grid Spustí funkci při přijetí události ze služby Event Grid.
Event Hubs Spustí funkci při přijetí události ze služby Event Hubs.
Queue Storage Spustí funkci při přijetí nové položky do fronty. Jako vstup funkce se poskytuje zpráva fronty.
Service Bus Spustí funkci v reakci na zprávy z fronty služby Service Bus.

Vazby

Vazba je deklarativní způsob připojení dat a služeb k vaší funkci. Vazby komunikují s různými zdroji dat, což znamená, že nemusíte psát kód ve funkci, abyste se připojili ke zdrojům dat a spravovali připojení. Platforma se o to v kódu vazby postará za vás. Každá vazba má směr: Kód čte data ze vstupních vazeb a zapisuje data do výstupních vazeb. Každá funkce může ke správě vstupních a výstupních dat, která zpracovává, používat více vazeb (nebo žádnou).

Aktivační událost je typ vstupní vazby, která má schopnost zahájit spuštění nějakého kódu.

Azure nabízí velký počet vazeb pro připojení k různým službám úložiště a zasílání zpráv.

Definování ukázkové vazby

V následujícím příkladu nakonfigurujeme funkci se vstupní vazbou (aktivační procedurou) a výstupní vazbou. Řekněme, že chceme do azure Table Storage napsat nový řádek pokaždé, když se ve službě Azure Queue Storage objeví nová zpráva. Tento scénář je možné implementovat pomocí triggeru azure Queue Storage a výstupní vazby azure Table Storage.

Následující fragment kódu je soubor function.json pro tento scénář.

{
  "bindings": [
    {
      "name": "order",
      "type": "queueTrigger",
      "direction": "in",
      "queueName": "myqueue-items",
      "connection": "MY_STORAGE_ACCT_APP_SETTING"
    },
    {
      "name": "$return",
      "type": "table",
      "direction": "out",
      "tableName": "outTable",
      "connection": "MY_TABLE_STORAGE_ACCT_APP_SETTING"
    }
  ]
}

Naše konfigurace JSON určuje, že se naše funkce aktivuje při přidání zprávy do fronty s názvem myqueue-items. Návratová hodnota naší funkce se pak zapíše do outTable v Azure Table Storage.

Ve funkcích PowerShellu se výstupní vazby explicitně zapisují do rutiny Push-OutputBinding.

Tento příklad je jednoduché znázornění způsobu konfigurace vazeb pro funkci. Výstup můžeme změnit tak, aby byl e-mail pomocí vazby SendGrid, nebo bychom mohli událost umístit do služby Service Bus, abychom v naší architektuře informovali nějakou jinou komponentu. Mohli bychom dokonce mít několik výstupních vazeb pro nabízení dat do různých služeb.

Tip

Pokud chcete zobrazit a upravit obsah function.json na webu Azure Portal, na domovské stránce vyberte aplikaci funkcí a v pravém podokně vyberte Zobrazení JSON. V zobrazení JSON prostředku se zobrazí ID prostředku a upravitelný kód JSON. Pokud chcete zobrazení JSON zavřít, vyberte X v pravém horním rohu podokna.

Ne všechny jazyky, které functions podporují, k definování funkcí používají soubor function.json.

Vytvoření funkce na webu Azure Portal

Služba Azure Functions má předdefinované šablony funkcí, které jsou založené na určitém typu triggeru. Tyto šablony ve zvoleném jazyce usnadňují vytváření první funkce.

Tento modul není podporovaný pro všechny jazyky podporované službou Functions a samotný portál nepodporuje vytváření funkcí ve všech jazycích podporovaných službou Functions.

U podporovaných jazyků, které k definování funkcí používají soubor function.json, můžete tyto funkce vytvářet a upravovat přímo na webu Azure Portal. Mezi tyto jazyky podporované portálem patří: JavaScript, PowerShell, Python a C# Script (.csx). Jazyky, které definují funkce přímo v samotném kódu, se musí vyvíjet mimo portál a nasazovat do Azure. Mezi tyto neportální podporované jazyky patří: C#, Java, Python (programovací model v2) a JavaScript/TypeScript (Node.js programovací model v4).

Šablony funkcí

Při vytváření první funkce na portálu můžete pro funkci vybrat předdefinovanou aktivační událost. Na základě vašich výběrů Azure vygeneruje výchozí kód a konfigurační informace, jako je například vytvoření položky protokolu událostí při přijetí vstupních dat.

Výběrem šablony v podokně Přidat funkci získáte snadný přístup k nejběžnějším vývojovým prostředím, triggerům a závislostem. Když vytvoříte funkci na webu Azure Portal, můžete si vybrat z více než 20 šablon. Po vytvoření můžete kód dále přizpůsobit.

Při vytváření funkce ze šablony se vytvoří několik souborů, včetně konfiguračního souboru, function.json a souboru zdrojového kódu index.js.

Funkce pro aplikaci funkcí můžete vytvořit nebo upravit tak , že v nabídce Aplikace funkcí vyberete Funkce v kategorii Funkce .

Když vyberete funkci, kterou jste vytvořili v aplikaci funkcí, otevře se podokno Funkce. Výběrem kódu + test z nabídky Funkce máte přístup k akcím na panelu příkazů, abyste mohli testovat a spouštět kód, ukládat nebo zahodit provedené změny nebo získat publikovanou adresu URL. Výběrem možnosti Test/Spustit na panelu příkazů můžete spouštět případy použití pro požadavky, které obsahují řetězce a hodnoty dotazu. Cesta funkce nad polem kódu zobrazí název otevřeného souboru. V rozevíracím seznamu můžete vybrat konkrétní soubor, který chcete otestovat nebo upravit, například function.json.

Snímek obrazovky s kódem funkce a editorem testů zobrazující rozbalené zobrazení Test/Spustit se zvýrazněnými možnostmi nabídky

Na předchozím obrázku má pravé podokno karty Vstup a Výstup . Výběrem karty Vstup můžete sestavit a otestovat funkci přidáním parametrů dotazu a zadáním hodnot pro řetězec dotazu. Na kartě Výstup se zobrazí výsledky požadavku.

Testování funkce Azure

Po vytvoření funkce na portálu ji budete chtít otestovat. Existují dva přístupy:

  • Testování na portálu
  • Ruční spuštění

Testování na webu Azure Portal

Pohodlný způsob testování funkcí je dostupný také na webu Azure Portal. Jak jsme už popsali, na předchozím snímku obrazovky. Když v tomto podokně vyberete Spustit , výsledky se automaticky zobrazí na kartě Výstup a otevře se podokno Protokoly , ve kterém se zobrazí stav.

Ruční spuštění funkce

Funkci můžete spustit ruční aktivací nakonfigurovaného triggeru. Pokud například používáte trigger HTTP, můžete jedním z těchto testovacích nástrojů HTTP zahájit požadavek HTTP na adresu URL koncového bodu funkce:

Upozornění

V situacích, kdy máte citlivá data, jako jsou přihlašovací údaje, tajné kódy, přístupové tokeny, klíče rozhraní API a další podobné informace, nezapomeňte použít nástroj, který chrání vaše data pomocí potřebných funkcí zabezpečení, funguje offline nebo místně, nesynchronizuje vaše data do cloudu a nevyžaduje, abyste se přihlásili k online účtu. Tímto způsobem snížíte riziko zveřejnění citlivých dat veřejnosti.

Koncový bod adresy URL triggeru HTTP můžete získat výběrem možnosti Získat adresu URL funkce ze stránky definice funkce na portálu.

Monitorování a řídicí panel Application Insights

Možnost monitorovat funkce je během vývoje i v produkčním prostředí velmi důležitá. Azure Portal poskytuje řídicí panel monitorování, který zapnete povolením integrace Application Insights. V nabídce Aplikace funkcí v části Nastavení vyberte Application Insights, vyberte Zapnout Application Insights a pak vyberte Použít. V dialogovém okně vyberte Ano. Řídicí panel Application Insights poskytuje rychlý způsob zobrazení historie operací funkcí zobrazením časového razítka, kódu výsledku, doby trvání a ID operace naplněné službou Application Insights.

Snímek obrazovky zobrazující řídicí panel Application Insights funkce HTTP s výsledky funkce, odpovídajícími stavovými kódy HTTP a zvýrazněnými položkami nabídky Monitorování

Podokno protokoly streamování

Po povolení Application Insights na webu Azure Portal můžete do funkce přidat příkazy protokolování pro účely ladění. Volané metody pro každý jazyk jsou předány objekt "protokolování", který lze použít k přidání informací protokolu do podokna Protokoly v podokně Code + Test při spuštění testu.

Zápis do protokolů z kódu pomocí log metody na objektu context , který se předává obslužné rutině. Následující příklad zapíše výchozí úroveň protokolu (informace):

context.log('Enter your logging statement here');

Pomocí rutiny Write-Host můžete zapisovat do protokolů z kódu, jak je znázorněno v následujícím příkladu:

Write-Host "Enter your logging statement here"

Chyby, chyby, upozornění a anomálie

Pomocí metrik nebo možností z kategorie Prošetření v nabídce Funkce můžete monitorovat výkon, diagnostikovat selhání nebo nakonfigurovat desítky předdefinovaných sešitů pro správu vaší aplikace funkcí. Všechno od chyb kompilace a upozornění v kódu až po statistiky využití podle role.