Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Tek başına Dayanıklı İşlevler PowerShell SDK'sı (AzureFunctions.PowerShell.Durable.SDK), PowerShell ile Dayanıklı İşlevler uygulamaları yazmak için önerilen yaklaşımdır. Yerleşik SDK'yı daha hızlı yeniden yürütme mantığı (C# yalıtılmış SDK ile aynı altyapı), bağımsız sürüm oluşturma ve geliştirilmiş özel durum işleme, null değer işleme ve serileştirme ile değiştirir. Yerleşik SDK, PowerShell 7.4 ve önceki sürümlerde kullanılabilir durumda kalır, ancak PowerShell çalışanının gelecekteki önemli bir sürümünde kaldırılacaktır.
Geçiş denetim listesi
Her geçiş adımında ilerleme durumunuzu izlemek için aşağıdaki denetim listesini kullanın:
| Step | Bölüm |
|---|---|
| 1. Önkoşulları doğrulama | Prerequisites |
| 2. Tek başına SDK'yı etkinleştirme | Tek başına SDK'yı etkinleştirme |
| 3. SDK paketini yükleme | SDK paketini yükleme |
| 4. SDK'yi içeri aktarma | SDK'yi içeri aktarma |
| 5. Uygulamanızı çalıştırma | Uygulamanızı çalıştırma |
| 6. Arabirim ve davranış değişikliklerini gözden geçirme | Yerleşik SDK'dan geçiş |
Tek başına SDK'yı yükle
Mevcut uygulamanızda tek başına SDK'yı yüklemek ve etkinleştirmek için bu adımları izleyin.
Önkoşulları doğrula
Tek başına PowerShell SDK'sı aşağıdaki en düşük sürümleri gerektirir:
- Azure İşlevleri Runtime v4.16+
- Azure İşlevleri Core Tools v4.0.5095+ (yerel olarak çalışıyorsa)
- PowerShell 7.4 veya üzeri için Azure İşlevleri PowerShell uygulaması
Tek başına SDK'yı etkinleştirme
Tek başına PowerShell SDK'sını çalıştırmak için aşağıdaki uygulama ayarı gereklidir:
- İsim:
ExternalDurablePowerShellSDK - Değer:
"true"
Bu uygulama ayarı, PowerShell sürüm 7.4 ve üzeri için yerleşik Dayanıklı SDK'yı devre dışı bırakır ve çalışanı dış SDK'yı kullanmaya zorlar.
Azure İşlevleri Çekirdek Araçları'nı kullanarak yerel olarak çalıştırıyorsanız, bu ayarı dosyanıza local.settings.json eklemeniz gerekir. Azure'da çalıştırıyorsanız, seçtiğiniz araçla şu adımları izleyin:
<FUNCTION_APP_NAME> ve <RESOURCE_GROUP_NAME> öğelerini sırasıyla işlev uygulamanızın adı ve kaynak grubunuzun adıyla değiştirin.
az functionapp config appsettings set --name <FUNCTION_APP_NAME> --resource-group <RESOURCE_GROUP_NAME> --settings ExternalDurablePowerShellSDK="true"
SDK paketini yükleme
SDK paketini yüklemek için iki seçeneğiniz vardır. Yönetilen bağımlılıkları kullanın (çoğu uygulama için önerilir) veya belirli bir sürümü sabitlemeniz gerekiyorsa veya dağıtımınız yönetilen bağımlılıkları desteklemiyorsa modülü uygulama içeriğinizle birlikte paketleyin. Yalnızca bir seçenek gereklidir.
Seçenek 1: Yönetilen bağımlılıkları kullanma (önerilen)
SDK'yı yönetilen bağımlılık olarak yüklemek için yönetilen bağımlılıklar kılavuzunu izleyin.
İlk olarak, host.json öğesinin managedDependency bölümünü, enabled olarak ayarlanmış true ile içerdiğinden emin olun.
{
"version": "2.0",
"managedDependency": {
"enabled": true
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.*, 4.0.0)"
}
}
Ardından dosyanızda requirements.psd1 SDK için bir girdi belirtin:
# 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. Seçenek: SDK modülünü uygulama içeriğinize ekleme
SDK'yı uygulamanızla birlikte paketlemek için SDK paketini uygulamanızın kökündeki bir ".\Modules" dizinin içine yerleştirin. Daha fazla bilgi için bkz Uygulama içeriğine modüllerin dahil edilmesi.
Uygulama kökünden dizini oluşturun ve SDK'yı indirin:
Save-Module -Name AzureFunctions.PowerShell.Durable.SDK -AllowPrerelease -Path ".\Modules"
SDK'yi içeri aktarma
SDK'nın her soğuk başlangıçta içeri aktarılması için dosyanıza profile.ps1 aşağıdaki satırı ekleyin:
Import-Module AzureFunctions.PowerShell.Durable.SDK -ErrorAction Stop
Uygulamanızı çalıştırma
Uygulamanızı func host start ile başlatın. Tek başına SDK artık etkindir.
Yerleşik SDK'dan geçiş
Mevcut bir uygulamayı yerleşik SDK'dan geçiriyorsanız aşağıdaki arabirim ve davranış değişikliklerini gözden geçirin.
Yeni cmdlet’ler
| Cmdlet | Description |
|---|---|
Invoke-DurableSubOrchestrator |
Bir orchestrator iş akışının içinden alt düzenleyicileri çağır. |
Suspend-DurableOrchestration |
Çalışan bir düzenleme örneğini askıya alma. |
Resume-DurableOrchestration |
Önceden askıya alınmış bir düzenleme örneğini sürdür. |
Değiştirilmiş cmdlet'ler
| Change | Ayrıntılar |
|---|---|
Get-DurableTaskResult |
Artık görev listesi yerine tek bir Task'yi bağımsız değişken olarak kabul eder. |
New-DurableRetryOptions → New-DurableRetryPolicy |
Yeniden adlandırıldı. Önceki uyumluluk için eski ad için bir takma ad sağlanır. |
Davranış değişiklikleri
Wait-DurableTask'da istisna yönetimi
ile Wait-DurableTask zamanlanan etkinlikler (fan-out/fan-in deseni) tarafından oluşan özel durumlar artık sessizce yoksayılır. Cmdlet artık özel durumu düzenleyiciye ilettiğinden, bunu kodunuzda işleyebilirsiniz.
Yerleşik SDK — özel durumlar sessizce yutuldu:
# Exceptions from failed activities were lost
$tasks = @()
$tasks += Invoke-DurableActivity -FunctionName "RiskyActivity" -Input "item1" -NoWait
$tasks += Invoke-DurableActivity -FunctionName "RiskyActivity" -Input "item2" -NoWait
$results = Wait-DurableTask -Task $tasks
# No error even if an activity failed
Tek başına SDK — özel durumlar orkestratöre aktarılır:
try {
$tasks = @()
$tasks += Invoke-DurableActivity -FunctionName "RiskyActivity" -Input "item1" -NoWait
$tasks += Invoke-DurableActivity -FunctionName "RiskyActivity" -Input "item2" -NoWait
$results = Wait-DurableTask -Task $tasks
} catch {
# Handle the activity failure
Write-Host "An activity failed: $_"
}
Sonuçlarda null değerler Wait-DurableTask olarak korundu.
Null değerler artık ( Wait-DurableTask WhenAll) çağrısının sonuç listesinden bırakılamaz. Bayrağı olmayan -Any başarılı bir çağrı artık null döndüren etkinlikler için girdiler de dahil olmak üzere $null zamanlanan görev sayısıyla aynı boyutta bir dizi döndürür.
Yerleşik SDK — null sonuçlar bırakıldı:
# 3 tasks scheduled, but if one returned $null, results had only 2 items
$results = Wait-DurableTask -Task $tasks
$results.Count # Could be 2 instead of 3
Tek başına SDK — null sonuçlar korunur:
# 3 tasks scheduled, results always has 3 items
$results = Wait-DurableTask -Task $tasks
$results.Count # Always 3, with $null for activities that returned null
SDK referansı
Tam cmdlet referansı için bkz. AzureFunctions.PowerShell.Durable.SDK Module. Modülü içeri aktardıktan sonra, tüm kullanılabilir cmdlet'leri listelemek veya Get-Help *-Durable* ayrıntılı kullanım için komutunu da çalıştırabilirsinizGet-Help <cmdlet-name> -Full.
Destek alın
SDK'nın GitHub deposundaki hataları ve özellik isteklerini bildirin.