Tworzenie rozszerzenia Durable Functions przy użyciu witryny Azure Portal

Rozszerzenie Durable Functions dla usługi Azure Functions jest dostępne w pakiecie NuGet Microsoft.Azure.WebJobs.Extensions.DurableTask. To rozszerzenie musi być zainstalowane w aplikacji funkcji. W tym artykule pokazano, jak zainstalować ten pakiet, aby można było opracowywać trwałe funkcje w witrynie Azure Portal.

Uwaga

  • Jeśli tworzysz trwałe funkcje w języku C#, zamiast tego należy rozważyć programowanie w programie Visual Studio 2019.
  • Jeśli tworzysz trwałe funkcje w języku JavaScript, zamiast tego należy rozważyć programowanie w programie Visual Studio Code.

Tworzenie aplikacji funkcji

Aby hostować wykonywanie dowolnej funkcji, musisz mieć aplikację funkcji. Aplikacja funkcji umożliwia grupowanie funkcji jako jednostki logicznej w celu łatwiejszego zarządzania, wdrażania, skalowania i udostępniania zasobów. Możesz utworzyć aplikację .NET lub JavaScript.

  1. W menu witryny Azure Portal lub na stronie głównej wybierz pozycję Utwórz zasób.

  2. Na stronie Nowy wybierz pozycję Aplikacja funkcji obliczeniowej>.

  3. Na stronie Podstawowe użyj ustawień aplikacji funkcji, jak określono w poniższej tabeli:

    Ustawienie Sugerowana wartość opis
    Subskrypcja Twoja subskrypcja Subskrypcja, w ramach której tworzysz nową aplikację funkcji.
    Grupa zasobów myResourceGroup Nazwa nowej grupy zasobów, w której tworzysz aplikację funkcji. Należy utworzyć nową grupę zasobów, ponieważ istnieją znane ograniczenia podczas tworzenia nowych aplikacji funkcji w istniejącej grupie zasobów.
    Nazwa aplikacji funkcji Nazwa unikatowa w skali globalnej Nazwa identyfikująca nową aplikację funkcji. Prawidłowe znaki to a-z (bez uwzględniania wielkości liter), 0-9i -.
    Czy chcesz wdrożyć kod lub obraz kontenera? Kod Opcja publikowania plików kodu lub kontenera platformy Docker.
    Stos środowiska uruchomieniowego Preferowany język Wybierz środowisko uruchomieniowe, które obsługuje ulubiony język programowania funkcji. Edytowanie w portalu jest dostępne tylko dla skryptów JavaScript, PowerShell, Python, TypeScript i C#. Biblioteka klas języka C# i funkcje języka Java muszą być opracowywane lokalnie.
    Wersja Numer wersji Wybierz wersję zainstalowanego środowiska uruchomieniowego.
    Region Preferowany region Wybierz region, który znajduje się blisko Ciebie lub w pobliżu innych usług, do których mogą uzyskiwać dostęp funkcje.
    System operacyjny Windows System operacyjny jest wstępnie wybierany na podstawie wyboru stosu środowiska uruchomieniowego, ale w razie potrzeby możesz zmienić ustawienie. Edytowanie w portalu jest obsługiwane tylko w systemie Windows. Publikowanie kontenerów jest obsługiwane tylko w systemie Linux.
    Opcje hostingu i plany Zużycie (bezserwerowe) Plan hostingu określający sposób przydzielania zasobów do aplikacji funkcji. W domyślnym planie Zużycie zasoby są dodawane dynamicznie zgodnie z wymaganiami funkcji. W tym hostingu bezserwerowym płacisz tylko za czas działania funkcji. Plan Premium oferuje również dynamiczne skalowanie. W przypadku uruchomienia w ramach planu usługi App Service musisz zarządzać skalowaniem aplikacji funkcji.
  4. Zaakceptuj domyślne opcje tworzenia nowego konta magazynu na karcie Magazyn i nowe wystąpienie usługi Application Insight na karcie Monitorowanie. Możesz również użyć istniejącego konta magazynu lub wystąpienia aplikacji Szczegółowe informacje.

  5. Wybierz pozycję Przejrzyj i utwórz , aby przejrzeć wybraną konfigurację aplikacji, a następnie wybierz pozycję Utwórz , aby aprowizować i wdrożyć aplikację funkcji.

  6. Wybierz ikonę Powiadomienia w prawym górnym rogu portalu i poszukaj komunikatu Wdrożenie zakończyło się pomyślnie .

  7. Wybierz pozycję Przejdź do zasobu, aby wyświetlić swoją nową aplikację funkcji. Możesz również wybrać pozycję Przypnij do pulpitu nawigacyjnego. Przypinanie ułatwia powrót do tego zasobu aplikacji funkcji z poziomu pulpitu nawigacyjnego.

    Screenshot of deployment notification.

