Udostępnij przez


Szybki start: konfigurowanie aplikacji Durable Functions do korzystania z usługi Azure Functions Durable Task Scheduler

Pisanie funkcji stanowych w środowisku bezserwerowym przy użyciu rozszerzenia Durable Functions, funkcji usługi Azure Functions. Scenariusze, w których funkcja Durable Functions jest przydatna, obejmują organizowanie mikrousług i przepływów pracy, wzorce stanowe, takie jak fan-out/fan-in i długotrwałe zadania.

Aby przechowywać aranżację i stan środowiska uruchomieniowego jednostki, możesz użyć narzędzia Durable Task Scheduler jako zaplecza dla usługi Durable Functions.

W ramach tego szybkiego przewodnika wykonasz następujące czynności:

  • Skonfiguruj istniejącą aplikację Durable Functions do korzystania z harmonogramu zadań Durable Task Scheduler.
  • Skonfiguruj emulator rozszerzenia Durable Task na potrzeby programowania lokalnego.
  • Wdróż aplikację na platformie Azure w planie usługi App Service przy użyciu programu Visual Studio Code.
  • Monitoruj stan aplikacji i centrum zadań na pulpicie nawigacyjnym narzędzia Durable Task Scheduler.

Wymagania wstępne

W tym przewodniku Szybki start założono, że masz już projekt usługi Azure Functions na komputerze lokalnym z następującymi elementami:

Jeśli nie spełniasz tych wymagań wstępnych, zalecamy, aby zacząć od jednego z następujących szybkich przewodników w celu przygotowania lokalnego projektu Functions.

Potrzebne są również następujące elementy:

Dodawanie pakietu Durable Task Scheduler

Zainstaluj najnowszą wersję pakietu Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged przy użyciu polecenia dotnet add package :

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

Uwaga

Rozszerzenie Durable Task Scheduler wymaga wersji Microsoft.Azure.Functions.Worker.Extensions.DurableTask lub nowszej.1.2.2

W host.jsonzaktualizuj właściwość extensionBundle, aby używać wersji zapoznawczej zawierającej pakiet Durable Task Scheduler.

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

Aktualizacja host.json

Zaktualizuj host.json w następujący sposób, aby używać narzędzia Durable Task Scheduler jako zaplecza.

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

Skonfiguruj local.settings.json

Dodaj informacje o połączeniu na potrzeby programowania lokalnego:

{
  "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"
  }
}

Skonfiguruj emulator Durable Task

  1. Pobierz obraz Dockera zawierający emulator.

    docker pull mcr.microsoft.com/dts/dts-emulator:latest
    
  2. Uruchom emulator.

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

    Następujące dane wyjściowe wskazują, że emulator został uruchomiony pomyślnie.

    Zrzut ekranu przedstawiający pomyślne uruchomienie emulatora w terminalu.

  3. Zanotuj porty uwidocznione w Docker Desktop. Harmonogram uwidacznia wiele portów w różnych celach:

    • 8080: punkt końcowy gRPC, który umożliwia aplikacji łączenie się z harmonogramem
    • 8082: Punkt końcowy dla pulpitu nawigacyjnego narzędzia Durable Task Scheduler

    Zrzut ekranu przedstawiający porty na platformie Docker.

