Tworzenie pierwszej funkcji trwałej w programie PowerShell

Durable Functions to rozszerzenie usługi Azure Functions umożliwiające zapisywanie funkcji stanowych w środowisku bezserwerowym. Rozszerzenie zarządza stanem, punktami kontrolnymi i ponownym uruchamianiem.

W tym artykule przedstawiono użycie rozszerzenia programu Visual Studio Code dla usługi Azure Functions w celu lokalnego utworzenia i przetestowania funkcji trwałej „hello world”. Ta funkcja będzie aranżować i łączyć w łańcuchy wywołania do innych funkcji. Kod funkcji zostanie następnie opublikowany na platformie Azure.

Uruchamianie funkcji trwałej na platformie Azure

Wymagania wstępne

W celu ukończenia tego samouczka:

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Tworzenie projektu lokalnego

W tej sekcji użyjesz programu Visual Studio Code do utworzenia lokalnego projektu usługi Azure Functions.

  1. W programie Visual Studio Code naciśnij klawisz F1 (lub Ctrl/Cmd+Shift+P), aby otworzyć paletę poleceń. W palecie poleceń wyszukaj i wybierz pozycję Azure Functions: Create New Project....

    Tworzenie funkcji

  2. Wybierz pustą lokalizację folderu dla projektu i wybierz pozycję Wybierz.

  3. Po wyświetleniu monitów podaj następujące informacje:

    Monit Wartość Opis
    Wybieranie języka projektu aplikacji funkcji PowerShell Utwórz lokalny projekt usługi PowerShell Functions.
    Wybierz wersję Usługa Azure Functions w wersji 4 Ta opcja jest widoczna tylko wtedy, gdy narzędzia Core Tools nie są jeszcze zainstalowane. W takim przypadku narzędzia Core Tools są instalowane po raz pierwszy podczas uruchamiania aplikacji.
    Wybieranie szablonu dla pierwszej funkcji projektu Pomiń teraz
    Wybierz sposób otwierania projektu Otwórz w bieżącym oknie Otwiera ponownie program VS Code w wybranym folderze.

W razie potrzeby program Visual Studio Code instaluje narzędzia Azure Functions Core Tools. Tworzy również projekt aplikacji funkcji w folderze. Ten projekt zawiera pliki konfiguracji host.json i local.settings.json .

Plik package.json jest również tworzony w folderze głównym.

Konfigurowanie aplikacji funkcji do korzystania z programu PowerShell 7

Otwórz plik local.settings.json i upewnij się, że ustawienie o nazwie FUNCTIONS_WORKER_RUNTIME_VERSION ma ustawioną wartość ~7. Jeśli brakuje go lub ustawisz na inną wartość, zaktualizuj zawartość pliku.

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "",
    "FUNCTIONS_WORKER_RUNTIME": "powershell",
    "FUNCTIONS_WORKER_RUNTIME_VERSION" : "~7"
  }
}

Tworzenie funkcji

Najbardziej podstawowa aplikacja Durable Functions zawiera trzy funkcje:

  • Funkcja orchestrator — opisuje przepływ pracy, który organizuje inne funkcje.
  • Funkcja Activity — wywoływana przez funkcję orkiestratora, wykonuje pracę i opcjonalnie zwraca wartość.
  • Funkcja klienta — zwykła funkcja platformy Azure, która uruchamia funkcję orkiestratora. W tym przykładzie użyto funkcji wyzwalanej przez protokół HTTP.

Orchestrator, funkcja

Szablon służy do tworzenia kodu funkcji trwałej w projekcie.

  1. W palecie poleceń wyszukaj i wybierz pozycję Azure Functions: Create Function....

  2. Po wyświetleniu monitów podaj następujące informacje:

    Monit Wartość Opis
    Wybieranie szablonu dla funkcji Orkiestrator rozszerzenia Durable Functions Tworzenie orkiestracji rozszerzenia Durable Functions
    Podaj nazwę funkcji HelloOrchestrator Nazwa funkcji trwałej

