Rövid útmutató: Durable Functions alkalmazás konfigurálása a Durable Task Scheduler használatára

Állapotalapú függvények írása kiszolgáló nélküli környezetben a Durable Functions használatával, amely a Azure Functions egyik funkciója. Olyan forgatókönyvek, amelyekben a Durable Functions hasznos lehet: mikroszolgáltatások és munkafolyamatok vezénylése, állapotalapú minták, például ki-ki-/ventilátorozás és hosszú ideig futó feladatok.

A Durable Task Scheduler a Durable Functions háttérrendszereként is használható a vezénylés és az entitás futtatókörnyezeti állapotának tárolásához.

Ebben a gyors kezdő útmutatóban a következőket teheti meg:

  • Konfiguráljon egy meglévő Durable Functions-alkalmazást a Durable Task Scheduler használatára.
  • Állítsa be a Durable Task Emulatort a helyi fejlesztéshez.
  • Helyezze üzembe az alkalmazást az Azure-ban az App Service-csomagban a Visual Studio Code használatával.
  • Az alkalmazás és a feladatközpont állapotának monitorozása a Durable Task Scheduler irányítópultján.

A C# esetében ez a rövid útmutató az .NET izolált feldolgozómodellt használja.

Előfeltételek

  • Egy meglévő Azure Functions projekt a helyi számítógépen:
  • Docker telepítve a Durable Task Scheduler emulátor futtatásához.
  • Azurite telepítve.
  • EGY HTTP-teszteszköz , amely biztonságossá teszi az adatokat.

A Durable Task Scheduler csomag hozzáadása

Telepítse a Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged csomag legújabb verzióját a dotnet add package parancs használatával:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged --prerelease

Megjegyzés:

A Durable Task Scheduler bővítményhez a Microsoft.Azure.Functions.Worker.Extensions.DurableTask verzió 1.2.2 vagy újabb szükséges.

A host.json-ban frissítse a extensionBundle tulajdonságot, hogy a 4.32.0-s vagy újabb verziót használja, amely tartalmazza a Durable Task Scheduler támogatását.

{
  "extensionBundle": {
    "id": "Microsoft.Azure.Functions.ExtensionBundle",
    "version": "[4.32.0, 5.0.0)"
  }
}

Host.json frissítése

Frissítse a host.json-t az alábbiak szerint, hogy a Durable Task Scheduler-t háttérszerverként használja.

{
  "extensions": {
    "durableTask": {
      "hubName": "%TASKHUB_NAME%",
      "storageProvider": {
        "type": "azureManaged",
        "connectionStringName": "DURABLE_TASK_SCHEDULER_CONNECTION_STRING"
      }
    }
  }
}

local.settings.json konfigurálása

Kapcsolati információk hozzáadása a helyi fejlesztéshez:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "<DEPENDENT ON YOUR PROGRAMMING LANGUAGE>",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;Authentication=None",
    "TASKHUB_NAME": "default"
  }
}

A Durable Task Emulator beállítása

  1. Töltse le az emulátort tartalmazó Docker-képfájlt.

    docker pull mcr.microsoft.com/dts/dts-emulator:latest
    
  2. Futtassa az emulátort.

    docker run -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latest
    

    Az alábbi kimenet azt jelzi, hogy az emulátor sikeresen elindult.

    Képernyőkép az emulátor terminálon való sikeres indításáról.

  3. Jegyezze fel a Docker asztali verziójában közzétett portokat. Az ütemező több portot tesz elérhetővé különböző célokra:

    • 8080: gRPC-végpont, amely lehetővé teszi, hogy egy alkalmazás csatlakozzon az ütemezőhöz
    • 8082: A Durable Task Scheduler irányítópult végpontja

    A Docker portjainak képernyőképe.

Megjegyzés:

A Durable Task Scheduler emulator a vezénylési adatokat a memóriában tárolja, ami azt jelenti, hogy az összes adat elveszik, amikor leáll.

