Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Durable Functions (DF) PowerShell SDK mostantól önálló modulként érhető el a PowerShell-gyűjteményben: AzureFunctions.PowerShell.Durable.SDK.
Ez az SDK általánosan elérhető (GA), és a Durable Functions-alkalmazások PowerShell-lel való létrehozásához ajánlott módszer. Ebben a cikkben ismertetjük ennek a változásnak az előnyeit, és hogy milyen változások várhatók az új csomag elfogadásakor.
Motiváció az önálló SDK mögött
Az előző DF SDK be lett építve a PowerShell nyelvi feldolgozójába. Ez a megközelítés azzal az előnnyel járt, hogy a Durable Functions-alkalmazások az Azure Functions PowerShell-felhasználók számára is létrehozhatóak. Azonban különböző hiányosságokkal is járt:
- Az új funkciók, hibajavítások és egyéb módosítások a PowerShell-feldolgozó kiadási ütemétől függtek.
- A PowerShell-feldolgozó automatikus frissítési jellege miatt az DF SDK-nak óvatosnak kellett lennie a hibák kijavításával kapcsolatban, mivel a viselkedésváltozások kompatibilitástörő változást jelenthetnek.
- A beépített DF SDK által használt visszajátszási algoritmus elavult: a többi DF SDK már gyorsabb és megbízhatóbb implementációt használt.
Önálló DF PowerShell SDK-csomag létrehozásával meg tudjuk oldani ezeket a hiányosságokat. Az új önálló SDK-csomag használatának előnyei:
- Ez az SDK számos, erősen igényelt fejlesztést tartalmaz, például a jobb kivételt, a null értékű kezelést és a szerializálási javításokat.
- A csomag verziószáma a PowerShell-feldolgozótól függetlenül történik. Ez lehetővé teszi a felhasználók számára, hogy azonnal új funkciókat és javításokat építsenek be, amint elérhetők, ugyanakkor elkerülhetik az automatikus frissítések kompatibilitástörő változásait.
- A visszajátszási logika gyorsabb és megbízhatóbb: ugyanazt a visszajátszási motort használja, mint a C# DF izolált SDK-ja.
Elavulási terv a beépített DF PowerShell SDK-hoz
A PowerShell-feldolgozó beépített DF SDK-ja továbbra is elérhető marad a PowerShell 7.4-es és korábbi kiadásaihoz.
Azt tervezzük, hogy végül kiadjuk a PowerShell-feldolgozó új főverzióját a beépített SDK nélkül. Ezen a ponton a felhasználóknak külön kell telepíteniük az SDK-t ezzel az önálló csomagtal; a telepítési lépéseket az alábbiakban ismertetjük.
Az SDK telepítése és engedélyezése
Ebből a szakaszból megtudhatja, hogyan telepítheti és engedélyezheti az új önálló SDK-t a meglévő alkalmazásban.
Előfeltételek
Az önálló PowerShell SDK-nak a következő minimális verziókra van szüksége:
- Azure Functions Runtime v4.16+
- Azure Functions Core Tools v4.0.5095+ (helyi futtatás esetén)
- Azure Functions PowerShell-alkalmazás a PowerShell 7.4-hez vagy újabb verzióhoz
Az önálló DF SDK-ra való bejelentkezés
Az önálló PowerShell SDK futtatásához a következő alkalmazásbeállítás szükséges:
- Név:
ExternalDurablePowerShellSDK - Érték:
"true"
Ez az alkalmazásbeállítás letiltja a PowerShell 7.4-s és újabb verzióihoz készült beépített Durable SDK-t, így a feldolgozót a külső SDK használatára kényszeríti.
Ha helyileg fut az Azure Functions Core Tools használatával, vegye fel ezt a beállítást a local.settings.json fájlba. Ha az Azure-ban fut, kövesse az alábbi lépéseket a választott eszközzel:
Cserélje le és <FUNCTION_APP_NAME> írja be <RESOURCE_GROUP_NAME> a függvényalkalmazás és az erőforráscsoport nevét.
az functionapp config appsettings set --name <FUNCTION_APP_NAME> --resource-group <RESOURCE_GROUP_NAME> --settings ExternalDurablePowerShellSDK="true"
Az SDK telepítése és importálása
Az SDK-csomag telepítésének két lehetősége van: telepíthető felügyelt függőségek használatával, vagy az alkalmazás tartalmával együtt. Ebben a szakaszban mindkét lehetőséget ismertetjük, de csak egyre van szükség.
1. telepítési lehetőség: Felügyelt függőségek használata
Az SDK felügyelt függőségként való telepítéséhez kövesse a felügyelt függőségekre vonatkozó útmutatást. A részletekért tekintse át az útmutatót.
Összefoglalva, először meg kell győződnie arról, hogy tartalmaz host.json egy szakaszt managedDependency , enabled amelynek tulajdonsága a truekövetkezőre van állítva. Az alábbi példa host.json megfelel ennek a követelménynek:
{
"version": "2.0",
"managedDependency": {
"enabled": true
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.*, 4.0.0)"
},
}
Ezután egyszerűen meg kell adnia egy bejegyzést az DF SDK-hoz a requirements.psd1 fájlban, ahogyan az alábbi példában látható:
# 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.*'
}
2. telepítési lehetőség: Az SDK-modul belefoglalása az alkalmazás tartalmába
Ha az önálló DF SDK-t szeretné belefoglalni az alkalmazás tartalmába, kövesse a modulok alkalmazástartalmakba való belefoglalásával kapcsolatos útmutatást. A részletekért tekintse át a fent említett dokumentumokat.
Összefoglalva, az SDK-csomagot az ".\Modules" alkalmazás gyökerében található könyvtárba kell helyeznie.
Például az alkalmazás gyökérkönyvtárából, majd a ".\Modules" címtár létrehozása után a különálló SDK-t a modulok könyvtárába töltheti le a következő módon:
Save-Module -Name AzureFunctions.PowerShell.Durable.SDK -AllowPrerelease -Path ".\Modules"
Az SDK importálása
Az utolsó lépés az SDK importálása a kód munkamenetébe. Ehhez importálja a PowerShell SDK-t Import-Module AzureFunctions.PowerShell.Durable.SDK -ErrorAction Stop a profile.ps1 fájlba.
Ha például az alkalmazás sablonokkal lett formázva, előfordulhat, hogy a profile.ps1 fájl a következőképpen néz ki:
# 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
Ezek a lépések szükségesek a következő PowerShell SDK használatához. Futtassa az alkalmazást a szokásos módon a terminálon keresztül func host start az SDK használatának megkezdéséhez.
SDK-referencia
Az SDK-parancsmagok és paramétereik teljes hivatkozását az AzureFunctions.PowerShell.Durable.SDK-modulban talál.
A parancsmaggal Get-Help az SDK-parancsmagok részletes leírását is lekérheti. Ehhez először importálnia kell a modult az előző szakaszban látható módon. Ezután futtathatja a következő parancsot a parancsmagok teljes listájának lekéréséhez:
Get-Help *-Durable*
Ha részletes segítséget szeretne kapni egy adott parancsmaggal kapcsolatban, beleértve a használati példákat, futtassa a következőt:
Get-Help Invoke-DurableOrchestration -Full
Migrálási útmutató
Ebben a szakaszban ismertetjük az új SDK használatakor várható felületi és viselkedési változásokat.
Új parancsmagok
-
Invoke-DurableSubOrchestratoregy új parancsmag, amely lehetővé teszi a felhasználók számára, hogy alorchestratorokat használjanak a munkafolyamataikban. -
Suspend-DurableOrchestrationésResume-DurableOrchestrationúj parancsmagok, amelyek lehetővé teszik a felhasználók számára a feladatkezelések felfüggesztését és folytatását.
Módosított parancsmagok
- A
Get-DurableTaskResultparancsmag mostantól csak egyetlen feladatot fogad el argumentumként, ahelyett, hogy elfogadná a feladatok listáját. - A
New-DurableRetryOptionsparancsmagot átneveztékNew-DurableRetryPolicy-re (a régi névhez egy álnevet biztosítanak a visszamenőleges kompatibilitás érdekében).
Működésbeli változások
- Az ütemezett
Wait-DurableTasktevékenységek által (a fan-Out/Fan-In mintához hasonlóan) kidobott kivételeket a rendszer már nem hagyja figyelmen kívül. Ehelyett egy kivétel esetén a parancsmag propagálja ezt a kivételt a vezénylőnek, hogy felhasználói kóddal lehessen kezelni. - A null értékeket a rendszer már nem távolítja el egy (azaz WhenAll) hívás eredménylistájából
Wait-DurableTask. Ez azt jelenti, hogy a jelölő nélküliWait-DurableTasksikeres meghívásnak-Anyugyanolyan méretű tömböt kell visszaadnia, mint az ütemezett tevékenységek száma.
Támogatás kérése és visszajelzés biztosítása
Küldjön visszajelzést és javaslatokat az SDK GitHub-adattárában.