Testowanie lokalne

  1. Przejdź do katalogu głównego aplikacji i uruchom aplikację Azurite.

    azurite start
    
  2. Uruchom aplikację.

    func start
    

    Powinna zostać wyświetlona lista funkcji w aplikacji. Jeśli utworzyłeś aplikację, postępując według jednego z szybkich przewodników dotyczących Durable Functions, powinny zostać wyświetlone dane wyjściowe podobne do następujących:

    Zrzut ekranu przedstawiający funkcje wymienione podczas lokalnego uruchamiania aplikacji.

  3. Uruchom wystąpienie orkiestracji, wysyłając żądanie HTTP POST do punktu końcowego adresu URL, używając wybranego przez Ciebie narzędzia testowego HTTP.

  4. Skopiuj wartość adresu URL dla statusQueryGetUri i wklej ją w pasku adresu przeglądarki. Powinieneś zobaczyć status wystąpienia orkiestracji:

      {
        "name": "DurableFunctionsOrchestrationCSharp1",
        "instanceId": "b50f8b723f2f44149ab9fd2e3790a0e8",
        "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. Aby wyświetlić więcej szczegółów dotyczących wystąpienia aranżacji, przejdź do http://localhost:8082/ pulpitu nawigacyjnego narzędzia Durable Task Scheduler.

  6. Kliknij domyślne centrum zadań, aby wyświetlić jego pulpit nawigacyjny.

Uwaga

Dowiedz się więcej o pulpicie nawigacyjnym narzędzia Durable Task Scheduler.

Emulator narzędzia Durable Task Scheduler przechowuje dane orkiestracji w pamięci, co oznacza, że wszystkie dane zostaną utracone po zamknięciu.

Występują problemy z testowaniem? Zobacz przewodnik rozwiązywania problemów.

Uruchamianie aplikacji na platformie Azure

Tworzenie wymaganych zasobów

Utwórz wystąpienie usługi Durable Task Scheduler i aplikację Azure Functions na platformie Azure, postępując zgodnie ze zintegrowanym przepływem tworzenia aplikacji funkcji. To środowisko automatycznie skonfiguruje dostęp oparty na tożsamościach i skonfiguruje wymagane zmienne środowiskowe dla aplikacji w celu uzyskania dostępu do harmonogramu.

  1. Przejdź do panelu tworzenia aplikacji funkcji.

    Zrzut ekranu przedstawiający opcje hostingu dla aplikacji typu Function.

  2. Na stronie Tworzenie aplikacji funkcji (Flex Consumption) wypełnij informacje na karcie Podstawy.

    Zrzut ekranu przedstawiający zakładkę Podstawowa do tworzenia aplikacji funkcji dla planu Flex Consumption.

    (No changes needed) Opis
    Subskrypcja Wybierz subskrypcję platformy Azure.
    Grupa zasobów Wybierz istniejącą grupę zasobów lub kliknij Utwórz nową, aby utworzyć nową.
    Nazwa Function App Utwórz unikatową nazwę aplikacji funkcyjnej.
    Czy chcesz wdrożyć kod lub obraz kontenera? Pozostaw zaznaczoną opcję Kod.
    Rejon Wybierz jeden z obsługiwanych regionów.
    Stos środowiska uruchomieniowego Wybierz środowisko uruchomieniowe, którego używasz na potrzeby tego przewodnika szybkiego startu.
    wersja Wybierz wersję środowiska uruchomieniowego.
    Rozmiar wystąpienia Wybierz rozmiar wystąpienia lub użyj zaznaczenia domyślnego. Dowiedz się więcej o rozmiarach wystąpień.
    Redundancja strefowa Pozostaw domyślne ustawienie Wyłączone .
  3. Wybierz zakładkę Durable Functions.

  4. Wybierz Zarządzany przez Azure: Durable Task Scheduler jako dostawcę zaplecza dla Durable Functions.

  5. Utwórz zasób harmonogramu. Ta akcja automatycznie tworzy centrum zadań.

    Zrzut ekranu przedstawiający tworzenie aplikacji funkcji Flex Consumption.

    (No changes needed) Opis
    Zaplecze magazynu Wybierz pozycję Zarządzane przez platformę Azure: Trwały harmonogram zadań.
    Rejon Upewnij się, że regiony aplikacji harmonogramu i funkcji są takie same.
    Trwały harmonogram zadań Użyj oferowanej nazwy harmonogramu lub kliknij Utwórz nową, aby utworzyć nazwę niestandardową.
    Planowanie Wybierz plan cenowy , który najlepiej pasuje do projektu. Zapoznaj się z przewodnikiem Wybieranie struktury aranżacji , aby określić, który plan jest najlepszy do użycia w środowisku produkcyjnym.
    Jednostki pojemności Ma zastosowanie tylko wtedy, gdy wybrano plan cenowy "Dedykowany". Możesz wybrać maksymalnie 3 jednostki pojemności.
  6. Kliknij Przejrzyj i utwórz, aby przejrzeć proces tworzenia zasobów.

    Tożsamość zarządzana przypisana przez użytkownika z wymaganym uprawnieniem kontroli dostępu opartej na rolach (RBAC) jest tworzona automatycznie i dodawana do aplikacji funkcji. W podglądzie podsumowania można znaleźć informacje związane z zasobem tożsamości zarządzanej, takie jak:

    • Przypisana do niego rola (kontrybutor danych o zadaniach trwałych)

    • Przypisanie ograniczone na poziomie centrum operacyjnego

      Zrzut ekranu przedstawiający wybrane pola i właściwości oraz ich przegląd na karcie Przegląd i tworzenie.

  7. Po zakończeniu walidacji kliknij Utwórz.

Wdrażanie zasobów może potrwać od około 15 do 20 minut. Po zakończeniu możesz wdrożyć aplikację na platformie Azure.

Wdrażanie aplikacji funkcyjnej na platformie Azure

Ważne

Wdrażanie w istniejącej aplikacji funkcji zawsze zastępuje zawartość tej aplikacji na platformie Azure.

  1. W palecie poleceń wprowadź i wybierz pozycję Azure Functions: Deploy to Function App (Azure Functions: Wdróż w aplikacji funkcji).

  2. Wybierz właśnie utworzoną aplikację funkcji. Po wyświetleniu monitu o zastąpienie poprzednich wdrożeń wybierz pozycję Wdróż , aby wdrożyć kod funkcji w nowym zasobie aplikacji funkcji.

  3. Po zakończeniu wdrażania wybierz pozycję Wyświetl dane wyjściowe , aby wyświetlić wyniki tworzenia i wdrażania, w tym utworzone zasoby platformy Azure. Jeśli przegapisz powiadomienie, wybierz ikonę dzwonka w prawym dolnym rogu, aby zobaczyć je ponownie.

    Zrzut ekranu przedstawiający okno Wyświetl dane wyjściowe.

Aplikacje w planie Premium usługi Functions

Jeśli aplikacja jest uruchomiona w planie usługi Functions Premium, włącz ustawienie Monitorowanie skalowania środowiska uruchomieniowego po wdrożeniu, aby upewnić się, że aplikacja jest automatycznie skalowana na podstawie obciążenia:

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

Przetestuj aplikację funkcji

Uruchom następujące polecenie, aby uzyskać adres URL funkcji:

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

Sprawdź stan orkiestracji

Sprawdź status instancji orkiestracji i szczegóły aktywności na konsoli narzędzia Durable Task Scheduler. Uzyskiwanie dostępu do pulpitu nawigacyjnego wymaga zalogowania się.

Uwaga

Poniższa instrukcja przedstawia przypisanie roli o określonym zakresie do określonego centrum zadań. Jeśli potrzebujesz dostępu do wszystkich węzłów zadań w planu, wykonaj przypisanie na poziomie planisty.

  1. Przejdź do zasobu Durable Task Scheduler w portalu.

  2. Kliknij nazwę centrum zadań.

  3. W menu po lewej stronie wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami)..

  4. Kliknij Dodaj, aby dodać przypisanie roli.

    Zrzut ekranu z dodawania przypisania roli w okienku kontroli dostępu w portalu.

  5. Wyszukaj i wybierz Durable Task Data Contributor. Kliknij przycisk Dalej.

    Zrzut ekranu przedstawiający wybieranie przypisania roli Współautor danych zadania trwałego w portalu.

  6. Na karcie Członkowie, w polu Przypisz dostęp do, wybierz Użytkownik, grupa lub jednostka usługi.

  7. Dla członków kliknij + Wybierz członków.

  8. W sekcji wyboru członków, wyszukaj swoje imię i nazwisko lub adres e-mail.

    Zrzut ekranu przedstawiający wybieranie typu tożsamości zarządzanej przypisanej przez użytkownika w portalu.

  9. Wybierz wiadomość e-mail i kliknij przycisk Wybierz.

  10. Kliknij Przejrzyj i przypisz, aby zakończyć przypisywanie roli.

  11. Po przypisaniu roli kliknij Przegląd w menu po lewej stronie zasobu centrum zadań i przejdź do adresu URL pulpitu nawigacyjnego znajdującego się w górnej części sekcji Podstawowe.

Czyszczenie zasobów

Jeśli nie potrzebujesz już zasobów utworzonych do ukończenia tego przewodnika Szybki start, aby uniknąć powiązanych kosztów w ramach subskrypcji platformy Azure, usuń grupę zasobów i wszystkie powiązane zasoby.

Następne kroki