Domyślnie utworzona aplikacja funkcji używa wersji 2.x środowiska uruchomieniowego usługi Azure Functions. Rozszerzenie Durable Functions działa zarówno w wersjach 1.x, jak i 2.x środowiska uruchomieniowego usługi Azure Functions w języku C# oraz w wersji 2.x w języku JavaScript. Szablony są jednak dostępne tylko w przypadku określania wersji 2.x środowiska uruchomieniowego niezależnie od wybranego języka.

Instalowanie pakietu npm durable-functions (tylko język JavaScript)

Jeśli tworzysz rozszerzenie Durable Functions języka JavaScript, musisz zainstalować durable-functions pakiet npm:

  1. Na stronie aplikacji funkcji wybierz pozycję Narzędzia zaawansowane w obszarze Narzędzia programistyczne w okienku po lewej stronie.

    Functions platform features choose Kudu

  2. Na stronie Narzędzia zaawansowane wybierz pozycję Przejdź.

  3. W konsoli Kudu wybierz pozycję Konsola debugowania, a następnie CMD.

    Kudu debug console

  4. Powinna zostać wyświetlona struktura katalogów plików aplikacji funkcji. Przejdź do folderu site/wwwroot. Z tego miejsca możesz przekazać package.json plik, przeciągając go i upuszczając go w oknie katalogu plików. Poniżej przedstawiono przykład package.json :

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

    Kudu upload package.json

  5. package.json Po przekazaniu uruchom npm install polecenie z konsoli zdalnego wykonywania Kudu.

    Kudu run npm install

Tworzenie funkcji orkiestratora

  1. W aplikacji funkcji wybierz pozycję Funkcje w okienku po lewej stronie, a następnie wybierz pozycję Dodaj z górnego menu.

  2. W polu wyszukiwania strony Nowa funkcja wprowadź ciąg durable, a następnie wybierz szablon startowy HTTP durable functions.

    Select Durable Functions HTTP starter

  3. W polu Nowa nazwa funkcji wprowadź wartość HttpStart, a następnie wybierz pozycję Utwórz funkcję.

    Utworzona funkcja służy do uruchamiania aranżacji.

  4. Utwórz inną funkcję w aplikacji funkcji, tym razem przy użyciu szablonu orkiestratora durable functions. Nadaj nowej funkcji HelloSequencearanżacji nazwę .

  5. Utwórz trzecią funkcję o nazwie Hello przy użyciu szablonu działania durable functions.

Testowanie orkiestracji funkcji trwałej

  1. Wróć do funkcji HttpStart , wybierz pozycję Pobierz adres URL funkcji, a następnie wybierz ikonę Kopiuj do schowka , aby skopiować adres URL. Ten adres URL służy do uruchamiania funkcji HelloSequence .

  2. Użyj narzędzia HTTP, takiego jak Postman lub cURL, aby wysłać żądanie POST do skopiowanego adresu URL. Poniższy przykład to polecenie cURL, które wysyła żądanie POST do funkcji trwałej:

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

    W tym przykładzie {your-function-app-name} jest to domena, która jest nazwą aplikacji funkcji i {functionName} jest funkcją orkiestratora HelloSequence . Komunikat odpowiedzi zawiera zestaw punktów końcowych identyfikatora URI, które umożliwiają monitorowanie wykonywania i zarządzanie nim, co wygląda podobnie jak w poniższym przykładzie:

    {  
       "id":"10585834a930427195479de25e0b952d",
       "statusQueryGetUri":"https://...",
       "sendEventPostUri":"https://...",
       "terminatePostUri":"https://...",
       "rewindPostUri":"https://..."
    }
    
  3. Wywołaj statusQueryGetUri identyfikator URI punktu końcowego i zobaczysz bieżący stan funkcji durable, która może wyglądać następująco:

        {
            "runtimeStatus": "Running",
            "input": null,
            "output": null,
            "createdTime": "2017-12-01T05:37:33Z",
            "lastUpdatedTime": "2017-12-01T05:37:36Z"
        }
    
  4. Kontynuuj wywoływanie punktu końcowego statusQueryGetUri do momentu zmiany stanu na Ukończono i zostanie wyświetlona odpowiedź podobna do następującego przykładu:

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

Twoja pierwsza trwała funkcja jest teraz uruchomiona na platformie Azure.

Następne kroki