نظرة عامة على إصداراتDurable Functions

Durable Functions عبارة عن امتداد لـ دوال Azure وAzure WebJobsالتي تمكنك من كتابة الدوال المناسبة في بيئة حساب بلا خادم. يدير الامتداد الحالة ونقاط الفحص ويعيد تشغيلها لك. إذا لم تكن على دراية بالوظائف الدائمة بالفعل، فاطلع على الوثائق العامة.

الميزات الجديدة في الإصدار 2.x

يصف هذا القسم ميزات "وظائف دائمة" التي تمت إضافتها في الإصدار 2.x.

إشعار

لا ينطبق هذا القسم على Durable Functions في عامل dotnet المعزول. لذلك، راجع نظرة عامة على العملية المعزولة للوظائف الدائمة.

الكيانات الدائمة

في الدوال المتينة 2.x، قدمنا مفهوماً جديداً وظائف الكيان.

تحدد وظائف الكيان العمليات لقراءة وتحديث أجزاء صغيرة من الحالة، وهي تُعرف باسم الكيانات الدائمة. مثل وظائف المنظم، فإن دالات المنسق هي وظائف ذات نوع مشغل خاص، مشغل الكيان. على عكس وظائف المنسق، لا تحتوي وظائف الكيان على أي قيود تعليمات برمجية محددة. تدير وظائف الكيان أيضًا الحالة بشكل صريح بدلاً من تمثيل الحالة ضمنيًا عبر تدفق التحكم.

لمعرفة المزيد، راجع مقالة الكيانات الدائمة.

HTTP الدائم

في الوظائف الدائمة 2.x، قدمنا ميزة HTTP الدائمالجديد والتي تتيح لك:

  • استدعاء واجهات برمجة التطبيقات HTTP مباشرة من دوال التزامن (مع بعض القيود الموثقة).
  • تطبيق التحقق التلقائي عن حالة HTTP 202 من جانب العميل.
  • دعم مضمن ل الهويات المُدارة في Azure.

لمعرفة المزيد، راجع مقالة ميزات HTTP.

ترحيل من 1.x إلى 2.x

يصف هذا القسم كيفية ترحيل الإصدار 1.x الحالي الخاص بك كوظائف دائمة إلى الإصدار 2.x للاستفادة من الميزات الجديدة.

قم بترقية الامتداد

ثبّت أحدث إصدار 2.x من ملحق روابط "وظائف دائمة" في مشروعك.

JavaScript و Python و PowerShell

تتوفر الوظائف الدائمة 2.x بدءاً من الإصدار 2.x من حزمة ملحقات Azure Functions.

يتطلب دعم Python في الوظائف الدائمة وظائف دائمة 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)"
    }
}

إشعار

إذا لم يتم عرض Visual Studio Code القوالب الصحيحة بعد تغيير إصدار حزمة الملحق، أعد تحميل النافذة بتشغيلDeveloper: Reload Windowالأمر(Ctrl+R في Windows و Linux، Command + R على macOS).

Java

تتوفر الوظائف الدائمة 2.x بدءاً من الإصدار 4.x من حزمة ملحقات Azure Functions. يجب استخدام وقت تشغيل Azure Functions 4.0 لتنفيذ وظائف Java.

لتحديث إصدار حزمة المجموعة في المشروع، افتح host.json وقم بتحديث القسم extensionBundle لاستخدام الإصدار 4.x ([4.*, 5.0.0)).

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.*, 5.0.0)"
    }
}

.NET

ثبّت مشروع .NET الخاص بك لاستخدام أحدث إصدار من ملحق روابط "الدوال الدائمة".

راجع تسجيل ملحقات الربط لوظائف Azure للحصول على مزيد من المعلومات.

تحديث التعليمات البرمجية

تقدم الوظائف الدائمة 2.x العديد من التغييرات الفاصلة. لا تعد تطبيقات الوظائف الدائمة 1.x متوافقة مع الوظائف الدائمة 2.x بدون تغييرات في التعليمات البرمجية. يسرد هذا القسم بعض التغييرات التي يجب عليك إجراؤها عند ترقية وظائف الإصدار 1.x إلى 2.x.

مخطط Host.json

يستخدم الدالات المتينة 2.x host.js كمضيف جديد على المخطط. تشمل التغييرات الرئيسية من 1.x ما يلي:

  • "storageProvider""azureStorage"القسم الفرعي) للتكوين الخاص بالتخزين.
  • "tracing" لتتبع وتكوين التسجيل.
  • "notifications" (والقسم الفرعي "eventGrid") لتكوين إعلام شبكة الأحداث.

راجع host.js"وظائف دائمة" على الوثائق المرجعية للحصول على التفاصيل.

تغييرات اسم مركز المهام الافتراضي

في الإصدار 1.x، إذا لم يتم تحديد اسم مركز المهام في host.json، فسيتم تعيينه افتراضياً على "DurableFunctionsHub". في الإصدار 2.x، يتم الآن اشتقاق اسم مركز المهام الافتراضي من اسم تطبيق الوظيفة. لهذا السبب، إذا لم تحدد اسماً لمركز المهام عند الترقية إلى الإصدار 2.x، فسيتم تشغيل التعليمات البرمجية الخاصة بك مع مركز مهام جديد، ولن يكون هناك تطبيق يقوم بمعالجة جميع التنظيمات أثناء التجربة. للتغلب على هذا، يمكنك إما تعيين اسم مركز المهام الخاص بك بشكل صريح إلى الإصدار الافتراضي v1.x لـ "DurableFunctionsHub"، أو يمكنك اتباع إرشادات النشر بدون توقفللحصول على تفاصيل حول كيفية التعامل مع التغييرات الفاصلة للتنظيمات أثناء الطيران.

تغييرات الواجهة العامة (.NET فقط)

في الإصدار 1.x، تحتوي كائنات السياق المختلفة التي تدعمها "الوظائف الدائمة" على فئات أساسية مجردة مخصصة للاستخدام في اختبار الوحدة. كجزء من "وظائف دائمة 2.x" ، يتم استبدال هذه الفئات الأساسية المجردة بواجهات.

يمثل الجدول التالي التغييرات الرئيسية:

1.x 2.x
DurableOrchestrationClientBase IDurableOrchestrationClient أو IDurableClient
DurableOrchestrationContext أو DurableOrchestrationContextBase IDurableOrchestrationContext
DurableActivityContext أو DurableActivityContextBase IDurableActivityContext
OrchestrationClientAttribute DurableClientAttribute

في الحالة التي تحتوي فيها فئة أساسية مجردة على أساليب ظاهرية، يتم استبدال هذه الطرق الظاهرية بأساليب الامتداد المحددة في DurableContextExtensions.

تغييرات function.json

. في الدوال المتينة 1.x، يستخدم ربط عميل التزامن typeمنorchestrationClient. يستخدم الإصدار 2.x durableClient بدلاً من ذلك.

رفع تغييرات الحدث

في Durable Functions 1.x، إن استدعاء واجهة برمجة تطبيقات تنفيذ الحدث وتحديد مثيل غير موجود أدى إلى فشل صامت. بدءًا من 2.x، يؤدي رفع حدث إلى تزامن غير موجود إلى استثناء.