Vytvoření první odolné funkce v jazyce C#

Durable Functions je rozšíření Azure Functions , které umožňuje psát stavové funkce v bezserverovém prostředí. Toto rozšíření za vás spravuje stav, kontrolní body a restartování.

V tomto článku se dozvíte, jak pomocí editoru Visual Studio Code místně vytvořit a otestovat odolnou funkci "hello world". Tato funkce orchestruje a zřetědí volání do jiných funkcí. Kód funkce pak můžete publikovat do Azure. Tyto nástroje jsou k dispozici jako součást rozšíření Azure Functions pro Visual Studio Code.

Snímek obrazovky okna editoru Visual Studio Code s odolnou funkcí

Požadavky

Pro absolvování tohoto kurzu potřebujete:

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Vytvoření místního projektu

V této části pomocí editoru Visual Studio Code vytvoříte místní projekt Azure Functions.

  1. V editoru Visual Studio Code stisknutím klávesY F1 (nebo Ctrl/Cmd+Shift+P) otevřete paletu příkazů. Na paletě příkazů vyhledejte a vyberte Azure Functions: Create New Project....

    Snímek obrazovky s oknem vytvoření projektu funkce

  2. Zvolte prázdné umístění složky pro váš projekt a zvolte Vybrat.

  3. Postupujte podle pokynů a zadejte následující informace:

    Instrukce Hodnota Popis
    Výběr jazyka pro projekt aplikace funkcí C# Vytvořte místní projekt funkcí jazyka C#.
    Vyberte verzi. Azure Functions v4 Tuto možnost uvidíte jenom v případě, že nástroje Core Tools ještě nejsou nainstalované. V tomto případě se nástroje Core Tools nainstalují při prvním spuštění aplikace.
    Výběr šablony pro první funkci projektu Prozatím přeskočte
    Vyberte, jak chcete projekt otevřít. Otevřít v aktuálním okně Znovu otevře Visual Studio Code ve složce, kterou jste vybrali.

Visual Studio Code v případě potřeby nainstaluje nástroje Azure Functions Core Tools. Vytvoří také projekt aplikace funkcí ve složce. Tento projekt obsahuje konfigurační soubory host.json a local.settings.json .

Přidání funkcí do aplikace

Následující kroky používají šablonu k vytvoření kódu odolné funkce v projektu.

  1. Na paletě příkazů vyhledejte a vyberte Azure Functions: Create Function....

  2. Postupujte podle pokynů a zadejte následující informace:

    Instrukce Hodnota Popis
    Výběr šablony pro funkci DurableFunctionsOrchestration Vytvoření orchestrace Durable Functions
    Zadejte název funkce. HelloOrchestration Název třídy, ve které se vytvářejí funkce
    Zadání oboru názvů Company.Function Obor názvů pro vygenerovanou třídu
  3. Když vás Visual Studio Code vyzve k výběru účtu úložiště, zvolte Vybrat účet úložiště. Postupujte podle pokynů a zadejte následující informace a vytvořte nový účet úložiště v Azure:

    Instrukce Hodnota Popis
    Výběr předplatného název vašeho předplatného Vybrat předplatné Azure
    Vyberte účet úložiště. Vytvoření nového účtu úložiště
    Zadejte název nového účtu úložiště. jedinečný název Název účtu úložiště, který se má vytvořit
    Výběr skupiny prostředků jedinečný název Název skupiny prostředků, která se má vytvořit
    Výběr umístění Oblasti Vyberte oblast blízko vás.

Do projektu se přidá třída obsahující nové funkce. Visual Studio Code také přidá účet úložiště připojovací řetězec k local.settings.json a odkaz na Microsoft.Azure.WebJobs.Extensions.DurableTask balíček NuGet do souboru projektu .csproj.

Otevřete nový soubor HelloOrchestration.cs a zobrazte jeho obsah. Tato odolná funkce je jednoduchý příklad řetězení funkcí s následujícími metodami:

metoda FunctionName Popis
RunOrchestrator HelloOrchestration Spravuje trvalou orchestraci. V tomto případě se orchestrace spustí, vytvoří seznam a přidá výsledek tří volání funkcí do seznamu. Po dokončení tří volání funkce vrátí seznam.
SayHello HelloOrchestration_Hello Funkce vrátí dobrý den. Je to funkce, která obsahuje obchodní logiku, která se orchestruje.
HttpStart HelloOrchestration_HttpStart Funkce aktivovaná protokolem HTTP, která spouští instanci orchestrace a vrací odpověď na stav kontroly.

