Sdílet prostřednictvím


Rychlý start: Vytvoření aplikace Durable Functions v Pythonu

Funkce Durable Functions, která je funkcí Azure Functions, slouží k zápisu stavových funkcí v bezserverovém prostředí. Durable Functions nainstalujete instalací rozšíření Azure Functions v editoru Visual Studio Code. Rozšíření spravuje stav, kontrolní body a restartuje ve vaší aplikaci.

V tomto rychlém startu použijete rozšíření Durable Functions v editoru Visual Studio Code k místnímu vytvoření a otestování aplikace Durable Functions "hello world" ve službě Azure Functions. Aplikace Durable Functions orchestruje a zřetědí volání do jiných funkcí. Pak publikujete kód funkce do Azure. Nástroje, které používáte, jsou k dispozici prostřednictvím rozšíření Visual Studio Code.

Snímek obrazovky se spuštěnou aplikací Durable Functions v Azure

Poznámka:

V tomto rychlém startu se pro Python používá programovací model založený na dekorátoru v2. Tento model poskytuje jednodušší strukturu souborů a ve srovnání s v1 je zaměřen na kód.

Požadavky

K dokončení tohoto rychlého startu je potřeba:

Pokud nemáte účet Azure, vytvořte si bezplatný účet 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 vyberte F1 (nebo stisknutím kombinace kláves Ctrl/Cmd+Shift+P) otevřete paletu příkazů. Na příkazovém řádku (>) zadejte a pak vyberte Azure Functions: Vytvořit nový projekt.

    Snímek obrazovky s oknem Vytvořit funkci

  2. Vyberte Procházet. V dialogovém okně Vybrat složku přejděte do složky, která se má použít pro váš projekt, a pak zvolte Vybrat.

  3. Na příkazovém řádku zadejte následující informace:

    Instrukce Akce Popis
    Výběr jazyka pro projekt aplikace funkcí Vyberte Python. Vytvoří místní projekt Python Functions.
    Vyberte verzi. Vyberte Azure Functions v4. Tato možnost se zobrazí 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.
    Verze Pythonu Vyberte Python 3.7, Python 3.8, Python 3.9 nebo Python 3.10. Visual Studio Code vytvoří virtuální prostředí pomocí vámi vybrané verze.
    Výběr šablony pro první funkci projektu Prozatím vyberte Přeskočit.
    Vyberte, jak chcete projekt otevřít. Vyberte Otevřít v aktuálním okně. Otevře Visual Studio Code ve složce, kterou jste vybrali.

Visual Studio Code nainstaluje Nástroje Azure Functions Core Tools, pokud je potřeba k vytvoření projektu. Vytvoří také projekt aplikace funkcí ve složce. Tento projekt obsahuje konfigurační soubory host.json a local.settings.json .

V kořenové složce se vytvoří také soubor requirements.txt . Určuje balíčky Pythonu potřebné ke spuštění vaší aplikace funkcí.

Instalace azure-functions-durable z PyPI

