مشاركة عبر


مرجع host.json لـ Azure Functions 1.x

يحتوي ملف بيانات تعريف 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" ]
}

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