Dodano orkiestrator do koordynowania funkcji działania. Otwórz plik HelloOrchestrator/run.ps1 , aby wyświetlić funkcję orkiestratora. Każde wywołanie polecenia Invoke-ActivityFunction cmdlet wywołuje funkcję działania o nazwie Hello.

Następnie dodasz przywołyną Hello funkcję działania.

Activity, funkcja

  1. W palecie poleceń wyszukaj i wybierz pozycję Azure Functions: Create Function....

  2. Po wyświetleniu monitów podaj następujące informacje:

    Monit Wartość Opis
    Wybieranie szablonu dla funkcji Działanie rozszerzenia Durable Functions Tworzenie funkcji działania
    Podaj nazwę funkcji Hello (Cześć) Nazwa funkcji działania

Dodano Hello funkcję działania wywoływaną przez koordynatora. Otwórz plik Hello/run.ps1 , aby zobaczyć, że przyjmuje nazwę jako dane wejściowe i zwraca powitanie. Funkcja działania to miejsce, w którym będziesz wykonywać akcje, takie jak wykonywanie wywołania bazy danych lub wykonywanie obliczeń.

Na koniec dodasz funkcję wyzwalaną przez protokół HTTP, która uruchamia orkiestrację.

Funkcja klienta (starter HTTP)

  1. W palecie poleceń wyszukaj i wybierz pozycję Azure Functions: Create Function....

  2. Po wyświetleniu monitów podaj następujące informacje:

    Monit Wartość Opis
    Wybieranie szablonu dla funkcji Trwały start HTTP usługi Durable Functions Tworzenie funkcji startowej HTTP
    Podaj nazwę funkcji HttpStart Nazwa funkcji działania
    Poziom autoryzacji Anonimowe W celach demonstracyjnych zezwól na wywoływanie funkcji bez uwierzytelniania

Dodano funkcję wyzwalaną przez protokół HTTP, która uruchamia aranżację. Otwórz plik HttpStart/run.ps1 , aby zobaczyć, że używa Start-NewOrchestration polecenia cmdlet do rozpoczęcia nowej aranżacji. Następnie używa New-OrchestrationCheckStatusResponse polecenia cmdlet , aby zwrócić odpowiedź HTTP zawierającą adresy URL, których można użyć do monitorowania nowej aranżacji i zarządzania nią.

Masz teraz aplikację Durable Functions, którą można uruchomić lokalnie i wdrożyć na platformie Azure.

Uwaga

Następna wersja programu PowerShell systemu plików DF jest teraz dostępna w wersji zapoznawczej i może zostać pobrana z Galeria programu PowerShell. Dowiedz się więcej o nim i sposobie jego wypróbowania w przewodniku po autonomicznym zestawie SDK programu PowerShell. Aby uzyskać instrukcje zgodne z tym przewodnikiem Szybki start, możesz postępować zgodnie z sekcją dotyczącą instalacji przewodnika.

Lokalne testowanie funkcji