Teď, když jste vytvořili projekt funkcí a odolnou funkci, můžete ho otestovat na místním počítači.

Místní testování funkce

Nástroje Azure Functions Core umožňují spouštět projekt Azure Functions na místním počítači pro vývoj. K instalaci těchto nástrojů budete vyzváni při prvním spuštění funkce z Visual Studio Code.

  1. Pokud chcete funkci otestovat, nastavte v SayHello kódu funkce aktivity zarážku a stisknutím klávesy F5 spusťte projekt aplikace funkcí. Výstup z nástrojů Tools se zobrazí na panelu Terminál.

    Poznámka:

    Další informace o ladění naleznete v tématu Diagnostika Durable Functions.

  2. Na panelu Terminál zkopírujte adresu URL koncového bodu vaší funkce aktivované protokolem HTTP.

    Snímek obrazovky s místním oknem výstupu Azure

  3. Použijte nástroj, jako je Postman nebo cURL, a pak odešlete požadavek HTTP POST do koncového bodu adresy URL.

    Odpověď je počáteční výsledek funkce HTTP a informuje nás, že trvalou orchestraci se úspěšně spustila. Zatím není konečným výsledkem orchestrace. Odpověď obsahuje několik užitečných adres URL. Prozatím se dotazujme na stav orchestrace.

  4. Zkopírujte hodnotu adresy URL , statusQueryGetUrivložte ji do adresního řádku prohlížeče a spusťte požadavek. Alternativně můžete k vydání požadavku GET dál používat Nástroj Postman.

    Požadavek odešle dotaz na instanci orchestrace pro stav. Musíte získat konečnou odpověď, která nám ukáže, že instance byla dokončena a obsahuje výstupy nebo výsledky odolné funkce. Vypadá takto:

    {
        "name": "HelloOrchestration",
        "instanceId": "9a528a9e926f4b46b7d3deaa134b7e8a",
        "runtimeStatus": "Completed",
        "input": null,
        "customStatus": null,
        "output": [
            "Hello Tokyo!",
            "Hello Seattle!",
            "Hello London!"
        ],
        "createdTime": "2020-03-18T21:54:49Z",
        "lastUpdatedTime": "2020-03-18T21:54:54Z"
    }
    
  5. Ladění zastavíte stisknutím shift + F5 v editoru Visual Studio Code.

Po ověření správného fungování funkce na místním počítači je na čase publikovat projekt do Azure.

Přihlášení k Azure

Než budete moct vytvářet prostředky Azure nebo publikovat aplikaci, musíte se přihlásit do Azure.

  1. Pokud ještě nejste přihlášení, zvolte ikonu Azure na panelu aktivit. Pak v oblasti Prostředky zvolte Přihlásit se k Azure....

    Snímek obrazovky s oknem přihlášení k Azure v editoru VS Code

    Pokud už jste přihlášení a uvidíte stávající předplatná, přejděte k další části. Pokud ještě nemáte účet Azure, zvolte Vytvořit účet Azure.... Studenti můžou zvolit Vytvořit účet Azure for Students....

  2. Po zobrazení výzvy v prohlížeči zvolte svůj účet Azure a přihlaste se pomocí svých přihlašovacích údajů k účtu Azure. Pokud vytvoříte nový účet, můžete se přihlásit po vytvoření účtu.

  3. Po úspěšném přihlášení můžete zavřít nové okno prohlížeče. Na bočním panelu se zobrazí předplatná, která patří vašemu účtu Azure.

Vytvoření aplikace funkcí v Azure

