Durable Functions الإعدادات في host.json

تكوين إعدادات Durable Functions في ملف host.json للتحكم في سلوك مركز المهام وموفري التخزين وخيارات الأداء لتطبيق دالات Azure. للحصول على معلومات حول الإعدادات العامة في host.json، راجع host.json المرجع ل دالات Azure 1.x أو host.json المرجع ل دالات Azure 2.x وما بعده.

إعدادات التكوين ل Durable Functions.

ملاحظة

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

يوفر الكود التالي مثالين على إعدادات durableTask في host.json: واحد ل Durable Functions 2.x وواحد ل Durable Functions 1.x. يمكنك استخدام كلا المثالين مع دالات Azure 2.0 و3.0. مع دالات Azure 1.0، الإعدادات المتاحة هي نفسها، لكن قسم durableTask من host.json يقع في جذر تكوين host.json بدلا من أن يكون حقلا تحت extensions.

{
 "extensions": {
  "durableTask": {
    "hubName": "MyTaskHub",
    "defaultVersion": "1.0",
    "versionMatchStrategy": "CurrentOrOlder",
    "versionFailureStrategy": "Reject",
    "storageProvider": {
      "connectionStringName": "AzureWebJobsStorage",
      "controlQueueBatchSize": 32,
      "controlQueueBufferThreshold": 256,
      "controlQueueVisibilityTimeout": "00:05:00",
      "FetchLargeMessagesAutomatically": true,
      "maxQueuePollingInterval": "00:00:30",
      "partitionCount": 4,
      "trackingStoreConnectionStringName": "TrackingStorage",
      "trackingStoreNamePrefix": "DurableTask",
      "useLegacyPartitionManagement": false,
      "useTablePartitionManagement": true,
      "workItemQueueVisibilityTimeout": "00:05:00",
      "QueueClientMessageEncoding": "UTF8"
    },
    "tracing": {
      "traceInputsAndOutputs": false,
      "traceReplayEvents": false,
    },
    "httpSettings":{
      "defaultAsyncRequestSleepTimeMilliseconds": 30000,
      "useForwardedHost": false,
    },
    "notifications": {
      "eventGrid": {
        "topicEndpoint": "https://topic_name.westus2-1.eventgrid.azure.net/api/events",
        "keySettingName": "EventGridKey",
        "publishRetryCount": 3,
        "publishRetryInterval": "00:00:30",
        "publishEventTypes": [
          "Started",
          "Completed",
          "Failed",
          "Terminated"
        ]
      }
    },
    "maxConcurrentActivityFunctions": 10,
    "maxConcurrentOrchestratorFunctions": 10,
    "maxConcurrentEntityFunctions": 10,
    "extendedSessionsEnabled": false,
    "extendedSessionIdleTimeoutInSeconds": 30,
    "useAppLease": true,
    "useGracefulShutdown": false,
    "maxEntityOperationBatchSize": 50,
    "maxOrchestrationActions": 100000,
    "storeInputsInOrchestrationHistory": false
  }
 }
}
الملكية القيمة الافتراضية الوصف
hubName TestHubName (DurableFunctionsHub في الإصدار 1.x) اسم الموزع الذي يخزن الحالة الحالية لتطبيق الوظائف. يجب أن تبدأ أسماء مركز المهام بحرف وتتكون من أحرف وأرقام فقط. إذا لم تحدد اسما، استخدام القيمة الافتراضية. يمكن استخدام أسماء مراكز المهام البديلة لعزل عدة تطبيقات Durable Functions عن بعضها البعض، حتى لو استخدمت نفس الخلفية التخزينية. لمزيد من المعلومات، راجع مراكز المهام.
defaultVersion الإصدار الافتراضي لتعيينه إلى مثيلات تزامن جديدة. عند تحديد إصدار، يتم إقران مثيلات التزامن الجديدة بشكل دائم بقيمة الإصدار هذه. يتم استخدام هذا الإعداد بواسطة ميزة تعيين إصدار التنسيق لتمكين سيناريوهات مثل عمليات النشر بدون توقف عن العمل مع تغييرات فاصلة. يمكنك استخدام أي قيمة سلسلة للإصدار.
الإصدارMatchStrategy CurrentOrOlder قيمة تحدد كيفية مطابقة إصدارات التنسيق عند تحميل وظائف المنسق. القيم الصالحة هي None، Strict، و CurrentOrOlder. للحصول على تفسيرات مفصلة، راجع إصدار التنسيق.
versionFailureStrategy Reject قيمة تحدد ما يحدث عندما لا يتطابق إصدار التنسيق مع القيمة الحالية defaultVersion . القيم الصالحة هي Reject و Fail. للحصول على تفسيرات مفصلة، راجع إصدار التنسيق.
controlQueueBatchSize 32 عدد الرسائل المطلوب سحبها من قائمة انتظار التحكم في المرة الواحدة.
controlQueueBufferThreshold خطة الاستهلاك ل Python: 32
خطة الاستهلاك للغات الأخرى: 128
الباقة المخصصة أو المميزة: 256
عدد رسائل قائمة انتظار التحكم التي يمكن تخزينها مؤقتا في الذاكرة في كل مرة. عند الوصول إلى الرقم المحدد، ينتظر المرسل قبل إلغاء قائمة انتظار أي رسائل أخرى. في بعض الحالات، يمكن أن يؤدي تقليل هذه القيمة إلى تقليل استهلاك الذاكرة بشكل كبير.
partitionCount 4 عدد الأقسام لقائمة انتظار التحكم. يجب أن تكون هذه القيمة عددا صحيحا موجبا بين 1 و 16. يتطلب تغيير هذه القيمة تكوين مركز مهام جديد.
controlQueueVisibilityTimeout 00:05:00 مهلة الرؤية لرسائل قائمة انتظار التحكم التي تم إلغاء قائمة الانتظار بتنسيق hh:mm:ss .
workItemQueueVisibilityTimeout 00:05:00 مهلة الرؤية لرسائل قائمة انتظار عنصر العمل التي تم إلغاء قائمة انتظارها بتنسيق hh:mm:ss .
FetchLargeMessagesAutomatically صحيح قيمة تحدد ما إذا كان سيتم استرداد الرسائل الكبيرة في استعلامات حالة التنسيق. عندما يكون هذا الإعداد هو true، يتم استرداد الرسائل الكبيرة التي تتجاوز حد حجم قائمة الانتظار. عندما يكون هذا الإعداد ، falseيتم استرداد عنوان URL للكائن الثنائي كبير الحجم يشير إلى كل رسالة كبيرة.
maxConcurrentActivityFunctions خطة الاستهلاك: 10
الخطة المخصصة أو المميزة: 10 أضعاف عدد المعالجات على الجهاز الحالي
الحد الأقصى لعدد وظائف النشاط التي يمكن معالجتها بشكل متزامن على مثيل مضيف واحد.
maxConcurrentOrchestratorFunctions خطة الاستهلاك: 5
الخطة المخصصة أو المميزة: 10 أضعاف عدد المعالجات على الجهاز الحالي
الحد الأقصى لعدد وظائف المنسق التي يمكن معالجتها بشكل متزامن على مثيل مضيف واحد.
maxConcurrentEntityFunctions خطة الاستهلاك: 5
الخطة المخصصة أو المميزة: 10 أضعاف عدد المعالجات على الجهاز الحالي
الحد الأقصى لعدد وظائف الكيان التي يمكن معالجتها بشكل متزامن على مثيل مضيف واحد. ينطبق هذا الإعداد فقط عند استخدام جدولة المهام الدائمة. وإلا، يقتصر الحد الأقصى لعدد عمليات تنفيذ الكيانات المتزامنة على maxConcurrentOrchestratorFunctions القيمة.
maxQueuePollingInterval 00:00:30 الحد الأقصى للتحكم والفاصل الزمني لاستقصاء قائمة انتظار عنصر العمل بتنسيق hh:mm:ss . يمكن أن تؤدي القيم الأعلى إلى زمن انتقال أعلى لمعالجة الرسائل. يمكن أن تؤدي القيم المنخفضة إلى تكاليف تخزين أعلى بسبب زيادة عمليات التخزين.
maxOrchestrationالإجراءات 100,000 الحد الأقصى لعدد الإجراءات التي يمكن أن تنفذها دالة المنسق أثناء دورة تنفيذ واحدة.
connectionName (الإصدار 2.7.0 والإصدارات الأحدث)
connectionStringName (v2.x)
azureStorageConnectionStringName (v1.x)
AzureWebJobsStorage اسم إعداد التطبيق أو مجموعة الإعدادات التي تحدد كيفية الاتصال بموارد تخزين Azure الأساسية. عندما توفر إعداد تطبيق واحد، يجب أن يكون تخزين Azure سلسلة الاتصال.
trackingStoreConnectionName (الإصدار 2.7.0 والإصدارات الأحدث)
trackingStoreConnectionStringName
اسم إعداد التطبيق أو مجموعة الإعدادات التي تحدد كيفية الاتصال بجدولي المحفوظات والمثيلات، اللذين يخزنان محفوظات التنفيذ وبيانات التعريف حول مثيلات التنسيق. عندما توفر إعداد تطبيق واحد، يجب أن يكون تخزين Azure سلسلة الاتصال. إذا لم تحدد إعدادا، connectionStringName استخدام اتصال القيمة (v2.x) أو azureStorageConnectionStringName القيمة (v1.x).
trackingStoreNamePrefix البادئة التي يجب استخدامها لجداول المحفوظات والمثيلات عند trackingStoreConnectionStringName تحديدها. إذا لم تحدد بادئة، استخدام القيمة الافتراضية ل DurableTask . إذا trackingStoreConnectionStringName لم يتم تحديده، فسيستخدم جداول المحفوظات والمثيلات القيمة hubName كبادئة لهما، ويتم تجاهل الإعداد trackingStoreNamePrefix .
traceInputsAndOutputs كاذبه قيمة تشير إلى ما إذا كان سيتم تتبع مدخلات ومخرجات استدعاءات الدالة. عند تتبع أحداث تنفيذ الوظيفة، يكون السلوك الافتراضي هو تضمين عدد وحدات البايت في المدخلات والمخرجات المتسلسلة لاستدعاءات الوظيفة. يوفر هذا السلوك الحد الأدنى من المعلومات حول المدخلات والمخرجات بحيث لا ينتفخ السجلات أو يعرض المعلومات الحساسة عن غير قصد. عندما تكون trueهذه الخاصية ، يتم تسجيل المحتويات الكاملة لمدخلات ومخرجات الدالة.
traceReplayEvents كاذبه قيمة تشير إلى ما إذا كنت تريد كتابة أحداث إعادة تشغيل التنسيق إلى Application Insights.
logReplayEvents كاذبه قيمة تشير إلى ما إذا كان سيتم تسجيل عمليات التنفيذ المعاد تشغيلها في سجلات التطبيقات.
eventGridTopicEndpoint عنوان URL لنقطة نهاية موضوع مخصصة في Azure Event Grid. عند تعيين هذه الخاصية، يتم نشر أحداث إعلام دورة حياة التزامن إلى نقطة النهاية هذه. تدعم هذه الخاصية دقة إعدادات التطبيق.
eventGridKeySettingName اسم إعداد التطبيق الذي يحتوي على المفتاح المستخدم للمصادقة باستخدام الموضوع المخصص لشبكة الأحداث في EventGridTopicEndpoint عنوان URL.
eventGridPublishRetryCount 0 عدد مرات إعادة المحاولة إذا فشل النشر إلى موضوع Event Grid.
eventGridPublishRetryInterval 00:05:00 تقوم شبكة الأحداث بنشر الفاصل الزمني لإعادة المحاولة بتنسيق hh:mm:ss .
eventGridPublishEventTypes قائمة أنواع الأحداث التي سيتم نشرها على Event Grid. إذا لم تحدد أي أنواع، نشر جميع أنواع الأحداث. تتضمن Startedالقيم المسموح بها ، Completedو Failedو Terminated.
extendedSessionsEnabled كاذبه قيمة تحدد ما إذا كان يتم تخزين جلسات عمل منسق الجلسة ووظيفة الكيان.
extendedSessionIdleTimeoutInSeconds 30 عدد الثواني التي يظل فيها المنسق الخامل أو وظيفة الكيان في الذاكرة قبل تفريغها. لا يتم استخدام هذا الإعداد إلا عندما يكون الإعداد extendedSessionsEnabled هو true.
useAppLease صحيح قيمة تشير إلى ما إذا كان يجب على التطبيقات الحصول على عقد إيجار كائن ثنائي كبير الحجم على مستوى التطبيق قبل معالجة رسائل مركز المهام. لمزيد من المعلومات، انظر التعافي من الكوارث والتوزيع الجغرافي في Durable Functions. يتوفر هذا الإعداد بدءا من الإصدار 2.3.0.
useLegacyPartitionManagement كاذبه قيمة تحدد نوع خوارزمية إدارة الأقسام المراد استخدامها. عندما يكون هذا الإعداد ، falseيتم استخدام خوارزمية تقلل من إمكانية تنفيذ الدالة المكررة عند التوسع. يتوفر هذا الإعداد بدءا من الإصدار 2.3.0. لا ينصح بتعيين هذه القيمة على true
useTablePartitionManagement في الإصدار 3.x: صحيح
في الإصدار 2.x: خطأ
قيمة تحدد نوع خوارزمية إدارة الأقسام المراد استخدامها. عندما يكون هذا الإعداد true، يستخدم خوارزمية مصممة لتقليل التكاليف لحسابات v2 تخزين Azure. يتوفر هذا الإعداد بدءا من WebJobs.Extensions.DurableTask v2.10.0. يتطلب استخدام هذا الإعداد مع هوية مدارة WebJobs.Extensions.DurableTask v3.x أو إصدار أحدث، أو Worker.Extensions.DurableTask v1.2.x أو أحدث.
useGracefulShutdown كاذبه (معاينة) قيمة تشير إلى ما إذا كان سيتم إيقاف التشغيل بأمان لتقليل فرصة إيقاف تشغيل المضيف مما يتسبب في فشل عمليات تنفيذ الوظائف أثناء العملية.
maxEntityOperationBatchSize خطة الاستهلاك: 50
الباقة المخصصة أو المميزة: 5,000
الحد الأقصى لعدد عمليات الكيان التي تتم معالجتها كدفعة. إذا كانت هذه القيمة 1، يتم تعطيل التجميع، ويقوم استدعاء دالة منفصلة بمعالجة كل رسالة عملية. يتوفر هذا الإعداد بدءا من الإصدار 2.6.1.
storeInputsInOrchestrationHistory كاذبه قيمة تحدد كيفية تخزين المدخلات. عندما يكون هذا الإعداد ، trueيحفظ "إطار عمل المهام الدائم" مدخلات النشاط في جدول المحفوظات، وتظهر مدخلات دالة النشاط في نتائج استعلام محفوظات التنسيق.
maxGrpcMessageSizeInBytes 4,194,304 قيمة عدد صحيح تحدد الحد الأقصى للحجم، بالبايت، للرسائل التي يمكن أن يتلقاها عميل استدعاء الإجراء البعيد العام (gRPC). يستخدم تنفيذ DurableTaskClient عميل gRPC لإدارة مثيلات التنسيق. ينطبق هذا الإعداد على Durable Functions .NET تطبيقات العامل والتطبيقات Java المعزولة.
grpcHttpClientTimeout 00:01:40 المهلة في صيغة hh:mm:ss لعميل HTTP المستخدم من قبل عميل gRPC في Durable Functions. يدعم العميل حاليا تطبيقات العمال المعزولة بتقنية .NET (.NET 6 والإصدارات اللاحقة) ولتطبيقات Java.
QueueClientMessageEncoding UTF8 استراتيجية الترميز لرسائل Azure Queue Storage. الاستراتيجيات الصالحة هي تنسيق تحويل Unicode - 8 بت (UTF8) و Base64. ينطبق هذا الإعداد عند استخدام مايكروسوفت. Azure. WebJobs.Extensions.DurableTask 3.4.0 أو أحدث، أو مايكروسوفت. Azure. Functions.Worker.Extensions.DurableTask 1.7.0 أو لاحقا.
defaultAsyncRequestSleepTimeMilliseconds 30000 الفترة الافتراضية للاستطلاع، بالميلي ثانية، لواجهات برمجة تطبيقات HTTP غير المتزامنة. عندما يقوم العميل باستطلاع حالة تنسيق طويل الأمد باستخدام نقطة نهاية استعلام حالة HTTP، تحدد هذه القيمة المدة التي يجب أن ينتظر العميل قبل الاستطلاع مرة أخرى.
useForwardedHost كاذبه عند ضبطه على true، يستخدم الامتداد رؤوس X-Forwarded-Host و X-Forwarded-Proto لبناء روابط URL في ردود HTTP.

العديد من هذه الإعدادات لتحسين الأداء. لمزيد من المعلومات، راجع الأداء والمقياس.

الخطوات التالية