إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
Durable Functions هو امتداد ل دالات Azure و Azure WebJobs يتيح لك كتابة الدوال ذات الحالة في بيئة بدون خادم. يدير الملحق الحالة ونقاط التحقق وإعادة التشغيل نيابة عنك. إذا لم تكن على دراية Durable Functions بالفعل، راجع ><وثائق النظرة العامة.
ملخص النسخة
| الإصدار | Status | التغييرات الرئيسية |
|---|---|---|
| v3.x | حالي (موصى به) | تحديث حزمة تطوير البرمجيات تخزين Azure، تحسنت كفاءة التكلفة، لا تغييرات في الكود للترقية من v2.x |
| v2.x | تمت الصيانة (فقط لإصلاح الأمان وإصلاح الأخطاء) | الكيانات الدائمة، HTTP المتين |
| v1.x | نهاية الدعم سبتمبر 2026 | Legacy |
ما الجديد في v3.x
Microsoft.Azure. حزمة WebJobs.Extensions.DurableTask v3 (المعروفة باسم WebJobs.Extensions.DurableTask في الأقسام التالية) هي النسخة الموصى بها حاليا. الترقية من v2.x لا تتطلب تغييرات في الكود — كل ما تحتاجه هو تحديث تبعيات الحزم الخاصة بك. يعتبر هذا التحديث تغييرا جذريا فقط للعملاء الذين يستخدمون تطبيقات Durable C# التي تستخدم نموذج العملية.
ملحوظة
حزمة Durable Functions .NET خارج المعالجة، مايكروسوفت.Azure. Functions.Worker.Extensions.DurableTask، يشير إلى مايكروسوفت. Azure. WebJobs.Extensions.DurableTask كمجموعة أساسية له. لذا، ينطبق هذا التحديث أيضا على مايكروسوفت. Azure. Functions.Worker.Extensions.DurableTask، بدءا من الإصدار 1.2.x.
تحديث تخزين Azure SDK
افتراضيا، يستخدم Durable Functions تخزين Azure كخلفية تخزين لحفظ حالة التطبيق بشكل دائم. في WebJobs.Extensions.DurableTask v3، تم ترقية الواجهة الخلفية تخزين Azure لاستخدام أحدث إصدارات تخزين Azure SDKs: Azure. Data.Tables, Azure. Storage.Blobs، و Azure. Storage.Queues. تقدم هذه المجموعات دعما محسنا للهوية المدارة، وأداء أفضل، ومعالجة بيانات أكثر كفاءة، وأمان أفضل مقارنة بحزم Microsoft.Azure.Storage.* القديمة المستخدمة في v2.x.
تحسين كفاءة التكلفة (لمزود تخزين Azure)
في الخلفية تخزين Azure ، يكون مدير الأقسام مسؤولا عن توزيع تقسيم/قوائم التحكم بين العمال. تستخدم حزمة WebJobs.Extensions.DurableTask v3 مدير الأقسام v3 بشكل افتراضي، وهو تصميم جديد يستخدم Azure Tables لإدارة تعيينات الأقسام بدلا من تأجير Azure Blob. يمكن أن يقلل هذا التصميم بشكل كبير من تكاليف التخزين مع تسهيل تصحيح الأخطاء. عند استخدام مدير الأقسام V3، يتم إنشاء جدول جديد باسم Partitions، في حساب التخزين الخاص بك، مما يسمح لك بالتحقق بسهولة من معلومات القسم.
تمت إزالة الدعم لوقت تشغيل دالات Azure v1
لم يعد WebJobs.Extensions.DurableTask الإصدار 3 يدعم الإصدار 1.x من وقت تشغيل دالات Azure، ومن المقرر أن ينتهي دعمه في سبتمبر 2026. إذا كان يجب عليك استخدام وقت تشغيل الوظائف v1، يرجى استخدام نسخة Durable Functions من الامتداد أقل من v2.11.0. ضع في اعتبارك أنه عندما يحين انتهاء الدعم المجدول، ستتوقف Durable Functions عن دعمها ل runtime v1 أيضا.
تحديث مستهدف وقت التشغيل .NET
يقوم WebJobs.Extensions.DurableTask v3 بتحديث وقت التشغيل المستهدف من .NET Core 3.1 إلى .NET 6، مقدما أداء محسنا وتوافقا معززا مع ميزات ومكتبات .NET الحديثة. يتماشى هذا التحديث مع الإصدارات المستقبلية لحزم امتدادات دالات Azure.
الانتقال من v2.x إلى v3.x
الانتقال من v2.x إلى v3.x لا يتطلب تغييرات في الكود — فقط قم بتحديث تبعياتك لتبدأ باستخدام الميزات الجديدة.
- النموذج قيد العملية: تحديث إلى Microsoft.Azure. WebJobs.Extensions.DurableTask الإصدار 3.0.0 أو أحدث.
- نموذج عامل معزول: تحديث إلى Microsoft.Azure. Functions.Worker.Extensions.DurableTask الإصدار 1.2.0 أو أحدث.
تحديث إلى حزمة الامتداد دالات Azure الإصدار 4.22.0 أو أحدث.
التوافق التراجعي (v3.x إلى v2.x)
يستخدم WebJobs.Extensions.DurableTask v3 ترميزا نصيا مختلفا لحزمة تطوير البرمجيات تخزين Azure (Base64) مقارنة بالإصدار 2 (UTF-8). إذا كنت بحاجة للعودة من v3.x إلى v2.x، استخدم الإصدارات الأدنى التالية لضمان التوافق مع الإصدارات السابقة:
ارجع إلى إصدار حزمة امتدادات أبكر من 4.22.0.
دعم وصيانة v2.x
يستمر WebJobs.Extensions.DurableTask v2.x في تلقي تحديثات الأمان وإصلاحات الأخطاء، ما يضمن بقاء تطبيقاتك الحالية آمنة ومستقرة. ومع ذلك، تتم إضافة جميع الميزات والتحسينات الجديدة حصريا إلى v3.x. لهذا السبب، يجب الترقية إلى WebJobs.Extensions.DurableTask v3 بأسرع ما يمكنك للاستفادة من أحدث الإمكانات والتحسينات المستمرة.
الميزات التي تم تقديمها في v2.x
الميزات التالية متوفرة في Durable Functions 2.x وما بعدها، عبر جميع اللغات المدعومة.
ملحوظة
تفاصيل واجهة برمجة التطبيقات الجارية ل .NET في هذا القسم لا تنطبق على نموذج العامل المعزول. للحصول على إرشادات للعاملين المعزولين، راجع نظرة عامة على العملية المعزولة Durable Functions.
الكيانات الدائمة
يدعم Durable Functions entity functions لقراءة وتحديث أجزاء صغيرة من الدولة، والمعروفة باسم الكيانات الدائمة. مثل وظائف المنسق، فإن دوال الكيان هي دوال لها نوع مشغل خاص، وهو تفعيل الكيان. على عكس دالات المنسق، لا تحتوي وظائف الكيان على أي قيود تعليمات برمجية محددة. تدير وظائف الكيان أيضا الحالة بشكل صريح بدلا من تمثيل الحالة ضمنيا عبر تدفق التحكم.
لمعرفة المزيد، راجع مقال الكيانات المتينة .
HTTP دائم
يتضمن Durable Functions ميزة Durable HTTP التي تتيح لك إلى:
- استدعاء واجهات برمجة تطبيقات HTTP مباشرة من دالات التنسيق (مع بعض القيود الموثقة).
- تنفيذ التحقق التلقائي من حالة HTTP 202 من جانب العميل.
- استخدم الدعم المدمج ل Azure Managed Identities.
لمعرفة المزيد، راجع مقالة ميزات HTTP .
الترحيل من 1.x إلى 2.x
مهم
الإصدار 1.x من مدة تشغيل دالات Azure ينتهي الدعم في سبتمبر 2026. إذا كنت لا تزال على v1.x، خطط للترحيل قريبا.
يشرح هذا القسم كيفية نقل الإصدار الحالي 1.x Durable Functions إلى الإصدار 2.x للاستفادة من الميزات الجديدة.
ترقية امتداد Durable Functions
قم بتثبيت أحدث إصدار 2.x من إضافة Durable Functions indings في مشروعك.
Durable Functions 2.x متاح بدءا من الإصدار 2.x من حزمة الامتدادات دالات Azure .
دعم Python في Durable Functions يتطلب Durable Functions إصدار 2.x أو أعلى.
لتحديث نسخة حزمة الامتدادات في مشروعك، افتح host.json وحدث القسم extensionBundle لاستخدام الإصدار 4.x ([4.*, 5.0.0)).
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
Durable Functions 2.x متاح بدءا من الإصدار 2.x من حزمة الامتدادات دالات Azure .
لتحديث نسخة حزمة الامتدادات في مشروعك، افتح host.json وحدث القسم extensionBundle لاستخدام الإصدار 4.x ([4.*, 5.0.0)).
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
ملحوظة
إذا لم يعرض تعليمة Visual Studio برمجية القوالب الصحيحة بعد تغيير إصدار حزمة الإضافات، أعد تحميل النافذة بتشغيل أمر Developer: Reload Window (Ctrl+R على Windows ولينكس، Command+R على macOS).
Durable Functions 2.x متاح بدءا من الإصدار 2.x من حزمة الامتدادات دالات Azure .
لتحديث نسخة حزمة الامتدادات في مشروعك، افتح host.json وحدث القسم extensionBundle لاستخدام الإصدار 4.x ([4.*, 5.0.0)).
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.*, 5.0.0)"
}
}
قم بتحديث مشروعك .NET لاستخدام أحدث إصدار من إضافة Durable Functions bindings.
انظر سجل دالات Azure امتدادات الربط لمزيد من المعلومات.
قم بتحديث كود Durable Functions الخاص بك
يقدم Durable Functions 2.x عدة تغييرات في التعطل. تطبيقات Durable Functions 1.x غير متوافقة مع Durable Functions 2.x بدون تغييرات في الكود. يسرد هذا القسم بعض التغييرات التي يجب عليك إجراؤها عند ترقية وظائف الإصدار 1.x إلى 2.x.
مخطط Host.json
Durable Functions 2.x يستخدم مخطط host.json جديد. تتضمن التغييرات الرئيسية من 1.x ما يلي:
-
"storageProvider"(والقسم الفرعي"azureStorage") لتكوين خاص بالتخزين. -
"tracing"للتتبع وتكوين التسجيل. -
"notifications"(والقسم"eventGrid"الفرعي) لتكوين إشعارات شبكة الأحداث.
راجع وثائق مرجعية Durable Functions host.json لمزيد من التفاصيل.
تغييرات اسم مركز المهام الافتراضية
في الإصدار 1.x، إذا لم يتم تحديد اسم مركز المهام في host.json، فقد تم تعيينه افتراضيا إلى "DurableFunctionsHub". في الإصدار 2.x، يتم الآن اشتقاق اسم مركز المهام الافتراضي من اسم تطبيق الوظائف. لهذا السبب، إذا لم تكن قد حددت اسم مركز المهام عند الترقية إلى 2.x، تشغيل التعليمات البرمجية الخاصة بك مع مركز مهام جديد، ولن يكون لدى جميع التنسيقات أثناء الطيران تطبيق يعالجها. لتجاوز ذلك، يمكنك إما تعيين اسم مركز المهام الخاص بك بشكل صريح على النسخة الافتراضية v1.x "DurableFunctionsHub"، أو اتباع إرشادات النشر بدون توقف للحصول على تفاصيل حول كيفية التعامل مع التغييرات المتكررة في التنسيقات أثناء الطيران.
تغييرات الواجهة العامة في Durable Functions
في الإصدار 1.x، تحتوي الكائنات المختلفة context المدعومة من Durable Functions على فئات أساسية مجردة مخصصة للاستخدام في اختبار الوحدات. كجزء من Durable Functions 2.x، تم استبدال هذه الفئات الأساسية المجردة بواجهات.
يمثل الجدول التالي التغييرات الرئيسية:
| 1.x | 2.x |
|---|---|
DurableOrchestrationClientBase |
IDurableOrchestrationClient او IDurableClient |
DurableOrchestrationContext او DurableOrchestrationContextBase |
IDurableOrchestrationContext |
DurableActivityContext او DurableActivityContextBase |
IDurableActivityContext |
OrchestrationClientAttribute |
DurableClientAttribute |
في حالة احتواء فئة أساسية مجردة على طرق افتراضية، تم استبدال هذه الطرق الافتراضية بطرق تمديد معرفة في DurableContextExtensions.
function.json التغييرات
في Durable Functions 1.x، يستخدم رابط عميل التوزيع typeorchestrationClient. الإصدار 2.x يستخدم durableClient بدلا من ذلك.
رفع تغييرات الحدث
في Durable Functions 1.x، استدعاء واجهة برمجة التطبيقات raise event وتحديد حالة غير موجودة أدى إلى فشل صامت. بدءا من 2.x، يؤدي رفع حدث إلى تنسيق غير موجود إلى استثناء.