Vytvoření Durable Functions pomocí webu Azure Portal

Rozšíření Durable Functions pro Azure Functions je k dispozici v balíčku NuGet Microsoft.Azure.WebJobs.Extensions.DurableTask. Toto rozšíření musí být nainstalované ve vaší aplikaci funkcí. Tento článek ukazuje, jak nainstalovat tento balíček, abyste mohli vyvíjet odolné funkce na webu Azure Portal.

Poznámka:

  • Pokud vyvíjíte odolné funkce v jazyce C#, měli byste zvážit vývoj pro Visual Studio 2019.
  • Pokud vyvíjíte odolné funkce v JavaScriptu, měli byste zvážit vývoj v editoru Visual Studio Code.

Vytvoření aplikace funkcí

Abyste mohli hostovat provádění jakékoli funkce, musíte mít aplikaci funkcí. Aplikace funkcí umožňuje seskupit funkce jako logickou jednotku pro snadnější správu, nasazení, škálování a sdílení prostředků. Můžete vytvořit aplikaci .NET nebo JavaScript.

  1. V nabídce webu Azure Portal nebo na domovské stránce vyberte Vytvořit prostředek.

  2. Na stránce Nový vyberte Aplikaci výpočetních>funkcí.

  3. V části Vybrat možnost hostování vyberte Možnost Consumption>Vyberte a vytvořte aplikaci ve výchozím plánu Consumption. V této možnosti bezserverového hostování platíte jenom za čas, kdy vaše funkce běží. Plán Premium také nabízí dynamické škálování. Pokud používáte plán služby App Service, musíte zajistit správu škálování vaší aplikace funkcí.

  4. Na stránce Základy použijte nastavení aplikace funkcí, jak je uvedeno v následující tabulce:

    Nastavení Navrhovaná hodnota Popis
    Předplatné Vaše předplatné Předplatné, ve kterém vytvoříte novou aplikaci funkcí.
    Skupina prostředků myResourceGroup Název nové skupiny prostředků, ve které vytvoříte aplikaci funkcí. Měli byste vytvořit novou skupinu prostředků, protože při vytváření nových aplikací funkcí v existující skupině prostředků existují známá omezení.
    Název aplikace funkcí Globálně jedinečný název Název identifikující novou aplikaci funkcí. Platné znaky jsou a-z (bez rozlišování malých a velkých písmen), 0-9 a -.
    Zásobník modulu runtime Upřednostňovaný jazyk Vyberte modul runtime, který podporuje váš oblíbený programovací jazyk funkcí. Úpravy na portálu jsou dostupné jenom pro javascript, PowerShell, Python, TypeScript a skript jazyka C#. Knihovnu tříd jazyka C# a funkce Jazyka Java je nutné vyvíjet místně.
    Verze Číslo verze Zvolte verzi nainstalovaného modulu runtime.
    Oblast Upřednostňovaná oblast Vyberte oblast, která je blízko vás nebo blízko jiných služeb, ke kterým mají vaše funkce přístup.
    Operační systém Windows Operační systém je předem vybraný na základě výběru zásobníku modulu runtime, ale v případě potřeby můžete nastavení změnit. Úpravy na portálu se podporují jenom ve Windows.
  5. Na zbývajících kartách přijměte výchozí možnosti, včetně výchozího chování vytvoření nového účtu úložiště na kartě Úložiště a nové instance Application Insight na kartě Monitorování. Můžete také použít existující účet úložiště nebo instanci Přehledy aplikace.

  6. Vyberte Zkontrolovat a vytvořit , abyste zkontrolovali konfiguraci aplikace, kterou jste zvolili, a pak vyberte Vytvořit , abyste zřídili a nasadili aplikaci funkcí.

  7. Vyberte ikonu Oznámení v pravém horním rohu portálu a podívejte se na zprávu o úspěšném nasazení.

  8. Volbou Přejít k prostředku novou aplikaci funkcí zobrazíte. Můžete také vybrat Připnout na řídicí panel. Připnutí usnadňuje návrat k tomuto prostředku aplikace funkcí z řídicího panelu.

    Snímek obrazovky s oznámením o nasazení

