إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يحتوي ملف بيانات تعريف host.json على خيارات التكوين التي تؤثر على جميع الوظائف في مثيل تطبيق الوظائف. تسرد هذه المقالة الإعدادات المتوفرة لوقت تشغيل الإصدار 1.x. مخطط JSON في http://json.schemastore.org/host.
Note
هذه المقالة مخصصة لدالات Azure 1.x. للحصول على مرجع لـ host.json في Functions 2.x أو الأحدث، راجع مرجع host.json لـ Azure Functions 2.x.
تتم إدارة خيارات تكوين تطبيق الوظائف الأخرى في إعدادات التطبيق.
يتم استخدام بعض إعدادات host.json فقط عند التشغيل محليا في ملف local.settings.json .
نموذج ملف host.json
يحتوي نموذج ملفاتhost.json التالي على جميع الخيارات الممكنة المحددة.
{
"aggregator": {
"batchSize": 1000,
"flushTimeout": "00:00:30"
},
"applicationInsights": {
"sampling": {
"isEnabled": true,
"maxTelemetryItemsPerSecond" : 5
}
},
"documentDB": {
"connectionMode": "Gateway",
"protocol": "Https",
"leaseOptions": {
"leasePrefix": "prefix"
}
},
"eventHub": {
"maxBatchSize": 64,
"prefetchCount": 256,
"batchCheckpointFrequency": 1
},
"functions": [ "QueueProcessor", "GitHubWebHook" ],
"functionTimeout": "00:05:00",
"healthMonitor": {
"enabled": true,
"healthCheckInterval": "00:00:10",
"healthCheckWindow": "00:02:00",
"healthCheckThreshold": 6,
"counterThreshold": 0.80
},
"http": {
"routePrefix": "api",
"maxOutstandingRequests": 20,
"maxConcurrentRequests": 10,
"dynamicThrottlesEnabled": false
},
"id": "9f4ea53c5136457d883d685e57164f08",
"logger": {
"categoryFilter": {
"defaultLevel": "Information",
"categoryLevels": {
"Host": "Error",
"Function": "Error",
"Host.Aggregator": "Information"
}
}
},
"queues": {
"maxPollingInterval": 2000,
"visibilityTimeout" : "00:00:30",
"batchSize": 16,
"maxDequeueCount": 5,
"newBatchThreshold": 8
},
"sendGrid": {
"from": "Contoso Group <admin@contoso.com>"
},
"serviceBus": {
"maxConcurrentCalls": 16,
"prefetchCount": 100,
"autoRenewTimeout": "00:05:00",
"autoComplete": true
},
"singleton": {
"lockPeriod": "00:00:15",
"listenerLockPeriod": "00:01:00",
"listenerLockRecoveryPollingInterval": "00:01:00",
"lockAcquisitionTimeout": "00:01:00",
"lockAcquisitionPollingInterval": "00:00:03"
},
"tracing": {
"consoleLevel": "verbose",
"fileLoggingMode": "debugOnly"
},
"watchDirectories": [ "Shared" ],
}
تشرح الأقسام التالية من هذه المقالة كل خاصية من المستوى الأعلى. جميعها اختيارية ما لم يذكر خلاف ذلك.
aggregator
يحدد عدد استدعاءات الوظائف التي يتم تجميعها عند حساب قياسات Application Insights.
{
"aggregator": {
"batchSize": 1000,
"flushTimeout": "00:00:30"
}
}
| Property | Default | Description |
|---|---|---|
| batchSize | 1000 | أقصى عدد من الطلبات للتجميع. |
| flushTimeout | 00:00:30 | أقصى فترة زمنية للتجميع. |
يتم تجميع استدعاءات الوظائف عند الوصول إلى أول حدين.
applicationInsights
يتحكم في ميزة أخذ العينات في Application Insights.
{
"applicationInsights": {
"sampling": {
"isEnabled": true,
"maxTelemetryItemsPerSecond" : 5
}
}
}
| Property | Default | Description |
|---|---|---|
| isEnabled | true | تمكين أو تعطيل أخذ العينات. |
| maxTelemetryItemsPerSecond | 5 | الحد الذي يبدأ عنده أخذ العينات. |
DocumentDB
إعدادات التكوين لمشغل Azure Cosmos DB والروابط.
{
"documentDB": {
"connectionMode": "Gateway",
"protocol": "Https",
"leaseOptions": {
"leasePrefix": "prefix1"
}
}
}
| Property | Default | Description |
|---|---|---|
| GatewayMode | Gateway | وضع الاتصال المستخدم من قبل الدالة عند الاتصال بخدمة Azure Cosmos DB. الخيارات هي Direct وGateway |
| Protocol | Https | بروتوكول الاتصال المستخدم من قبل الدالة عند الاتصال بخدمة Azure Cosmos DB. اقرأ هنا للحصول على شرح لكلا الوضعين |
| leasePrefix | n/a | بادئة التأجير لاستخدامها عبر جميع الوظائف في التطبيق. |
durableTask
إعدادات التكوين للوظائف الدائمة.
Note
يتم اعتماد كافة الإصدارات الرئيسية من "وظائف دائمة" على كافة إصدارات وقت تشغيل "وظائف Azure". ومع ذلك، يختلف مخطط تكوين host.json قليلا اعتمادا على إصدار وقت تشغيل Azure Functions وإصدار ملحق Durable Functions الذي تستخدمه.
يوفر الكود التالي مثالين للإعدادات durableTask في host.json: أحدهما للوظائف الدائمة 2.x والآخر للوظائف الدائمة 1.x. يمكنك استخدام كلا المثالين مع Azure Functions 2.0 و3.0. مع Azure Functions 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,
},
"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
}
}
}
| Property | القيمة الافتراضية | Description |
|---|---|---|
| hubName | TestHubName (DurableFunctionsHub في الإصدار 1.x) | اسم الموزع الذي يخزن الحالة الحالية لتطبيق الوظائف. يجب أن تبدأ أسماء مركز المهام بحرف وتتكون من أحرف وأرقام فقط. إذا لم تحدد اسما، استخدام القيمة الافتراضية. يمكن استخدام أسماء مراكز المهام البديلة لعزل تطبيقات Durable Functions متعددة عن بعضها البعض، حتى إذا كانت تستخدم نفس الواجهة الخلفية للتخزين. لمزيد من المعلومات، راجع مراكز المهام. |
| defaultVersion | الإصدار الافتراضي لتعيينه إلى مثيلات تزامن جديدة. عند تحديد إصدار، يتم إقران مثيلات التزامن الجديدة بشكل دائم بقيمة الإصدار هذه. يتم استخدام هذا الإعداد بواسطة ميزة تعيين إصدار التنسيق لتمكين سيناريوهات مثل عمليات النشر بدون توقف عن العمل مع تغييرات فاصلة. يمكنك استخدام أي قيمة سلسلة للإصدار. | |
| الإصدارMatchStrategy | CurrentOrOlder | قيمة تحدد كيفية مطابقة إصدارات التنسيق عند تحميل وظائف المنسق. القيم الصالحة هي NoneStrictCurrentOrOlder. للحصول على تفسيرات مفصلة، راجع إصدار التنسيق. |
| 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 | قيمة تحدد ما إذا كان سيتم استرداد الرسائل الكبيرة في استعلامات حالة التنسيق. عندما يكون هذا الإعداد هو 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 Storage الأساسية. عند توفير إعداد تطبيق واحد، يجب أن يكون سلسلة اتصال Azure Storage. |
| trackingStoreConnectionName (الإصدار 2.7.0 والإصدارات الأحدث) trackingStoreConnectionStringName |
اسم إعداد التطبيق أو مجموعة الإعدادات التي تحدد كيفية الاتصال بجدولي المحفوظات والمثيلات، اللذين يخزنان محفوظات التنفيذ وبيانات التعريف حول مثيلات التنسيق. عند توفير إعداد تطبيق واحد، يجب أن يكون سلسلة اتصال Azure Storage. إذا لم تحدد إعدادا، connectionStringName استخدام اتصال القيمة (v2.x) أو azureStorageConnectionStringName القيمة (v1.x). |
|
| trackingStoreNamePrefix | البادئة المراد استخدامها لجدول "المحفوظات" و"المثيلات" عند تحديد trackingStoreConnectionStringName. إذا لم تحدد بادئة، استخدام القيمة الافتراضية ل DurableTask . إذا trackingStoreConnectionStringName لم يتم تحديده، فسيستخدم جداول المحفوظات والمثيلات القيمة hubName كبادئة لهما، ويتم تجاهل الإعداد trackingStoreNamePrefix . |
|
| traceInputsAndOutputs | false | قيمة تشير إلى ما إذا كان سيتم تتبع مدخلات ومخرجات استدعاءات الدالة. عند تتبع أحداث تنفيذ الوظيفة، يكون السلوك الافتراضي هو تضمين عدد وحدات البايت في المدخلات والمخرجات المتسلسلة لاستدعاءات الوظيفة. يوفر هذا السلوك الحد الأدنى من المعلومات حول المدخلات والمخرجات بحيث لا ينتفخ السجلات أو يعرض المعلومات الحساسة عن غير قصد. عندما تكون trueهذه الخاصية ، يتم تسجيل المحتويات الكاملة لمدخلات ومخرجات الدالة. |
| traceReplayEvents | false | قيمة تشير إلى ما إذا كنت تريد كتابة أحداث إعادة تشغيل التنسيق إلى Application Insights. |
| logReplayEvents | false | قيمة تشير إلى ما إذا كان سيتم تسجيل عمليات التنفيذ المعاد تشغيلها في سجلات التطبيقات. |
| eventGridTopicEndpoint | عنوان URL لنقطة نهاية الموضوع المخصص لشبكة حدث Azure. عند تعيين هذه الخاصية، يتم نشر أحداث إعلام دورة حياة التزامن إلى نقطة النهاية هذه. تدعم هذه الخاصية دقة إعدادات التطبيق. | |
| eventGridKeySettingName | اسم إعداد التطبيق الذي يحتوي على المفتاح المستخدم للمصادقة باستخدام الموضوع المخصص لشبكة الأحداث في EventGridTopicEndpoint عنوان URL. |
|
| eventGridPublishRetryCount | 0 | عدد مرات إعادة المحاولة إذا فشل النشر إلى موضوع Event Grid. |
| eventGridPublishRetryInterval | 00:05:00 | تقوم شبكة الأحداث بنشر الفاصل الزمني لإعادة المحاولة بتنسيق hh:mm:ss . |
| eventGridPublishEventTypes | قائمة أنواع الأحداث التي سيتم نشرها على Event Grid. إذا لم تحدد أي أنواع، نشر جميع أنواع الأحداث. تتضمن Startedالقيم المسموح بها ، Completedو Failedو Terminated. |
|
| extendedSessionsEnabled | false | قيمة تحدد ما إذا كان يتم تخزين جلسات عمل منسق الجلسة ووظيفة الكيان. |
| extendedSessionIdleTimeoutInSeconds | 30 | عدد الثواني التي يظل فيها المنسق الخامل أو وظيفة الكيان في الذاكرة قبل تفريغها. لا يتم استخدام هذا الإعداد إلا عندما يكون الإعداد extendedSessionsEnabled هو true. |
| useAppLease | true | قيمة تشير إلى ما إذا كان يجب على التطبيقات الحصول على عقد إيجار كائن ثنائي كبير الحجم على مستوى التطبيق قبل معالجة رسائل مركز المهام. لمزيد من المعلومات، راجع التعافي من الكوارث والتوزيع الجغرافي في الوظائف الدائمة. يتوفر هذا الإعداد بدءا من الإصدار 2.3.0. |
| useLegacyPartitionManagement | false | قيمة تحدد نوع خوارزمية إدارة الأقسام المراد استخدامها. عندما يكون هذا الإعداد ، falseيتم استخدام خوارزمية تقلل من إمكانية تنفيذ الدالة المكررة عند التوسع. يتوفر هذا الإعداد بدءا من الإصدار 2.3.0.
لا ينصح بتعيين هذه القيمة على true |
| useTablePartitionManagement | في الإصدار 3.x: صحيح في الإصدار 2.x: خطأ |
قيمة تحدد نوع خوارزمية إدارة الأقسام المراد استخدامها. عندما يكون هذا الإعداد ، trueيتم استخدام خوارزمية مصممة لتقليل تكاليف حسابات Azure Storage v2. يتوفر هذا الإعداد بدءا من WebJobs.Extensions.DurableTask v2.10.0. يتطلب استخدام هذا الإعداد مع هوية مدارة WebJobs.Extensions.DurableTask v3.x أو إصدار أحدث، أو Worker.Extensions.DurableTask v1.2.x أو أحدث. |
| useGracefulShutdown | false | (معاينة) قيمة تشير إلى ما إذا كان سيتم إيقاف التشغيل بأمان لتقليل فرصة إيقاف تشغيل المضيف مما يتسبب في فشل عمليات تنفيذ الوظائف أثناء العملية. |
| maxEntityOperationBatchSize |
خطة الاستهلاك: 50 الباقة المخصصة أو المميزة: 5,000 |
الحد الأقصى لعدد عمليات الكيان التي تتم معالجتها كدفعة. إذا كانت هذه القيمة 1، يتم تعطيل التجميع، ويقوم استدعاء دالة منفصلة بمعالجة كل رسالة عملية. يتوفر هذا الإعداد بدءا من الإصدار 2.6.1. |
| storeInputsInOrchestrationHistory | false | قيمة تحدد كيفية تخزين المدخلات. عندما يكون هذا الإعداد ، 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. ينطبق هذا الإعداد عند استخدام Microsoft.Azure.WebJobs.Extensions.DurableTask 3.4.0 أو إصدار أحدث، أو Microsoft.Azure.Functions.Worker.Extensions.DurableTask 1.7.0 أو أحدث. |
العديد من هذه الإعدادات لتحسين الأداء. لمزيد من المعلومات، راجع الأداء وتغيير السعة.
eventHub
إعدادات التكوين لمشغلات Event Hub والروابط.
functions
قائمة الوظائف التي يقوم مضيف الوظيفة بتشغيلها. يعني الصفيف الفارغ تشغيل جميع الوظائف. مخصص للاستخدام فقط عند التشغيل محليا. في تطبيقات الوظائف في Azure، يجب عليك بدلاً من ذلك اتباع الخطوات الواردة في كيفية تعطيل الوظائف في Azure Functions لتعطيل وظائف معينة بدلاً من استخدام هذا الإعداد.
{
"functions": [ "QueueProcessor", "GitHubWebHook" ]
}
functionTimeout
يشير إلى مدة المهلة لجميع الوظائف. في خطة استهلاك بلا خادم، يكون النطاق الصالح من 1 ثانية إلى 10 دقائق، والقيمة الافتراضية هي 5 دقائق. في خطة App Service، لا يوجد حد إجمالي والإعداد الافتراضي فارغ، مما يشير إلى عدم وجود مهلة.
{
"functionTimeout": "00:05:00"
}
healthMonitor
إعدادات التكوين لمراقبة صحة المضيف.
{
"healthMonitor": {
"enabled": true,
"healthCheckInterval": "00:00:10",
"healthCheckWindow": "00:02:00",
"healthCheckThreshold": 6,
"counterThreshold": 0.80
}
}
| Property | Default | Description |
|---|---|---|
| enabled | true | تحديد ما إذا كانت الميزة ممكّنة أم لا. |
| healthCheckInterval | 10 ثوان | الفاصل الزمني بين الفحوصات الدورية لصحة الخلفية. |
| healthCheckWindow | 2 دقائق | نافذة زمنية منزلقة تستخدم مع healthCheckThreshold الإعداد. |
| healthCheckThreshold | 6 | الحد الأقصى لعدد المرات التي يمكن أن يفشل فيها فحص الحالة قبل بدء عملية حذف المضيف. |
| counterThreshold | 0.80 | الحد الأدنى الذي سيتم اعتبار حالة عداد الأداء عنده غير صحية. |
http
إعدادات التكوين لمشغلات http والروابط.
{
"http": {
"routePrefix": "api",
"maxOutstandingRequests": 200,
"maxConcurrentRequests": 100,
"dynamicThrottlesEnabled": true
}
}
| Property | Default | Description |
|---|---|---|
| dynamicThrottlesEnabled | false | عند التمكين، يتسبب هذا الإعداد في أن يتحقق مسار معالجة الطلب بشكل دوري من عدادات أداء النظام مثل الاتصالات/مؤشرات الترابط/العمليات/الذاكرة/وحدة المعالجة المركزية/إلخ. وإذا تجاوز أي من هذه العدادات عتبة عالية مضمنة (80٪)، يتم رفض الطلبات مع استجابة 429 "مشغول جدا" حتى يعود العداد (العدادات) إلى المستويات العادية. |
| maxConcurrentRequests | غير مقيد (-1) |
الحد الأقصى لعدد دوال HTTP التي سيتم تنفيذها بالتوازي. يسمح لك هذا بالتحكم في التزامن، والذي يمكن أن يساعد في إدارة استخدام مورد. على سبيل المثال، قد يكون لديك دالة HTTP تستخدم الكثير من موارد النظام (memory/cpu/sockets) بحيث تتسبب في حدوث مشكلات عندما يكون التزامن مرتفعًا جدًا. أو قد يكون لديك دالة تقدم طلبات صادرة لخدمة جهة خارجية، ويجب أن تكون هذه الاتصالات محدودة التقييم. في هذه الحالات، يمكن أن يساعد استخدام تقييد هنا. |
| maxOutstandingRequests | غير مقيد (-1) |
الحد الأقصى لعدد الطلبات المعلقة التي يتم الاحتفاظ بها في أي وقت. يتضمن هذا الحد الطلبات التي تم وضعها في قائمة الانتظار ولكن لم تبدأ في التنفيذ، وأي عمليات تنفيذ قيد التقدم. يتم رفض أي طلبات واردة تتجاوز هذا الحد باستجابة 429 "مشغول للغاية". يسمح ذلك للمتصلين باستخدام استراتيجيات إعادة المحاولة المستندة إلى الوقت، ويساعدك أيضًا على عنصر تحكم في الحد الأقصى من أزمنة انتقال الطلب. يتحكم هذا فقط في قائمة الانتظار التي تحدث ضمن مسار تنفيذ مضيف البرنامج النصي. ستظل قوائم الانتظار الأخرى مثل قائمة الانتظار طلب ASP.NET سارية ولن تتأثر بهذا الإعداد. |
| routePrefix | api | بادئة المسار التي تنطبق على كافة المسارات. استخدم سلسلة فارغة ليزيل البادئة الافتراضية. |
id
المعرف الفريد لمضيف الوظيفة. يمكن أن يكون معرّف فريد بأحرف صغيرة مع إزالة الشرطات. مطلوب عند التشغيل محليًا. عند التشغيل في Azure، نوصي بعدم تعيين قيمة معرف. يتم إنشاء معرف تلقائيًا في Azure عند حذف id.
إذا كنت تشارك حساب تخزين عبر تطبيقات دوال متعددة، فتأكد من أن كل تطبيق دالة له id مختلف. يمكنك حذف خاصية id أو تعيين id لكل تطبيق دالة على قيمة مختلفة. يستخدم مشغل المؤقت قفل تخزين للتأكد من وجود مثيل مؤقت واحد فقط عندما ينتقل تطبيق الوظائف إلى مثيلات متعددة. إذا كان تطبيقا وظائف يشتركان في نفس الشيء id ويستخدم كل منهما مشغل مؤقت، يتم تشغيل مؤقت واحد فقط.
{
"id": "9f4ea53c5136457d883d685e57164f08"
}
logger
يتحكم في تصفية السجلات المكتوبة بواسطة كائن ILogger أو بواسطة context.log.
{
"logger": {
"categoryFilter": {
"defaultLevel": "Information",
"categoryLevels": {
"Host": "Error",
"Function": "Error",
"Host.Aggregator": "Information"
}
}
}
}
| Property | Default | Description |
|---|---|---|
| categoryFilter | n/a | يحدد التصفية حسب الفئة |
| defaultLevel | Information | لأي فئات غير محددة في صفيف categoryLevels، إرسال سجلات في هذا المستوى وما فوق إلى Application Insights. |
| categoryLevels | n/a | صفيف من الفئات التي تحدد مستوى السجل الأدنى لإرسالها إلى Application Insights لكل فئة. الفئة المحددة هنا تتحكم في جميع الفئات التي تبدأ بنفس القيمة، والقيم الأطول لها الأسبقية. في نموذج host.json الملف السابق ، تسجل جميع الفئات التي تبدأ ب "Host.Aggregator" على Information المستوى. جميع الفئات الأخرى التي تبدأ بـ "Host"، مثل "Host.Executor"، سجل الدخول عند المستوى Error. |
queues
إعدادات التكوين لـ مشغلات قائمة انتظار التخزين والروابط.
{
"queues": {
"maxPollingInterval": 2000,
"visibilityTimeout" : "00:00:30",
"batchSize": 16,
"maxDequeueCount": 5,
"newBatchThreshold": 8
}
}
| Property | Default | Description |
|---|---|---|
| maxPollingInterval | 60000 | الفاصل الزمني الأقصى بالمللي ثانية بين استطلاعات قائمة الانتظار. |
| visibilityTimeout | 0 | الفاصل الزمني بين إعادة المحاولة عند فشل معالجة الرسالة. |
| batchSize | 16 | عدد رسائل قائمة الانتظار التي يقوم وقت تشغيل الدالات باستردادها في وقت واحد، ومعالجتها بالتوازي. عندما يصل الرقم الذي تتم معالجته إلى newBatchThreshold، يحصل وقت التشغيل على دفعة أخرى ويبدأ معالجة هذه الرسائل. لذا فإن الحد الأقصى لعدد الرسائل المتزامنة التي تتم معالجتها لكل وظيفة هو batchSize زائد newBatchThreshold. ينطبق هذا الحد بشكل منفصل على كل دالة تُشغلها قائمة انتظار. إذا كنت تريد تجنب التنفيذ الموازي للرسائل المتلقاة في قائمة انتظار واحدة، يمكنك تعيين batchSize إلى 1. مع ذلك، يلغي هذا الإعداد التزامن فقط طالما يعمل تطبيق الدالة على جهاز ظاهري واحد (VM). إذا توسع تطبيق الوظيفة لأكثر من جهاز ظاهري، يمكن لكل جهاز ظاهري أن يُشغل مثيل واحد من كل وظيفة تُشغلها قائمة الانتظار.الحد الأقصى لـ batchSize هو 32. |
| maxDequeueCount | 5 | عدد المرات التي يجب فيها محاولة معالجة إحدى الرسائل قبل نقلها إلى قائمة انتظار الإزالة. |
| newBatchThreshold | batchSize/2 | كلما نقص عدد الرسائل التي تتم معالجتها بشكل متزامن وصولاً لهذا الرقم، يقوم وقت التشغيل باسترداد دفعة أخرى. |
SendGrid
إعداد التكوين لربط إخراج SendGrind
{
"sendGrid": {
"from": "Contoso Group <admin@contoso.com>"
}
}
| Property | Default | Description |
|---|---|---|
| from | n/a | عنوان البريد الإلكتروني للمرسل عبر جميع الوظائف. |
serviceBus
إعدادات التكوين لمشغلات ناقل الخدمة والروابط.
{
"serviceBus": {
"maxConcurrentCalls": 16,
"prefetchCount": 100,
"autoRenewTimeout": "00:05:00",
"autoComplete": true
}
}
| Property | Default | Description |
|---|---|---|
| maxConcurrentCalls | 16 | الحد الأقصى لعدد المكالمات المتزامنة لرد الاتصال التي يجب أن تبدأها مضخة الرسائل. بشكل افتراضي، يعالج وقت تشغيل الوظائف رسائل متعددة في نفس الوقت. لتوجيه وقت التشغيل لمعالجة قائمة انتظار واحدة فقط أو رسالة موضوع في المرة، عيّن maxConcurrentCalls على 1. |
| prefetchCount | n/a | PrefetchCount الافتراضي الذي سيتم استخدامه من قبل ServiceBusReceiver الأساسي. |
| autoRenewTimeout | 00:05:00 | الحد الأقصى للمدة التي سيتم خلالها تجديد قفل الرسالة تلقائيًا. |
| autoComplete | true | عندما يكون صحيحا، يكمل المشغل معالجة الرسائل تلقائيا عند التنفيذ الناجح للعملية. عند خطأ، تتحمل الدالة مسؤولية إكمال الرسالة قبل العودة. |
singleton
إعدادات التكوين لسلوك تأمين Singleton. لمزيد من المعلومات، اطلع على مشكلة GitHub حول دعم singleton.
{
"singleton": {
"lockPeriod": "00:00:15",
"listenerLockPeriod": "00:01:00",
"listenerLockRecoveryPollingInterval": "00:01:00",
"lockAcquisitionTimeout": "00:01:00",
"lockAcquisitionPollingInterval": "00:00:03"
}
}
| Property | Default | Description |
|---|---|---|
| lockPeriod | 00:00:15 | الفترة التي يتم أخذ تأمينات مستوى الوظيفة لها. تجديد التأمين التلقائي. |
| listenerLockPeriod | 00:01:00 | الفترة التي يتم أخذ تأمين المستمع. |
| listenerLockRecoveryPollingInterval | 00:01:00 | الفاصل الزمني المستخدم لاسترداد تأمين المستمع إذا لم يكن من الممكن الحصول على تأمين المستمع عند بدء التشغيل. |
| lockAcquisitionTimeout | 00:01:00 | الحد الأقصى لمقدار الوقت الذي يحاول فيه وقت التشغيل الحصول على تأمين. |
| lockAcquisitionPollingInterval | n/a | الفاصل الزمني بين محاولات الحصول على التأمين. |
tracing
الإصدار 1.x
إعدادات التكوين للسجلات التي تُنشئها باستخدام كائن TraceWriter. لمعرفة المزيد، راجع [C# Logging].
{
"tracing": {
"consoleLevel": "verbose",
"fileLoggingMode": "debugOnly"
}
}
| Property | Default | Description |
|---|---|---|
| consoleLevel | info | مستوى التتبع لتسجيل وحدة التحكم. الخيارات هي: off وerror وwarning وinfo وverbose. |
| fileLoggingMode | debugOnly | مستوى التتبع لتسجيل الملف. الخيارات هي never وalways وdebugOnly. |
watchDirectories
مجموعة من أدلة التعليمات البرمجية المشتركة التي يجب مراقبتها من أجل التغييرات. ضمان أنه عند تغيير التعليمات البرمجية في هذه الدلائل، سيتم التقاط التغييرات بواسطة وظائفك.
{
"watchDirectories": [ "Shared" ]
}