Když vytvoříte projekt, rozšíření Azure Functions Visual Studio Code automaticky vytvoří virtuální prostředí s vybranou verzí Pythonu. Pak je potřeba aktivovat virtuální prostředí v terminálu a nainstalovat některé závislosti vyžadované službami Azure Functions a Durable Functions.

  1. Otevřete requirements.txt v editoru a změňte jeho obsah na následující kód:

    azure-functions
    azure-functions-durable
    
  2. V aktuální složce otevřete integrovaný terminál editoru (Ctrl+Shift+').

  3. V integrovaném terminálu aktivujte virtuální prostředí v aktuální složce v závislosti na vašem operačním systému.

    source .venv/bin/activate
    

Potom v integrovaném terminálu, kde je virtuální prostředí aktivované, použijte pip k instalaci balíčků, které jste definovali.

python -m pip install -r requirements.txt

Poznámka:

Musíte nainstalovat azure-functions-durable verze 1.2.4 nebo novější.

Vytvoření funkcí

Nejzásadnější aplikace Durable Functions má tři funkce:

  • Funkce orchestratoru: Pracovní postup, který orchestruje další funkce.
  • Funkce aktivity: Funkce, která je volána funkcí orchestrátoru, provádí práci a volitelně vrací hodnotu.
  • Klientská funkce: Běžná funkce v Azure, která spouští funkci orchestrátoru. Tento příklad používá funkci aktivovanou protokolem HTTP.

Ukázkový kód

Pokud chcete vytvořit základní aplikaci Durable Functions pomocí těchto tří typů funkcí, nahraďte obsah function_app.py následujícím kódem Pythonu:

import azure.functions as func
import azure.durable_functions as df

myApp = df.DFApp(http_auth_level=func.AuthLevel.ANONYMOUS)

# An HTTP-triggered function with a Durable Functions client binding
@myApp.route(route="orchestrators/hello_orchestrator")
@myApp.durable_client_input(client_name="client")
async def http_start(req: func.HttpRequest, client):
    function_name = req.route_params.get('functionName')
    instance_id = await client.start_new(function_name)
    response = client.create_check_status_response(req, instance_id)
    return response

# Orchestrator
@myApp.orchestration_trigger(context_name="context")
def hello_orchestrator(context):
    result1 = yield context.call_activity("hello", "Seattle")
    result2 = yield context.call_activity("hello", "Tokyo")
    result3 = yield context.call_activity("hello", "London")

    return [result1, result2, result3]

# Activity
@myApp.activity_trigger(input_name="city")
def hello(city: str):
    return f"Hello {city}"

V následující tabulce najdete vysvětlení jednotlivých funkcí a jejich účelu v ukázce:

metoda Popis
hello_orchestrator Funkce orchestrátoru, která popisuje pracovní postup. V tomto případě se orchestrace spustí, vyvolá tři funkce v sekvenci a pak vrátí seřazené výsledky všech tří funkcí v seznamu.
hello Funkce aktivity, která provádí práci orchestrovanou. Funkce vrátí jednoduché pozdravy města předané jako argument.
http_start Funkce aktivovaná protokolem HTTP, která spouští instanci orchestrace a vrací check status odpověď.

Poznámka:

Durable Functions také podporuje podrobné plány programovacího modelu Pythonu v2. Pokud chcete použít podrobné plány, zaregistrujte funkce podrobného plánu pomocí třídy azure-functions-durableBlueprint. Výsledný podrobný plán můžete zaregistrovat jako obvykle. Jako příklad můžete použít naši ukázku .

Konfigurace emulátoru úložiště

K místnímu otestování funkce můžete použít Azurite, emulátor pro Azure Storage. V local.settings.json nastavte hodnotu, AzureWebJobsStorage která se má v tomto příkladu podobat UseDevelopmentStorage=true :

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "python"
  }
}

Pokud chcete nainstalovat a spustit rozšíření Azurite v editoru Visual Studio Code, zadejte na paletě příkazů Azurite: Start a vyberte Enter.

Pro aplikaci Durable Functions můžete použít další možnosti úložiště. Další informace o možnostech a výhodách úložiště najdete v tématu Poskytovatelé úložiště Durable Functions.

Místní testování funkce