Helyi tesztelés

  1. Nyissa meg az alkalmazás gyökérkönyvtárát, és indítsa el az Azurite-t.

    azurite start
    
  2. Indítsa el az alkalmazást.

    func start
    

    Látnia kell az alkalmazás függvényeinek listáját.

  3. A vezénylési példány elindításához küldjön egy HTTP-kérést az URL-végpontra a választott HTTP-teszteszköz használatával.

  4. Másolja ki a böngésző címsorában lévő statusQueryGetUri URL-címet, és illessze be. Látnia kellene az állapotot az orchestration instance-on.

      {
        "name": "DurableFunctionsOrchestration",
        "instanceId": "<instanceID>",
        "runtimeStatus": "Completed",
        "input": null,
        "customStatus": null,
        "output": [
          "Hello Tokyo!",
          "Hello Seattle!",
          "Hello London!"
        ],
        "createdTime": "2025-02-21T21:09:59Z",
        "lastUpdatedTime": "2025-02-21T21:10:00Z"
      }
    
  5. A vezénylési példány további részleteinek megtekintéséhez nyissa meg http://localhost:8082/ a Durable Task Scheduler irányítópultot.

  6. Kattintson az alapértelmezett tevékenységközpontra az irányítópult megtekintéséhez.

Problémákat tapasztal a tesztelés során? Tekintse meg a hibaelhárítási útmutatót.

Az alkalmazás futtatása az Azure-ban

Szükséges erőforrások létrehozása

Hozz létre egy tartós feladatütemező példányt és egy Azure Functions alkalmazást az Azure-on a funkcióalkalmazás-integrációs létrehozási folyamat követésével. Ez a felület automatikusan beállítja az identitásalapú hozzáférést, és konfigurálja az alkalmazáshoz szükséges környezeti változókat az ütemező eléréséhez.

  1. Lépjen a Function app létrehozási felületre.

    Képernyőkép a függvényalkalmazások üzemeltetési lehetőségeiről.

  2. A Függvényalkalmazás létrehozása (Rugalmas használat) panelen töltse ki az Alapok lapon található információkat.

    A Flex Consumption terv függvényalkalmazás létrehozásához szükséges Alapszintű lap képernyőképe.

    szakterület Leírás
    Subscription Válassza ki Azure-előfizetését.
    Erőforráscsoport Válasszon ki egy meglévő erőforráscsoportot, vagy kattintson az Új létrehozása gombra egy új létrehozásához.
    Funkcióalkalmazás neve Hozzon létre egy egyedi nevet a függvényalkalmazásnak.
    Kódot vagy tárolórendszerképet szeretne üzembe helyezni? Hagyja bejelölve a Kód lehetőséget.
    Régió Válasszon egyet a támogatott régiók közül.
    Futtatókörnyezeti verem Válassza ki a quickstart során használt futtatókörnyezetet.
    Verzió Válassza ki a futtatókörnyezeti veremváltozatát.
    Példány mérete Válasszon ki egy példányméretet, vagy használja az alapértelmezett kijelölést. További információ a példányméretekről.
    Zónaredundancia Hagyja meg alapértelmezett letiltott beállításként.
  3. Válassza a Durable Functions lapot.

  4. Válassza az Azure által kezelt Durable Task Scheduler szolgáltatást a Durable Functions háttérszolgáltatójaként.

  5. Ütemező erőforrás létrehozása. Ez a művelet automatikusan létrehoz egy feladatközpontot.

    A Flex Consumption Function-alkalmazás létrehozásának képernyőképe.

    szakterület Leírás
    Tároló háttértár Válassza az Azure Managed Durable Task Scheduler lehetőséget.
    Régió Győződjön meg arról, hogy az ütemező és a függvényalkalmazás régiói megegyeznek.
    Tartós feladatütemező Használja a felajánlott ütemezőnevet, vagy kattintson az Új létrehozása gombra egy egyéni név létrehozásához.
    Terv Válassza ki a projektnek leginkább megfelelő tarifacsomagot . Tekintse meg az orchestration keretrendszer kiválasztására vonatkozó útmutatót annak megállapításához, hogy melyik csomag felel meg a legjobban az éles használathoz.
    Kapacitásegységek Csak akkor alkalmazható, ha a "Dedikált" díjszabási csomag van kiválasztva. Legfeljebb 3 kapacitásegységet választhat ki.
  6. Kattintson a Véleményezés + létrehozás gombra az erőforrás-létrehozás áttekintéséhez.

    A rendszer automatikusan létrehoz egy felhasználó által hozzárendelt felügyelt identitást a szükséges szerepköralapú hozzáférés-vezérlési (RBAC) engedéllyel, és hozzáadja a függvényalkalmazáshoz. Az összegző nézetben a felügyelt identitás erőforrásával kapcsolatos információk találhatók, például:

    • A hozzá rendelt szerepkör (Tartós Feladat Adatközlő)

    • A feladatközpont szintjére hatókörű hozzárendelés

      Képernyőkép a kiválasztott mezőkről és tulajdonságokról a Véleményezés + létrehozás lapon.

  7. Kattintson a Létrehozás gombra, ha az ellenőrzés sikeres.