Podstawowe narzędzia usługi Azure Functions umożliwiają uruchamianie projektu usługi Azure Functions na lokalnym komputerze deweloperskim. Zostanie wyświetlony monit o zainstalowanie tych narzędzi przy pierwszym uruchomieniu aplikacji funkcji z poziomu programu Visual Studio Code.

  1. Aby przetestować funkcję, ustaw punkt przerwania w Hello kodzie funkcji działania (Hello/run.ps1). Naciśnij klawisz F5 lub wybierz z Debug: Start Debugging palety poleceń, aby uruchomić projekt aplikacji funkcji. Dane wyjściowe z pakietu Core Tools są wyświetlane na panelu terminalu.

    Uwaga

    Aby uzyskać więcej informacji na temat debugowania, zapoznaj się z diagnostyką rozszerzenia Durable Functions.

  2. Rozszerzenie Durable Functions wymaga uruchomienia konta usługi Azure Storage. Gdy program VS Code wyświetli monit o wybranie konta magazynu, wybierz pozycję Wybierz konto magazynu.

    Tworzenie konta magazynu

  3. Po wyświetleniu monitów podaj następujące informacje, aby utworzyć nowe konto magazynu na platformie Azure.

    Monit Wartość Opis
    Wybieranie subskrypcji nazwa subskrypcji Wybierz subskrypcję platformy Azure
    Wybierz konto magazynu Tworzenie nowego konta magazynu
    Wprowadź nazwę nowego konta magazynu unikatowa nazwa Nazwa konta magazynu do utworzenia
    Wybieranie grupy zasobów unikatowa nazwa Nazwa grupy zasobów do utworzenia
    Wybieranie lokalizacji Region Wybierz region blisko Ciebie
  4. W panelu terminalu skopiuj punkt końcowy adresu URL funkcji wyzwalanej przez protokół HTTP.

    Lokalne dane wyjściowe platformy Azure

  5. Za pomocą przeglądarki lub narzędzia, takiego jak Postman lub cURL, wyślij żądanie HTTP POST do punktu końcowego adresu URL. Zastąp ostatni segment nazwą funkcji orkiestratora (HelloOrchestrator). Adres URL powinien być podobny do http://localhost:7071/api/orchestrators/HelloOrchestrator.

    Odpowiedź to początkowy wynik funkcji HTTP informujący o pomyślnym rozpoczęciu orkiestracji trwałej. Nie jest to jeszcze końcowy wynik aranżacji. Odpowiedź zawiera kilka przydatnych adresów URL. Na razie wykonajmy zapytanie o stan aranżacji.

  6. Skopiuj wartość adresu URL i statusQueryGetUri wklej ją na pasku adresu przeglądarki i wykonaj żądanie. Alternatywnie możesz również nadal używać narzędzia Postman do wystawiania żądania GET.

    Żądanie wykona zapytanie o stan wystąpienia aranżacji. Otrzymasz ostateczną odpowiedź, która pokazuje, że wystąpienie zostało ukończone i zawiera dane wyjściowe lub wyniki funkcji trwałej. Wygląda na to:

    {
        "name": "HelloOrchestrator",
        "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"
    }
    
  7. Aby zatrzymać debugowanie, naciśnij klawisze Shift + F5 w programie VS Code.

Gdy będziesz mieć pewność, że funkcja działa poprawnie na komputerze lokalnym, możesz opublikować projekt na platformie Azure.

Logowanie się do platformy Azure

Aby można było utworzyć zasoby platformy Azure lub opublikować aplikację, musisz zalogować się na platformie Azure.

  1. Jeśli jeszcze nie zalogowałeś się, wybierz ikonę platformy Azure na pasku działania. Następnie w obszarze Zasoby wybierz pozycję Zaloguj się do platformy Azure....

    Zrzut ekranu przedstawiający okno logowania do platformy Azure w programie VS Code.

    Jeśli już się zalogowałeś i widzisz istniejące subskrypcje, przejdź do następnej sekcji. Jeśli nie masz jeszcze konta platformy Azure, wybierz pozycję Utwórz konto platformy Azure.... Uczniowie mogą wybrać pozycję Utwórz konto platformy Azure for Students....

  2. Po wyświetleniu monitu w przeglądarce wybierz swoje konto platformy Azure i zaloguj się przy użyciu poświadczeń konta platformy Azure. Jeśli tworzysz nowe konto, możesz zalogować się po utworzeniu konta.

  3. Po pomyślnym zalogowaniu możesz zamknąć nowe okno przeglądarki. Subskrypcje należące do konta platformy Azure są wyświetlane na pasku bocznym.

Tworzenie aplikacji funkcji na platformie Azure

