إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يعد Durable Functions PowerShell SDK المستقل (AzureFunctions.PowerShell.Durable.SDK) هو النهج الموصى به لتأليف تطبيقات Durable Functions باستخدام PowerShell. يستبدل SDK المدمج بمنطق إعادة تشغيل أسرع (نفس محرك SDK المعزول في C#)، وإصدار إصدارات مستقل، وتحسين معالجة الاستثناءات، والتعامل مع القيم الصفرية، والتسلسل. يبقى ملف تطوير البرمجيات المدمج متاحا لإصدارات PowerShell 7.4 وما قبله، لكنه سيتم إزالته في إصدار رئيسي مستقبلي من PowerShell Worker Worker.
قائمة التحقق من الترحيل
استخدم القائمة التالية لتتبع تقدمك في كل خطوة ترحيل:
| خطوة | قسم |
|---|---|
| 1. التحقق من المتطلبات المسبقة | Prerequisites |
| 2. تمكين مجموعة تطوير البرمجيات المستقلة | تفعيل مجموعة تطوير البرمجيات المستقلة |
| 3. تثبيت حزمة SDK | تثبيت حزمة SDK |
| 4. استيراد مجموعة تطوير البرمجيات | استيراد مجموعة تطوير البرمجيات |
| 5. شغل تطبيقك | شغل تطبيقك |
| 6. مراجعة التغيرات في الواجهة والسلوك | الانتقال من مجموعة تطوير البرمجيات المدمجة |
تثبيت حزمة تطوير البرمجيات المستقلة
اتبع هذه الخطوات لتثبيت وتفعيل مجموعة تطوير البرمجيات المستقلة في تطبيقك الحالي.
تحقق من المتطلبات المسبقة
يتطلب PowerShell SDK المستقل الحد الأدنى من الإصدارات التالية:
- دالات Azure Runtime v4.16+
- دالات Azure Core Tools v4.0.5095+ (إذا كان يعمل محليا)
- تطبيق دالات Azure PowerShell ل PowerShell 7.4 أو أحدث
تفعيل مجموعة تطوير البرمجيات المستقلة
إعداد التطبيق التالي مطلوب لتشغيل PowerShell SDK المستقل:
- الاسم:
ExternalDurablePowerShellSDK - قيمة:
"true"
يقوم هذا الإعداد بتعطل مجموعة تطوير البرمولة المدمج لإصدارات PowerShell 7.4 وما فوق، مما يجبر العامل على استخدام حزمة تطوير البرمجيات الخارجية.
إذا كنت تعمل محليا باستخدام دالات Azure Core Tools، فيجب عليك إضافة هذا الإعداد إلى ملفك local.settings.json . إذا كنت تعمل في Azure، فاتبع هذه الخطوات باستخدام الأداة التي تختارها:
- واجهة سطر الأوامر Azure (Azure CLI)
- Azure PowerShell
- تعليمة VS الظاهرية
استبدل <FUNCTION_APP_NAME> و <RESOURCE_GROUP_NAME> باسم تطبيق الوظائف ومجموعة الموارد، على التوالي.
az functionapp config appsettings set --name <FUNCTION_APP_NAME> --resource-group <RESOURCE_GROUP_NAME> --settings ExternalDurablePowerShellSDK="true"
تثبيت حزمة SDK
لديك خياران لتثبيت حزمة SDK. استخدم التبعيات المدارة (موصى بها لمعظم التطبيقات) أو قم بتجميع الوحدة مع محتوى تطبيقك إذا كنت بحاجة إلى تثبيت نسخة معينة أو إذا كان النشر لا يدعم التبعيات المدارة. هناك خيار واحد فقط مطلوب.
الخيار الأول: استخدام التبعيات المدارة (موصى به)
لتثبيت مجموعة تطوير البرمجيات كتبعية مدارة، اتبع إرشادات الاعتماديات المدارة.
أولا، تأكد من أن Your host.json يحتوي على managedDependency قسم معين enabled على true:
{
"version": "2.0",
"managedDependency": {
"enabled": true
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.*, 4.0.0)"
}
}
ثم حدد إدخال لمجموعة تطوير البرمجيات في ملفك requirements.psd1 :
# 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.*'
}
الخيار الثاني: تضمين وحدة SDK في محتوى تطبيقك
لدمج حزمة SDK مع تطبيقك، ضع حزمة SDK داخل ".\Modules" مجلد في جذر التطبيق. لمزيد من المعلومات، انظر تضمين الوحدات في محتوى التطبيق.
من جذر تطبيقك، أنشئ الدليل وحمل مجموعة تطوير البرمجيات:
Save-Module -Name AzureFunctions.PowerShell.Durable.SDK -AllowPrerelease -Path ".\Modules"
استيراد مجموعة تطوير البرمجيات
أضف السطر التالي إلى ملفك profile.ps1 لاستيراد SDK في كل بداية باردة:
Import-Module AzureFunctions.PowerShell.Durable.SDK -ErrorAction Stop
شغل تطبيقك
ابدأ تطبيقك ب func host start. حزمة تطوير البرمجيات المستقلة أصبحت نشطة الآن.
الانتقال من مجموعة تطوير البرمجيات المدمجة
إذا كنت تقوم بترحيل تطبيق موجود من مجموعة تطوير البرمجيات المدمجة، راجع الواجهة التالية والتغييرات السلوكية.
أوامر cmdlets جديدة
| Cmdlet | وصف |
|---|---|
Invoke-DurableSubOrchestrator |
اتصل بالمنسقين الفرعيين من خلال سير عمل الأوركسترا. |
Suspend-DurableOrchestration |
تعليق حالة توزيع موسيقي مستمرة. |
Resume-DurableOrchestration |
استأنف حالة أوركسترا كانت معلقة سابقا. |
أوامر cmdlets المعدلة
| تغيير | التفاصيل |
|---|---|
Get-DurableTaskResult |
الآن يقبل المفردة Task كحجة بدلا من قائمة مهام. |
New-DurableRetryOptions → New-DurableRetryPolicy |
تم تغيير الاسم. تم توفير اسم مستعار للاسم القديم للتوافق مع الإصدارات السابقة. |
التغيرات السلوكية
التعامل مع الاستثناءات في Wait-DurableTask
الاستثناءات التي تسببها الأنشطة المجدولة بنمط Wait-DurableTask (خروج المروحة/المروحة) لم تعد تتجاهل بصمت. الآن يقوم cmdlet بنشر الاستثناء إلى المنسق حتى تتمكن من التعامل معه في الكود الخاص بك.
SDK المدمج — تم قبول الاستثناءات بصمت:
# 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
SDK مستقل — الاستثناءات تنتقل إلى المنسق:
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: $_"
}
القيم الصفرية المحفوظة في Wait-DurableTask النتائج
لم تعد القيم الصفرية تحذف من قائمة نتائج استدعاء Wait-DurableTask (WhenAll). إذا نجحت النداء بدون العلم -Any تعيد الآن مصفوفة بنفس حجم عدد المهام المجدولة، بما في ذلك $null الإدخالات للأنشطة التي أعادت الفارغ.
حزمة تطوير مدمجة — تم حذف النتائج الصفرية:
# 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
مجموعة تطوير البيانات المستقلة — النتائج الصفرية محفوظة:
# 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
للحصول على المرجع الكامل لcmdlet، انظر AzureFunctions.PowerShell.Durable.SDK Module. بعد استيراد الوحدة، يمكنك أيضا تشغيل Get-Help *-Durable* قائمة جميع المقاطع المتاحة، أو Get-Help <cmdlet-name> -Full للاستخدام التفصيلي.
الحصول على الدعم
الإبلاغ عن الأخطاء وطلبات الميزات في مستودع GitHub الخاص ب SDK.