Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zestaw SDK programu PowerShell dla rozszerzenia Durable Functions (DF) jest teraz dostępny jako autonomiczny moduł w galerii programu PowerShell: AzureFunctions.PowerShell.Durable.SDK.
Ten SDK jest teraz ogólnie dostępny (GA) i jest zalecanym podejściem do tworzenia aplikacji Durable Functions za pomocą PowerShell. W tym artykule wyjaśnimy korzyści wynikające z tej zmiany i jakie zmiany można oczekiwać podczas wdrażania tego nowego pakietu.
Motywacja autonomicznego zestawu SDK
Poprzedni zestaw SDK systemu plików DF został wbudowany w proces roboczy języka programu PowerShell. Takie podejście przyniosło korzyści, które mogą być tworzone przez aplikacje Durable Functions w pudełku dla użytkowników programu PowerShell usługi Azure Functions. Jednak wystąpiły również różne niedociągnięć:
- Nowe funkcje, poprawki błędów i inne zmiany były zależne od kadencji procesu roboczego programu PowerShell.
- Ze względu na charakter automatycznego uaktualniania procesu roboczego programu PowerShell zestaw SDK systemu plików DF musi być ostrożny w rozwiązywaniu usterek, ponieważ wszelkie zmiany zachowania mogą stanowić niezgodną zmianę.
- Algorytm odtwarzania używany przez wbudowany zestaw SDK systemu plików DF był nieaktualny: inne zestawy SDK systemu plików DF korzystają już z szybszej i bardziej niezawodnej implementacji.
Tworząc autonomiczny pakiet zestawu SDK programu PowerShell dla systemu plików DF, możemy przezwyciężyć te braki. Są to zalety korzystania z tego nowego autonomicznego pakietu SDK:
- Ten zestaw SDK zawiera wiele wysoce żądanych ulepszeń, takich jak lepsza obsługa wyjątków i obsługa wartości null oraz poprawki serializacji.
- Pakiet jest wersjonowany niezależnie od procesu roboczego programu PowerShell. Dzięki temu użytkownicy mogą uwzględniać nowe funkcje i poprawki natychmiast po ich udostępnieniu, jednocześnie unikając zmian powodujących niezgodność z automatycznymi uaktualnieniami.
- Logika odtwarzania jest szybsza i bardziej niezawodna: używa tego samego aparatu odtwarzania, co izolowany zestaw SDK systemu plików DF dla języka C#.
Plan wycofywania dla wbudowanego zestawu SDK programu PowerShell dla systemu plików DF
Wbudowany zestaw SDK systemu plików DF w ramach procesu roboczego programu PowerShell pozostanie dostępny dla programu PowerShell 7.4 i wcześniejszych wersji.
Planujemy w końcu wydać nową wersję główną procesu roboczego programu PowerShell bez wbudowanego zestawu SDK. W tym momencie użytkownicy musieliby zainstalować zestaw SDK oddzielnie przy użyciu tego pakietu autonomicznego; kroki instalacji zostały opisane poniżej.
Instalowanie i włączanie zestawu SDK
Zobacz tę sekcję, aby dowiedzieć się, jak zainstalować i włączyć nowy autonomiczny zestaw SDK w istniejącej aplikacji.
Wymagania wstępne
Autonomiczny zestaw SDK programu PowerShell wymaga następujących minimalnych wersji:
- Środowisko uruchomieniowe usługi Azure Functions w wersji 4.16 lub nowszej
- Narzędzia Azure Functions Core Tools w wersji 4.0.5095 lub nowszej (jeśli są uruchomione lokalnie)
- Aplikacja Azure Functions dla PowerShell w wersji 7.4 lub wyższej
Wyrażanie zgody na autonomiczny zestaw SDK systemu plików DF
Do uruchomienia autonomicznego zestawu SDK programu PowerShell wymagane jest następujące ustawienie aplikacji:
- Nazwa:
ExternalDurablePowerShellSDK - Wartość:
"true"
To ustawienie aplikacji spowoduje wyłączenie wbudowanego zestawu Durable SDK dla programu PowerShell w wersji 7.4 lub nowszej, co zmusza proces roboczy do korzystania z zewnętrznego zestawu SDK.
Jeśli używasz narzędzi Azure Functions Core Tools lokalnie, należy dodać to ustawienie do local.settings.json pliku. Jeśli korzystasz z platformy Azure, wykonaj następujące kroki za pomocą wybranego narzędzia:
Zastąp <FUNCTION_APP_NAME> wartości i <RESOURCE_GROUP_NAME> nazwą aplikacji funkcji i grupy zasobów odpowiednio.
az functionapp config appsettings set --name <FUNCTION_APP_NAME> --resource-group <RESOURCE_GROUP_NAME> --settings ExternalDurablePowerShellSDK="true"
Instalowanie i importowanie zestawu SDK
Dostępne są dwie opcje instalowania pakietu SDK: można go zainstalować przy użyciu zarządzanych zależności lub powiązać z zawartością aplikacji. W tej sekcji opisano obie opcje, ale potrzebna jest tylko jedna z nich.
Opcja instalacji 1. Korzystanie z zarządzanych zależności
Aby zainstalować zestaw SDK jako zależność zarządzaną, należy postępować zgodnie ze wskazówkami dotyczącymi zarządzanych zależności. Zapoznaj się ze wskazówkami, aby uzyskać szczegółowe informacje.
Podsumowując, najpierw należy upewnić się, że zawiera host.json sekcję managedDependency z właściwością ustawioną enabled na true. Poniżej przedstawiono przykład host.json spełniający to wymaganie:
{
"version": "2.0",
"managedDependency": {
"enabled": true
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.*, 4.0.0)"
},
}
Następnie wystarczy po prostu określić wpis dla zestawu DF SDK w requirements.psd1 pliku, jak w poniższym przykładzie:
# This file enables modules to be automatically managed by the Functions service.
# See https://aka.ms/functionsmanageddependency for additional information.
#
@{
# For latest supported version, go to 'https://www.powershellgallery.com/packages/AzureFunctions.PowerShell.Durable.SDK/'.
'AzureFunctions.PowerShell.Durable.SDK' = '2.*'
}
Opcja instalacji 2. Dołącz moduł SDK do zawartości aplikacji
Aby uwzględnić autonomiczny zestaw DF SDK w zawartości aplikacji, należy postępować zgodnie ze wskazówkami dotyczącymi dołączania modułów w zawartości aplikacji. Aby uzyskać szczegółowe informacje, zapoznaj się z wyżej wymienionymi dokumentami.
Podsumowując, należy umieścić pakiet zestawu SDK w ".\Modules" katalogu głównym aplikacji.
Na przykład z poziomu katalogu głównego aplikacji i po utworzeniu ".\Modules" katalogu możesz pobrać autonomiczny zestaw SDK do katalogu modules w następujący sposób:
Save-Module -Name AzureFunctions.PowerShell.Durable.SDK -AllowPrerelease -Path ".\Modules"
Importowanie zestawu SDK
Ostatnim krokiem jest zaimportowanie zestawu SDK do sesji kodu. W tym celu zaimportuj zestaw SDK programu PowerShell za pośrednictwem pliku Import-Module AzureFunctions.PowerShell.Durable.SDK -ErrorAction Stopprofile.ps1 .
Jeśli na przykład aplikacja została utworzona szkieletem za pomocą szablonów, plik profile.ps1 może wyglądać następująco:
# Azure Functions profile.ps1
#
# This profile.ps1 will get executed every "cold start" of your Function App.
# "cold start" occurs when:
#
# * A Function App starts up for the very first time
# * A Function App starts up after being de-allocated due to inactivity
#
# You can define helper functions, run commands, or specify environment variables
# NOTE: any variables defined that are not environment variables will get reset after the first execution
# Authenticate with Azure PowerShell using MSI.
# Remove this if you are not planning on using MSI or Azure PowerShell.
if ($env:MSI_SECRET) {
Disable-AzContextAutosave -Scope Process | Out-Null
Connect-AzAccount -Identity
}
# Uncomment the next line to enable legacy AzureRm alias in Azure PowerShell.
# Enable-AzureRmAlias
# You can also define functions or aliases that can be referenced in any of your PowerShell functions.
# Import standalone PowerShell SDK
Import-Module AzureFunctions.PowerShell.Durable.SDK -ErrorAction Stop
Są to wszystkie kroki potrzebne do korzystania z następnego zestawu PowerShell SDK. Uruchom aplikację normalnie, korzystając z func host start terminalu, aby rozpocząć korzystanie z zestawu SDK.
Referencja SDK
Zobacz Moduł AzureFunctions.PowerShell.Durable.SDK , aby uzyskać pełną dokumentację poleceń cmdlet zestawu SDK i ich parametrów.
Możesz również użyć Get-Help cmdleta, aby uzyskać szczegółowe opisy poleceń cmdlet zestawu SDK. Aby to zrobić, należy najpierw zaimportować moduł, jak pokazano w poprzedniej sekcji. Następnie możesz uruchomić następujące polecenie, aby uzyskać całą listę poleceń cmdlet:
Get-Help *-Durable*
Aby uzyskać szczegółową pomoc dotyczącą określonego cmdletu, w tym przykłady użycia, uruchom:
Get-Help Invoke-DurableOrchestration -Full
Przewodnik migracji
W tej sekcji opisano zmiany interfejsu i zachowania, których można oczekiwać podczas korzystania z nowego zestawu SDK.
Nowe polecenia cmdlet
-
Invoke-DurableSubOrchestratorto nowe polecenie cmdlet, które umożliwia użytkownikom korzystanie z suborchestratorów w swoich przepływach pracy. -
Suspend-DurableOrchestrationiResume-DurableOrchestrationto nowe polecenia cmdlet, które umożliwiają użytkownikom odpowiednio zawieszanie i wznawianie orkiestracji.
Zmodyfikowane polecenia cmdlet
- Polecenie
Get-DurableTaskResultcmdlet akceptuje teraz tylko jedno zadanie jako argument, zamiast akceptować listę zadań. - Nazwa
New-DurableRetryOptionspolecenia cmdlet została zmieniona naNew-DurableRetryPolicy(dla starej nazwy podano alias dla zgodności z poprzednimi wersjami).
Zmiany zachowań
- Wyjątki zgłaszane przez działania zaplanowane
Wait-DurableTaskza pomocą funkcji (tak jak we wzorcu Fan-Out/Fan-In) nie są już ignorowane w trybie dyskretnym. Zamiast tego, w przypadku wyjątku, polecenie cmdlet propaguje ten wyjątek do orkiestratora, aby mogło być obsługiwane przez kod użytkownika. - Wartości null nie są już porzucane z listy
Wait-DurableTaskwyników wywołania (tj. WhenAll). Oznacza to, że pomyślne wywołanieWait-DurableTaskbez-Anyflagi powinno zwrócić tablicę o takim samym rozmiarze jak liczba zaplanowanych zadań.
Uzyskiwanie wsparcia i przekazywanie informacji zwrotnych
Zgłoś wszelkie opinie i sugestie do repozytorium GitHub zestawu SDK.