W tej sekcji utworzysz aplikację funkcji i powiązane zasoby w ramach subskrypcji platformy Azure.

  1. Wybierz ikonę platformy Azure na pasku działania. Następnie w obszarze Zasoby wybierz ikonę + i wybierz opcję Utwórz aplikację funkcji na platformie Azure .

    Tworzenie zasobu w subskrypcji platformy Azure

  2. Podaj następujące informacje po wyświetleniu monitów:

    Monit Wybór
    Wybierz subskrypcję Wybierz subskrypcję, która ma zostać użyta. Ten monit nie będzie wyświetlany, gdy w obszarze Zasoby jest widoczna tylko jedna subskrypcja.
    Wprowadź globalnie unikatową nazwę aplikacji funkcji Wpisz nazwę prawidłową w ścieżce adresu URL. Typ nazwy jest weryfikowany, aby upewnić się, że jest on unikatowy w usłudze Azure Functions.
    Wybieranie stosu środowiska uruchomieniowego Wybierz wersję języka, dla której uruchomiono lokalnie.
    Wybieranie lokalizacji dla nowych zasobów Aby uzyskać lepszą wydajność, wybierz region blisko Ciebie.

    Rozszerzenie pokazuje stan poszczególnych zasobów podczas ich tworzenia na platformie Azure w panelu Azure: Dziennik aktywności.

    Dziennik tworzenia zasobów platformy Azure

  3. Po zakończeniu tworzenia następujące zasoby platformy Azure są tworzone w ramach subskrypcji. Zasoby są nazwane na podstawie nazwy aplikacji funkcji:

    • Grupa zasobów, która jest kontenerem logicznym dla powiązanych zasobów.
    • Standardowe konto usługi Azure Storage, które zachowuje stan i inne informacje o projektach.
    • Aplikacja funkcji, która udostępnia środowisko do wykonywania kodu funkcji. Aplikacja funkcji umożliwia grupowanie funkcji jako jednostki logicznej w celu łatwiejszego zarządzania, wdrażania i udostępniania zasobów w ramach tego samego planu hostingu.
    • Plan usługi App Service, który definiuje podstawowy host aplikacji funkcji.
    • Wystąpienie aplikacji Szczegółowe informacje połączone z aplikacją funkcji, które śledzi użycie funkcji w aplikacji.

    Po utworzeniu aplikacji funkcji i zastosowaniu pakietu wdrożeniowego zostanie wyświetlone powiadomienie.

    Napiwek

    Domyślnie zasoby platformy Azure wymagane przez aplikację funkcji są tworzone na podstawie podanej nazwy aplikacji funkcji. Domyślnie są one również tworzone w tej samej nowej grupie zasobów z aplikacją funkcji. Jeśli chcesz dostosować nazwy tych zasobów lub ponownie użyć istniejących zasobów, musisz opublikować projekt z zaawansowanymi opcjami tworzenia.

Wdrażanie projektu na platformie Azure

Ważne

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

  1. W obszarze Zasoby działania platformy Azure znajdź właśnie utworzony zasób aplikacji funkcji, kliknij prawym przyciskiem myszy zasób i wybierz polecenie Wdróż w aplikacji funkcji....

  2. 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.

Testowanie funkcji na platformie Azure

  1. Skopiuj adres URL wyzwalacza HTTP z panelu Dane wyjściowe. Adres URL, który wywołuje funkcję wyzwalaną przez protokół HTTP, powinien mieć następujący format: https://<functionappname>.azurewebsites.net/api/orchestrators/HelloOrchestrator

  2. Wklej nowy adres URL żądania HTTP na pasku adresu przeglądarki. Podczas korzystania z opublikowanej aplikacji powinna zostać zwrócona taka sama odpowiedź dotycząca stanu.

Następne kroki

Do tworzenia i publikowania aplikacji funkcji trwałej programu PowerShell użyto programu Visual Studio Code.