Nástroje Azure Functions Core Tools umožňují spouštět projekt Azure Functions na místním vývojovém počítači. Pokud není nainstalovaný, zobrazí se výzva k instalaci těchto nástrojů při prvním spuštění funkce v editoru Visual Studio Code.

  1. Pokud chcete funkci otestovat, nastavte zarážku v hello kódu funkce aktivity. Vyberte F5 nebo vyberte Ladit: Spusťte ladění na paletě příkazů a spusťte projekt aplikace funkcí. Výstup nástroje Core Tools se zobrazí na panelu terminálu.

    Poznámka:

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

  2. Na panelu terminálu zkopírujte koncový bod adresy URL funkce aktivované protokolem HTTP.

    Snímek obrazovky s místním výstupem Azure

  3. Pomocí prohlížeče nebo testovacího nástroje HTTP odešlete požadavek HTTP POST do koncového bodu adresy URL.

    Nahraďte poslední segment názvem funkce orchestrátoru (hello_orchestrator). Adresa URL by měla být podobná http://localhost:7071/api/orchestrators/hello_orchestrator.

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

  4. Zkopírujte hodnotu adresy URL , statusQueryGetUrivložte ji do adresního řádku prohlížeče a spusťte požadavek. K vydání požadavku GET můžete také pokračovat v používání testovacího nástroje HTTP.

    Požadavek se dotazuje instance orchestrace na stav. Měli byste vidět, že instance byla dokončena a že obsahuje výstupy nebo výsledky odolné funkce. Vypadá podobně jako v tomto příkladu:

    {
        "name": "hello_orchestrator",
        "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. Pokud chcete zastavit ladění, v editoru Visual Studio Code vyberte Shift+F5.

Po ověření správného spuštění funkce na místním počítači je čas projekt publikovat 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í, vyberte na panelu Aktivit ikonu Azure. Pak v části Prostředky vyberte Přihlásit se k Azure.

    Snímek obrazovky s oknem přihlášení k Azure v editoru Visual Studio 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, vyberte Vytvořit účet Azure. Studenti můžou vybrat Vytvořit účet Azure for Students.

  2. Po zobrazení výzvy v prohlížeči vyberte 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. Předplatná, která patří k vašemu účtu Azure, se zobrazí na bočním panelu.

Vytvoření aplikace funkcí v Azure

V této části vytvoříte aplikaci funkcí v plánu Flex Consumption spolu se souvisejícími prostředky ve vašem předplatném Azure. Mnoho rozhodnutí o vytváření prostředků se pro vás provádí na základě výchozího chování. Pokud chcete mít větší kontrolu nad vytvořenými prostředky, musíte místo toho vytvořit aplikaci funkcí s pokročilými možnostmi.

  1. V editoru Visual Studio Code výběrem klávesy F1 otevřete paletu příkazů. Na příkazovém řádku (>) zadejte a pak vyberte Azure Functions: Vytvořit aplikaci funkcí v Azure.

  2. Na příkazovém řádku zadejte následující informace:

    Instrukce Akce
    Výběr předplatného Vyberte předplatné Azure, které chcete použít. Výzva se nezobrazí, pokud v části Prostředky uvidíte jenom jedno předplatné.
    Zadejte nový název aplikace funkcí. Zadejte globálně jedinečný název platný v cestě URL. Zadaný název se ověří, abyste měli jistotu, že je v Azure Functions jedinečný.
    Výběr umístění pro nové prostředky Vyberte oblast Azure. Pokud chcete dosáhnout lepšího výkonu , vyberte oblast blízko vás. Zobrazí se pouze oblasti podporované plány Flex Consumption.
    Výběr zásobníku modulu runtime Vyberte jazyk, kterou aktuálně spouštíte místně.
    Vyberte typ ověřování zdroje Vyberte Spravovanou identitu, což je nejbezpečnější možnost připojení k výchozímu účtu úložiště hostitele.

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

    Snímek obrazovky znázorňující protokol vytvoření prostředku Azure

  3. Po vytvoření aplikace funkcí se ve vašem předplatném Azure vytvoří následující související prostředky. Prostředky se pojmenují na základě názvu, který jste zadali pro vaši aplikaci funkcí.

    • Skupina prostředků, což je logický kontejner pro související prostředky.
    • 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 Aplikace Azure, který definuje základního hostitele vaší aplikace funkcí.
    • Standardní účet Azure Storage, který používá hostitel Functions k udržování stavu a dalších informací o vaší aplikaci funkcí.
    • Instance Application Insights, která je připojená k aplikaci funkcí a která sleduje použití funkcí v aplikaci.
    • Spravovaná identita přiřazená uživatelem přidaná do role Přispěvatel dat objektů blob služby Storage v novém výchozím účtu úložiště hostitele.

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

    Návod

    Ve výchozím nastavení se prostředky Azure vyžadované vaší aplikací funkcí vytvoří na základě názvu, který jste zadali pro aplikaci funkcí. Ve výchozím nastavení se prostředky vytvářejí pomocí aplikace funkcí ve stejné nové skupině prostředků. Pokud chcete přizpůsobit názvy přidružených zdrojů nebo znovu použít existující zdroje, publikujte projekt s rozšířený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. Na paletě příkazů zadejte a pak vyberte Azure Functions: Nasadit do aplikace funkcí.

  2. Vyberte aplikaci funkcí, kterou jste právě vytvořili. 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 zobrazíte.

    Snímek obrazovky s oknem Zobrazit výstup

Testování funkce v Azure

  1. Zkopírujte adresu URL triggeru HTTP z výstupního panelu. Adresa URL, která volá funkci aktivovanou protokolem HTTP, musí být v tomto formátu:

    https://<functionappname>.azurewebsites.net/api/orchestrators/hello_orchestrator

  2. Do adresního řádku prohlížeče vložte novou adresu URL požadavku HTTP. Když použijete publikovanou aplikaci, můžete očekávat, že získáte stejnou odpověď na stav, kterou jste získali při místním otestování.

Aplikace Python Durable Functions, kterou jste vytvořili a publikovali pomocí editoru Visual Studio Code, je připravená k použití.

Vyčištění prostředků

Pokud už nepotřebujete prostředky, které jste vytvořili k dokončení rychlého startu, abyste se vyhnuli souvisejícím nákladům ve vašem předplatném Azure, odstraňte skupinu prostředků a všechny související prostředky.