Az erőforrás üzembe helyezése körülbelül 15–20 percet vehet igénybe. Ha ez befejeződött, üzembe helyezheti az alkalmazást az Azure-ban.

A függvényalkalmazás üzembe helyezése az Azure-ban

Fontos

Egy meglévő függvényalkalmazás üzembe helyezése az Azure-ban mindig felülírja az alkalmazás tartalmát.

  1. A parancskatalógusban írja be, majd válassza az Azure Functions: Üzembe helyezés függvényalkalmazásba lehetőséget.

  2. Válassza ki az imént létrehozott függvényalkalmazást. Amikor a rendszer kéri a korábbi üzembe helyezések felülírását, válassza a Üzembe helyezés lehetőséget a függvénykód új függvényalkalmazás-erőforrásba való telepítéséhez.

  3. Ha az üzembe helyezés befejeződött, válassza a Megtekintő kimenet lehetőséget a létrehozási és üzembe helyezési eredmények megtekintéséhez, beleértve a létrehozott Azure erőforrásokat is. Ha nem jelenik meg az értesítés, a jobb alsó sarokban lévő harang ikont választva ismét láthatja.

    Képernyőkép a Kimenet megtekintése ablakról.

Alkalmazások a Functions Premium-csomagban

Ha az alkalmazás a Functions Premium csomagban fut, az üzembe helyezés után kapcsolja be a futtatókörnyezeti méretezés monitorozási beállítását, hogy az alkalmazás automatikusan skálázható legyen a terhelés alapján:

az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.functionsRuntimeScaleMonitoringEnabled=1 --resource-type Microsoft.Web/sites

Tesztelje a függvényalkalmazását

Futtassa a következő parancsot a függvény URL-címének lekéréséhez:

az functionapp function list --resource-group <RESOURCE_GROUP_NAME> --name <FUNCTION_APP_NAME>  --query '[].{Function:name, URL:invokeUrlTemplate}' --output json

Vezénylés állapotának ellenőrzése

Ellenőrizze az orkestrációs példány állapotát és a tevékenység részleteit a Durable Task Scheduler vezérlőpultján. Az irányítópult eléréséhez be kell jelentkeznie.

Megjegyzés:

Az alábbi utasítások egy adott tevékenységközpontra hatókörrel rendelkező szerepkör-hozzárendelést mutatnak be. Ha egy ütemező összes tevékenységközpontjának hozzáférésére van szüksége, végezze el a feladatot az ütemező szintjén.

  1. Keresse meg a Durable Task Scheduler erőforrást a portálon.

  2. Kattintson a tevékenységközpont nevére.

  3. A bal oldali menüben válassza a Hozzáférés-vezérlés (IAM) lehetőséget.

  4. Szerepkör-hozzárendelés hozzáadásához kattintson a Hozzáadás gombra.

    Képernyőkép a szerepkör-hozzárendelés hozzáadásáról a portál Hozzáférés-vezérlés paneljén.

  5. Keresse meg és válassza ki a Durable Task Data Közreműködőt. Kattintson a Tovább feliratra.

    Képernyőkép a Durable Task Data Közreműködői szerepkör-hozzárendelés kiválasztásáról a portálon.

  6. A Tagok lapon a Hozzáférés hozzárendelése lapon válassza a Felhasználó, csoport vagy szolgáltatásnév lehetőséget.

  7. Tagok esetén kattintson a + Tagok kijelölése elemre.

  8. A Tagok kiválasztása panelen keresse meg a nevét vagy az e-mail-címét:

    Képernyőkép a felhasználó által hozzárendelt felügyelt identitástípus kiválasztásáról a portálon.

  9. Válassza ki az e-mailt, és kattintson a Kiválasztás gombra.

  10. Kattintson a Véleményezés + hozzárendelés gombra a szerepkör hozzárendelésének befejezéséhez.

  11. Miután hozzárendelte a szerepkört, kattintson az Áttekintés gombra a tevékenységközpont-erőforrás bal oldali menüjében, és keresse meg a felső Essentials szakaszban található irányítópult URL-címét.

Erőforrások tisztítása

Ha már nincs szüksége a gyorsútmutató végrehajtásához létrehozott erőforrásokra, az Azure-előfizetéshez kapcsolódó költségek elkerülése érdekében törölje az erőforráscsoportot és az összes kapcsolódó erőforrást.

Következő lépések