Aplikace funkcí vytvořená ve výchozím nastavení používá modul runtime Azure Functions verze 2.x. Rozšíření Durable Functions funguje na obou verzích 1.x a 2.x modulu runtime Azure Functions v jazyce C# a verze 2.x v JavaScriptu. Šablony jsou však k dispozici pouze při cílení na verzi 2.x modulu runtime bez ohledu na zvolený jazyk.

Instalace balíčku npm durable-functions (pouze JavaScript)

Pokud vytváříte JavaScript Durable Functions, budete muset nainstalovat durable-functions balíček npm:

  1. Na stránce aplikace funkcí vyberte v levém podokně rozšířené nástroje v části Vývojové nástroje.

    Volba funkcí platformy Functions v Kudu

  2. Na stránce Rozšířené nástroje vyberte Přejít.

  3. V konzole Kudu vyberte konzolu Ladění a pak CMD.

    Konzola ladění Kudu

  4. Měla by se zobrazit adresářová struktura vaší aplikace funkcí. Přejděte do složky site/wwwroot. Odtud můžete nahrát package.json soubor přetažením do okna adresáře souborů. Ukázka package.json je následující:

    {
      "dependencies": {
        "durable-functions": "^1.3.1"
      }
    }
    

    Nahrání package.json Kudu

  5. Po nahrání spusťte package.jsonnpm install příkaz z konzoly vzdáleného spuštění Kudu.

    Spuštění instalace npm v Kudu

Vytvoření funkce orchestrátoru

  1. V aplikaci funkcí vyberte Funkce v levém podokně a pak v horní nabídce vyberte Přidat .

  2. Do vyhledávacího pole na stránce Nová funkce zadejte durablea pak zvolte úvodní šablonu HTTP Durable Functions.

    Výběr úvodní sady HTTP Durable Functions

  3. Jako název nové funkce zadejte HttpStarta pak vyberte Vytvořit funkci.

    Vytvořená funkce slouží ke spuštění orchestrace.

  4. V aplikaci funkcí tentokrát vytvořte další funkci pomocí šablony orchestrátoru Durable Functions. Pojmenujte novou funkci HelloSequenceorchestrace .

  5. Vytvořte třetí funkci s názvem Hello pomocí šablony aktivity Durable Functions.

Testování orchestrace trvalých funkcí

  1. Vraťte se k funkci HttpStart , zvolte Získat adresu URL funkce a výběrem ikony Kopírovat do schránky zkopírujte adresu URL. Tuto adresu URL použijete ke spuštění funkce HelloSequence .

  2. Pomocí nástroje HTTP, jako je Postman nebo cURL, odešlete požadavek POST na adresu URL, kterou jste zkopírovali. Následující příklad je příkaz cURL, který odešle požadavek POST do odolné funkce:

    curl -X POST https://{your-function-app-name}.azurewebsites.net/api/orchestrators/{functionName} --header "Content-Length: 0"
    

    V tomto příkladu je doména, {your-function-app-name} která je názvem vaší aplikace funkcí a {functionName} je to funkce orchestratoru HelloSequence . Zpráva odpovědi obsahuje sadu koncových bodů URI, které můžete použít k monitorování a správě spouštění. Může vypadat jako v následujícím příkladu:

    {  
       "id":"10585834a930427195479de25e0b952d",
       "statusQueryGetUri":"https://...",
       "sendEventPostUri":"https://...",
       "terminatePostUri":"https://...",
       "rewindPostUri":"https://..."
    }
    
  3. statusQueryGetUri Zavolejte identifikátor URI koncového bodu a zobrazí se aktuální stav odolné funkce, která může vypadat jako v tomto příkladu:

        {
            "runtimeStatus": "Running",
            "input": null,
            "output": null,
            "createdTime": "2017-12-01T05:37:33Z",
            "lastUpdatedTime": "2017-12-01T05:37:36Z"
        }
    
  4. Pokračujte v volání koncového statusQueryGetUri bodu, dokud se stav nezmění na Dokončeno, a zobrazí se odpověď podobná následujícímu příkladu:

    {
            "runtimeStatus": "Completed",
            "input": null,
            "output": [
                "Hello Tokyo!",
                "Hello Seattle!",
                "Hello London!"
            ],
            "createdTime": "2017-12-01T05:38:22Z",
            "lastUpdatedTime": "2017-12-01T05:38:28Z"
        }
    

Vaše první odolná funkce je teď v Azure spuštěná a funkční.

Další kroky