V této části vytvoříte aplikaci funkcí a související prostředky v předplatném Azure.

  1. Na panelu Aktivit zvolte ikonu Azure. Pak v oblasti Prostředky vyberte + ikonu a zvolte možnost Vytvořit aplikaci funkcí v Azure .

    Vytvoření prostředku v předplatném Azure

  2. Podle pokynů na obrazovce zadejte tyto informace:

    Instrukce Výběr
    Výběr předplatného Vyberte předplatné, které chcete použít. Tato výzva se nezobrazí, pokud v části Prostředky uvidíte jenom jedno předplatné.
    Zadejte globálně jedinečný název aplikace funkcí. Zadejte název, který je platný v cestě URL. Název, který zadáte, se ověří, aby se zajistilo, že je jedinečný ve službě Azure Functions.
    Výběr zásobníku modulu runtime Zvolte jazyková verze, na které jste místně spustili.
    Výběr umístění pro nové prostředky Pokud chcete dosáhnout lepšího výkonu , zvolte oblast blízko vás.

    Rozšíření zobrazuje stav jednotlivých prostředků při jejich vytváření v Azure na panelu Protokol aktivit.

    Protokol vytvoření prostředku Azure

  3. Po dokončení vytváření se ve vašem předplatném vytvoří následující prostředky Azure. Prostředky se pojmenují na základě názvu vaší aplikace funkcí:

    • Skupina prostředků, což je logický kontejner pro související prostředky.
    • Standardní účet Azure Storage, který udržuje stav a další informace o vašich projektech.
    • Aplikace funkcí, která poskytuje prostředí pro spouštění kódu funkce. Aplikace funkcí umožňuje seskupit funkce jako logickou jednotku pro snadnější správu, nasazení a sdílení prostředků ve stejném plánu hostování.
    • Plán služby App Service, který definuje základního hostitele vaší aplikace funkcí.
    • Aplikace Přehledy instanci připojenou k aplikaci funkcí, která sleduje využití vašich funkcí v aplikaci.

    Po vytvoření aplikace funkcí a použití balíčku nasazení se zobrazí oznámení.

    Tip

    Ve výchozím nastavení se prostředky Azure vyžadované vaší aplikací funkcí vytvoří na základě vámi zadaného názvu aplikace funkcí. Ve výchozím nastavení se také vytvoří ve stejné nové skupině prostředků s aplikací funkcí. Pokud chcete buď přizpůsobit názvy těchto zdrojů, nebo znovu použít existující zdroje, musíte projekt publikovat s pokročilými možnostmi vytvoření.

Nasazení projektu do Azure

Důležité

Nasazení do existující aplikace funkcí vždy přepíše obsah této aplikace v Azure.

  1. V oblasti Prostředky aktivity Azure vyhledejte prostředek aplikace funkcí, který jste právě vytvořili, klikněte pravým tlačítkem na prostředek a vyberte Nasadit do aplikace funkcí....

  2. Po zobrazení výzvy k přepsání předchozích nasazení vyberte Nasadit a nasaďte kód funkce do nového prostředku aplikace funkcí.

  3. Po dokončení nasazení vyberte Zobrazit výstup a zobrazte výsledky vytváření a nasazení, včetně prostředků Azure, které jste vytvořili. Pokud oznámení vynecháte, vyberte ikonu zvonku v pravém dolním rohu a znovu ho zobrazte.

    Snímek obrazovky s oknem Zobrazit výstup

Testování funkce v Azure

  1. Zkopírujte adresu URL triggeru HTTP z panelu Výstup. Adresa URL, která volá funkci aktivovanou protokolem HTTP, musí být v následujícím formátu:

    https://<functionappname>.azurewebsites.net/api/HelloOrchestration_HttpStart

  2. Vložte tuto novou adresu URL pro požadavek HTTP do panelu Adresa prohlížeče. Při použití publikované aplikace musíte získat stejnou odpověď na stav jako předtím.

Další kroky

Pomocí editoru Visual Studio Code jste vytvořili a publikovali aplikaci trvalých funkcí jazyka C#.

V tomto článku se dozvíte, jak pomocí sady Visual Studio 2022 místně vytvořit a otestovat odolnou funkci "hello world". Tato funkce orchestruje a zřetězení volání do jiných funkcí. Kód funkce potom publikujete do Azure. Tyto nástroje jsou k dispozici jako součást úlohy vývoje pro Azure v sadě Visual Studio 2022.

Snímek obrazovky okna sady Visual Studio 2019 s odolnou funkcí

Požadavky

Pro absolvování tohoto kurzu potřebujete:

  • Nainstalujte Visual Studio 2022. Ujistěte se, že je nainstalovaná také úloha vývoje pro Azure. Visual Studio 2019 podporuje také vývoj Durable Functions, ale uživatelské rozhraní a kroky se liší.

  • Ověřte, že máte nainstalovaný a spuštěný emulátor Azurite.

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Vytvoření projektu aplikace funkcí

Šablona Azure Functions vytvoří projekt, který je možné publikovat do aplikace funkcí v Azure. Aplikace funkcí umožňuje seskupit funkce jako logickou jednotku pro snadnější správu, nasazení, škálování a sdílení prostředků.

  1. V sadě Visual Studio zvolte v nabídce Soubor možnost Nový>Projekt.

  2. V dialogovém okně Vytvořit nový projekt vyhledejte functions, zvolte šablonu Azure Functions a pak vyberte Další.

    Snímek obrazovky s dialogovým oknem nového projektu pro vytvoření funkce v sadě Visual Studio

  3. Zadejte název projektu a vyberte OK. Název projektu musí být platný jako obor názvů jazyka C#, takže nepoužívejte podtržítka, pomlčky ani neosamocené znaky.

  4. V části Další informace použijte nastavení uvedená v tabulce, která následuje za obrázkem.

    Snímek obrazovky s dialogovým oknem vytvořit novou aplikaci Azure Functions v sadě Visual Studio

    Nastavení Navrhovaná hodnota Popis
    Pracovní proces Functions .NET 6 Vytvoří projekt funkcí, který podporuje .NET 6 a Modul runtime Azure Functions 4.0. Další informace najdete v tématu s přehledem verzí modulu runtime Azure Functions.
    Funkce Prázdné Vytvoří prázdnou aplikaci funkcí.
    Účet úložiště Emulátor úložiště Pro správu stavu trvalých funkcí se vyžaduje účet úložiště.
  5. Výběrem možnosti Vytvořit vytvořte prázdný projekt funkce. Tento projekt obsahuje základní konfigurační soubory potřebné ke spuštění funkcí.

Přidání funkcí do aplikace

Následující kroky používají šablonu k vytvoření kódu odolné funkce v projektu.

  1. Klikněte pravým tlačítkem na projekt v sadě Visual Studio a vyberte Přidat>novou funkci Azure Functions.

    Snímek obrazovky s možností Přidat novou funkci

  2. Ověřte, že je v nabídce přidat vybraná funkce Azure Functions , zadejte název souboru jazyka C# a pak vyberte Přidat.

  3. Vyberte šablonu Orchestrace Durable Functions a pak vyberte Přidat.

    Snímek obrazovky s výběrem odolné šablony

Do aplikace se přidá nová odolná funkce. Otevřete nový soubor .cs a zobrazte obsah. Tato odolná funkce je jednoduchý příklad řetězení funkcí s následujícími metodami:

metoda FunctionName Popis
RunOrchestrator <file-name> Spravuje trvalou orchestraci. V tomto případě se orchestrace spustí, vytvoří seznam a přidá výsledek tří volání funkcí do seznamu. Po dokončení tří volání funkce vrátí seznam.
SayHello <file-name>_Hello Funkce vrátí dobrý den. Je to funkce, která obsahuje obchodní logiku, která se orchestruje.
HttpStart <file-name>_HttpStart Funkce aktivovaná protokolem HTTP, která spouští instanci orchestrace a vrací odpověď na stav kontroly.

Teď, když jste vytvořili projekt funkcí a odolnou funkci, můžete ho otestovat na místním počítači.

Místní testování funkce

Nástroje Azure Functions Core umožňují spouštět projekt Azure Functions na místním počítači pro vývoj. Při prvním spuštění funkce ze sady Visual Studio se zobrazí výzva k instalaci těchto nástrojů.

  1. Funkci otestujete stisknutím klávesy F5. Po výzvě přijměte požadavek ze sady Visual Studio na stažení a instalaci nástrojů Azure Functions Core (CLI). Může být také potřeba povolit výjimku brány firewall, aby nástroje mohly zpracovávat požadavky HTTP.

  2. Zkopírujte adresu URL vaší funkce z výstupu modulu runtime služby Azure Functions.

    Snímek obrazovky místního modulu runtime Azure

  3. Vložte adresu URL požadavku HTTP do adresního řádku prohlížeče a spusťte požadavek. Následuje ukázka odezvy na místní požadavek GET vrácené funkcí v prohlížeči:

    Snímek obrazovky okna prohlížeče s vyvolaným statusQueryGetUri

    Odpověď je počáteční výsledek funkce HTTP a informuje nás, že trvalou orchestraci se úspěšně spustila. Zatím není konečným výsledkem orchestrace. Odpověď obsahuje několik užitečných adres URL. Prozatím se dotazujme na stav orchestrace.

  4. Zkopírujte hodnotu adresy URL , statusQueryGetUrivložte ji do adresního řádku prohlížeče a spusťte požadavek.

    Požadavek odešle dotaz na instanci orchestrace pro stav. Musíte získat konečnou odpověď, která vypadá takto. Tento výstup ukazuje, že instance byla dokončena a obsahuje výstupy nebo výsledky odolné funkce.

    {
        "name": "Durable",
        "instanceId": "d495cb0ac10d4e13b22729c37e335190",
        "runtimeStatus": "Completed",
        "input": null,
        "customStatus": null,
        "output": [
            "Hello Tokyo!",
            "Hello Seattle!",
            "Hello London!"
        ],
        "createdTime": "2019-11-02T07:07:40Z",
        "lastUpdatedTime": "2019-11-02T07:07:52Z"
    }
    
  5. Pokud chcete zastavit ladění, stiskněte Shift + F5.

Po ověření správného fungování funkce na místním počítači je na čase publikovat projekt do Azure.

Publikování projektu do Azure

Před publikováním projektu musíte mít ve svém předplatném Azure aplikaci funkcí. Aplikaci funkcí můžete vytvořit přímo v sadě Visual Studio.

  1. V Průzkumníku řešení klikněte pravým tlačítkem na požadovaný projekt a vyberte Publikovat. V části Target (Cíl) vyberte Azure a pak Next (Další).

    Snímek obrazovky s oknem publikování

  2. Vyberte aplikaci Funkcí Azure (Windows) pro konkrétní cíl, která vytvoří aplikaci funkcí, která běží ve Windows, a pak vyberte Další.

    Snímek obrazovky s oknem publikování s konkrétním cílem

  3. V instanci funkce zvolte Vytvořit novou funkci Azure...

    Snímek obrazovky s vytvořením nové instance aplikace funkcí

  4. Vytvořte novou instanci pomocí hodnot zadaných v následující tabulce:

    Nastavení Hodnota Popis
    Jméno Globálně jedinečný název Název jednoznačně identifikující novou aplikaci funkcí. Přijměte tento název nebo zadejte nový název. Platné znaky jsou: a-z, 0-9a -.
    Předplatné Vaše předplatné Předplatné Azure, které se má použít. Přijměte toto předplatné nebo v rozevíracím seznamu vyberte nové.
    Skupina prostředků Název vaší skupiny prostředků Skupina prostředků, ve které chcete vytvořit aplikaci funkcí. Výběrem možnosti Nový vytvořte novou skupinu prostředků. V rozevíracím seznamu můžete také zvolit existující skupinu prostředků.
    Typ plánu Využití Když projekt publikujete do aplikace funkcí, která běží v plánu Consumption, platíte jenom za provádění aplikace funkcí. Jiné plány hostování účtují vyšší náklady.
    Místo Umístění služby App Service Zvolte umístění v oblasti blízko vás nebo jiné služby, ke kterým vaše funkce přistupují.
    Azure Storage Účet úložiště pro obecné účely Modul runtime Functions vyžaduje účet úložiště Azure. Výběrem možnosti Nový nakonfigurujte účet úložiště pro obecné účely. Můžete také zvolit existující účet, který splňuje požadavky na účet úložiště.
    Application Insights Instance Přehledy aplikace Měli byste povolit integraci aplikačních Přehledy pro vaši aplikaci funkcí. Vyberte Nový a vytvořte novou instanci, a to buď v novém, nebo v existujícím pracovním prostoru služby Log Analytics. Můžete také zvolit existující instanci.

    Snímek obrazovky s dialogovým oknem Vytvořit službu App Service

  5. Výběrem možnosti Vytvořit vytvoříte aplikaci funkcí a související prostředky v Azure. Stav vytváření prostředků se zobrazí v levém dolním rohu okna.

  6. V instanci služby Functions se ujistěte, že je zaškrtnuté políčko Spustit ze souboru balíčku. Aplikace funkcí se nasadí pomocí příkazu Zip Deploy s povoleným režimem Spustit z balíčku . Zip Deploy je doporučená metoda nasazení pro váš projekt funkcí, která vede k lepšímu výkonu.

    Snímek obrazovky s vytvořením profilu Dokončení

  7. Vyberte Dokončit a na stránce Publikovat vyberte Publikovat a nasaďte balíček obsahující soubory projektu do nové aplikace funkcí v Azure.

    Po dokončení nasazení se na kartě Publikovat zobrazí kořenová adresa URL aplikace funkcí v Azure.

  8. Na kartě Publikovat v části Hostování zvolte Otevřít na webu Azure Portal. Tím se na webu Azure Portal otevře nový prostředek aplikace funkcí Azure.

    Snímek obrazovky se zprávou o úspěšném publikování

Testování funkce v Azure

  1. Zkopírujte základní adresu URL aplikace funkcí ze stránky Publikovat profil. Nahraďte část adresy URL použité při místním testování funkce, která obsahuje localhost:port, novou základní adresou URL.

    Adresa URL, která volá trigger HTTP odolné funkce, musí být v následujícím formátu:

    https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>_HttpStart

  2. Vložte tuto novou adresu URL pro požadavek HTTP do panelu Adresa prohlížeče. Při použití publikované aplikace musíte získat stejnou odpověď na stav jako předtím.

Další kroky

Pomocí sady Visual Studio jste vytvořili a publikovali aplikaci trvalých funkcí jazyka C#.