مرجع host.json لإصدار Azure Functions 2.x والإصدارات الأحدث

يحتوي ملف بيانات التعريف host.json على خيارات التكوين التي تؤثر على جميع الوظائف في مثيل تطبيق الوظيفة. تسرد هذه المقالة الإعدادات المتوفرة بدءاً من الإصدار 2.x من وقت تشغيل Azure Functions.

إشعار

تنطبق هذه المقالة على Azure Functions 2.x والإصدارات الأحدث. للحصول على مرجع لـ host.json في دالات 1.x، راجع مرجع host.json لوظائفAzure 1.x.

تتم إدارة خيارات تكوين تطبيقات الوظائف الأخرى بناءً على مكان تشغيل تطبيق الوظيفة:

يتم تطبيق التكوينات في host.json المتعلقة بالروابط بالتساوي على كل وظيفة في تطبيق الوظيفة.

يمكنك أيضاً تجاوز أو تطبيق الإعدادات لكل بيئة باستخدام إعدادات التطبيق.

نموذج ملف host.json

يحتوي نموذج ملف host.json للإصدار 2.x+ على جميع الخيارات الممكنة المحددة (باستثناء الاستخدام الداخلي لأي منها فقط).

{
    "version": "2.0",
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    },
    "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        },
    "extensions": {
        "blobs": {},
        "cosmosDb": {},
        "durableTask": {},
        "eventHubs": {},
        "http": {},
        "queues": {},
        "sendGrid": {},
        "serviceBus": {}
    },
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    },
    "functions": [ "QueueProcessor", "GitHubWebHook" ],
    "functionTimeout": "00:05:00",
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    },
    "logging": {
        "fileLoggingMode": "debugOnly",
        "logLevel": {
          "Function.MyFunction": "Information",
          "default": "None"
        },
        "applicationInsights": {
            "samplingSettings": {
              "isEnabled": true,
              "maxTelemetryItemsPerSecond" : 20,
              "evaluationInterval": "01:00:00",
              "initialSamplingPercentage": 100.0, 
              "samplingPercentageIncreaseTimeout" : "00:00:01",
              "samplingPercentageDecreaseTimeout" : "00:00:01",
              "minSamplingPercentage": 0.1,
              "maxSamplingPercentage": 100.0,
              "movingAverageRatio": 1.0,
              "excludedTypes" : "Dependency;Event",
              "includedTypes" : "PageView;Trace"
            },
            "dependencyTrackingOptions": {
                "enableSqlCommandTextInstrumentation": true
            },
            "enableLiveMetrics": true,
            "enableDependencyTracking": true,
            "enablePerformanceCountersCollection": true,            
            "httpAutoCollectionOptions": {
                "enableHttpTriggerExtendedInfoCollection": true,
                "enableW3CDistributedTracing": true,
                "enableResponseHeaderInjection": true
            },
            "snapshotConfiguration": {
                "agentEndpoint": null,
                "captureSnapshotMemoryWeight": 0.5,
                "failedRequestLimit": 3,
                "handleUntrackedExceptions": true,
                "isEnabled": true,
                "isEnabledInDeveloperMode": false,
                "isEnabledWhenProfiling": true,
                "isExceptionSnappointsEnabled": false,
                "isLowPrioritySnapshotUploader": true,
                "maximumCollectionPlanSize": 50,
                "maximumSnapshotsRequired": 3,
                "problemCounterResetInterval": "24:00:00",
                "provideAnonymousTelemetry": true,
                "reconnectInterval": "00:15:00",
                "shadowCopyFolder": null,
                "shareUploaderProcess": true,
                "snapshotInLowPriorityThread": true,
                "snapshotsPerDayLimit": 30,
                "snapshotsPerTenMinutesLimit": 1,
                "tempFolder": null,
                "thresholdForSnapshotting": 1,
                "uploaderProxy": null
            }
        }
    },
    "managedDependency": {
        "enabled": true
    },
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    },
    "telemetryMode": "OpenTelemetry",
    "watchDirectories": [ "Shared", "Test" ],
    "watchFiles": [ "myFile.txt" ]
}

تشرح الأقسام التالية من هذه المقالة كل خاصية من المستوى الأعلى. جميعها اختيارية ما لم يذكر خلاف ذلك.

مجمع

يحدد عدد استدعاءات الوظائف التي يتم تجميعها عند حساب قياسات Application Insights.

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    }
}
الخاصية Default ‏‏الوصف
batchSize 1000 أقصى عدد من الطلبات للتجميع.
flushTimeout 00:00:30 أقصى فترة زمنية للتجميع.

يتم تجميع استدعاءات الوظائف عند الوصول إلى أول حدين.

applicationInsights

هذا الإعداد تابع للتسجيل.

يتحكم في خيارات Application Insights، بما في ذلك خيارات أخذ العينات.

للحصول على بنية JSON الكاملة، اطلع على المثال السابق لملف host.json.

إشعار

قد يؤدي أخذ عينات السجل إلى عدم ظهور بعض عمليات التنفيذ في جزء مراقبة Application Insights. لتجنب أخذ عينات السجل، أضف excludedTypes: "Request" إلى القيمة samplingSettings.

الخاصية Default ‏‏الوصف
samplingSettings غير متوفر اطلع على applicationInsights.samplingSettings.
dependencyTrackingOptions غير متوفر راجع applicationInsights.dependencyTrackingOptions.
enableLiveMetrics صحيح تمكين مجموعة المقاييس المباشرة.
enableDependencyTracking صحيح تمكين تعقب التبعية.
enablePerformanceCountersCollection صحيح تمكين مجموعة عدادات أداء Kudu.
liveMetricsInitializationDelay 00:00:15 للاستخدام الداخلي فقط.
httpAutoCollectionOptions غير متوفر اطلع على applicationInsights.httpAutoCollectionOptions.
snapshotConfiguration غير متوفر اطلع على applicationInsights.snapshotConfiguration.

applicationInsights.samplingSettings

لمزيد من المعلومات حول هذه الإعدادات، اطلع على أخذ العينات في Application Insights.

الخاصية Default ‏‏الوصف
isEnabled صحيح تمكين أو تعطيل أخذ العينات.
maxTelemetryItemsPerSecond 20 العدد المستهدف لعناصر التتبع التي يتم تسجيلها في الثانية على كل مضيف خادم. إذا كان تطبيقك يعمل على العديد من الأجهزة المضيفة، فقم بتقليل هذه القيمة لتظل ضمن المعدل الإجمالي المستهدف لنقل البيانات.
evaluationInterval 01:00:00 الفاصل الزمني الذي يتم عنده إعادة تقييم المعدل الحالي لبيانات تتبع الاستخدام. يتم إجراء التقييم كمتوسط متغير. وقد ترغب في تقصير هذا الفاصل الزمني إذا كانت بيانات تتبع الاستخدام عرضة لاندفاعات مفاجئة.
initialSamplingPercentage 100.0 النسبة المئوية الأولية لأخذ العينات المطبقة في بداية عملية أخذ العينات لتغيير النسبة ديناميكياً. لا تقلل من القيمة أثناء تصحيح الأخطاء.
samplingPercentageIncreaseTimeout 00:00:01 عندما تتغير قيمة النسبة المئوية لأخذ العينات، تحدد هذه الخاصية المدة التي يُسمح فيها بعد ذلك لتطبيق Application Insights برفع النسبة المئوية لأخذ العينات مرة أخرى لالتقاط المزيد من البيانات.
samplingPercentageDecreaseTimeout 00:00:01 عندما تتغير قيمة النسبة المئوية لأخذ العينات، تحدد هذه الخاصية المدة التي يُسمح فيها لتطبيق Application Insights بعد ذلك بخفض نسبة العينات مرة أخرى لالتقاط بيانات أقل.
minSamplingPercentage 0.1 نظراً إلى اختلاف نسبة أخذ العينات، تحدد هذه الخاصية الحد الأدنى المسموح به لنسبة أخذ العينات.
maxSamplingPercentage 100.0 نظراً إلى اختلاف نسبة أخذ العينات، تحدد هذه الخاصية الحد الأقصى المسموح به لنسبة أخذ العينات.
movingAverageRatio 1.0 في حساب المتوسط المتغير، يخصص الوزن لأحدث قيمة. استخدم قيمة تساوي أو أقل من 1. القيم الأصغر تجعل الخوارزمية أقل تفاعلاً مع التغييرات المفاجئة.
excludedTypes قيمة فارغة قائمة محددة بفاصلة منقوطة للأنواع التي لا تريد أخذ عينات منها. الأنواع التي تم التعرف عليها هي: Dependency وEvent وException وPageView وRequest وTrace. يتم إرسال جميع مثيلات الأنواع المحددة؛ يتم أخذ عينات الأنواع التي لم يتم تحديدها.
includedTypes قيمة فارغة قائمة محددة بفاصلة منقوطة للأنواع التي تريد أخذ عينات منها؛ قائمة فارغة تشير إلى جميع الأنواع. النوع المدرج في excludedTypes أنواع التجاوز المدرجة هنا. الأنواع التي تم التعرف عليها هي: Dependency وEvent وException وPageView وRequest وTrace. يتم أخذ عينات مثيلات الأنواع المحددة؛ يتم إرسال الأنواع غير المحددة أو المضمنة بدون أخذ العينات.

applicationInsights.httpAutoCollectionOptions

الخاصية Default ‏‏الوصف
enableHttpTriggerExtendedInfoCollection صحيح تمكين أو تعطيل معلومات طلب HTTP الموسعة لمشغلات HTTP: عناوين ارتباط الطلبات الواردة، ودعم مفاتيح الأجهزة المتعددة، وأسلوب HTTP، والمسار، والاستجابة.
enableW3CDistributedTracing صحيح تمكين أو تعطيل دعم بروتوكول التتبع الموزع W3C (وتشغيل مخطط الارتباط القديم). يتم التمكين افتراضياً إذا كان enableHttpTriggerExtendedInfoCollection صواب. إذا كان enableHttpTriggerExtendedInfoCollection خاطئاً، فإن هذه العلامة تنطبق على الطلبات الصادرة فقط، وليس الطلبات الواردة.
enableResponseHeaderInjection صحيح تمكين أو تعطيل حقن عناوين الارتباط متعدد المكونات في الاستجابات. يسمح تمكين الحقن لـ Application Insights بإنشاء خريطة تطبيق عند استخدام العديد من مفاتيح الأجهزة. يتم التمكين افتراضياً إذا كان enableHttpTriggerExtendedInfoCollection صواب. لا ينطبق هذا الإعداد إذا كان enableHttpTriggerExtendedInfoCollection خاطئاً.

applicationInsights.dependencyTrackingOptions

الخاصية Default ‏‏الوصف
تمكينSqlCommandTextInstrumentation true تمكين مجموعة النص الكامل من استعلامات SQL، والتي يتم تعطيلها بشكل افتراضي. لمزيد من المعلومات حول جمع نص استعلام SQL، راجع تعقب SQL المتقدم للحصول على استعلام SQL الكامل.

applicationInsights.snapshotConfiguration

لمزيد من المعلومات حول اللقطات، اطلع على تصحيح أخطاء لقطات الاستثناءات في تطبيقات .NET واستكشاف المشكلات وإصلاحها من خلال تمكين Application Insights Snapshot Debugger أو عرض اللقطات.

الخاصية Default ‏‏الوصف
agentEndpoint قيمة فارغة نقطة النهاية المستخدمة للاتصال بخدمة Application Insights Snapshot Debugger. إذا كانت القيمة خالية، فسيتم استخدام نقطة نهاية افتراضية.
captureSnapshotMemoryWeight 0.5 الوزن المعطى لحجم ذاكرة العملية الحالية عند التحقق مما إذا كانت هناك ذاكرة كافية لأخذ لقطة أم لا. القيمة المتوقعة أكبر من 0 كسر صحيح (0 <CaptureSnapshotMemoryWeight <1).
failedRequestLimit 3 الحد الأقصى لعدد الطلبات الفاشلة لطلب لقطات قبل تعطيل معالج التتبع.
handleUntrackedExceptions صحيح تمكين أو تعطيل تعقب الاستثناءات التي لا يتم تعقبها بواسطة تتبع Application Insights.
isEnabled صحيح تمكين مجموعة اللقطات أو تعطيلها
isEnabledInDeveloperMode true تمكين أو تعطيل مجموعة اللقطات ممكنة في وضع المطور.
isEnabledWhenProfiling صحيح تمكين أو تعطيل إنشاء اللقطة حتى إذا كان Application Insights Profiler يقوم بتجميع جلسة تشكيل جانبي مفصلة.
isExceptionSnappointsEnabled true تمكين تصفية الاستثناءات أو تعطيلها.
isLowPrioritySnapshotUploader صحيح تحديد ما إذا كان يتم تشغيل عملية SnapshotUploader عند أولوية أقل من المعتاد.
maximumCollectionPlanSize 50 الحد الأقصى لعدد المشاكل التي يمكننا تعقبها في أي وقت في نطاق من واحد إلى 9999.
maximumSnapshotsRequired 3 الحد الأقصى لعدد اللقطات التي تم تجميعها لمشكلة واحدة، في نطاق من واحد إلى 999. قد يُنظر إلى المشكلة على أنها عبارة اعتراضية فردي في تطبيقك. بمجرد وصول عدد اللقطات التي تم جمعها لمشكلة ما إلى هذه القيمة، لن يتم جمع المزيد من اللقطات لهذه المشكلة حتى تتم إعادة تعيين عدادات المشكلة (اطلع على problemCounterResetInterval) والوصول إلى الحد thresholdForSnapshotting مرة أخرى.
problemCounterResetInterval 24:00:00 عدد المرات التي يتم فيها إعادة تعيين عدادات المشكلة في نطاق من دقيقة واحدة إلى سبعة أيام. عند الوصول إلى هذا الفاصل الزمني، تتم إعادة تعيين جميع أعداد المشكلات إلى الصفر. تظل المشكلات الحالية التي وصلت بالفعل إلى حد إجراء اللقطات، ولكنها لم تنشئ عدد اللقطات في maximumSnapshotsRequired، نشطة.
provideAnonymousTelemetry صحيح تحديد ما إذا كان سيتم إرسال الاستخدام المجهول وتتبع الأخطاء إلى Microsoft. يمكن استخدام هذا التتبع إذا اتصلت بـ Microsoft للمساعدة في استكشاف مشكلات Snapshot Debugger وإصلاحه. كما أنها تستخدم لمراقبة أنماط الاستخدام.
reconnectInterval 00:15:00 عدد المرات التي نعيد الاتصال بنقطة نهاية برنامج Snapshot Debugger. النطاق المسموح به هو من دقيقة واحدة إلى يوم واحد.
shadowCopyFolder قيمة فارغة تحديد المجلد الذي سيتم استخدامه لنسخ البرامج الثنائية تطابقياً. في حالة عدم التعيين، تتم تجربة المجلدات المحددة بواسطة متغيرات البيئة التالية بالترتيب: Fabric_Folder_App_Temp، LOCALAPPDATA، APPDATA، TEMP.
shareUploaderProcess صحيح إذا كان صواب، فلن يقوم سوى مثيل واحد من SnapshotUploader بجمع وتحميل اللقطات لتطبيقات متعددة تشترك في InstrumentationKey. إذا تم التعيين على خاطئ، فسيكون SnapshotUploader فريداً لكل مجموعة (ProcessName، InstrumentationKey).
snapshotInLowPriorityThread صحيح تحديد ما إذا كان سيتم معالجة اللقطات في سلسلة ذات أولوية منخفضة للإدخال والإخراج أم لا. يعد إنشاء لقطة عملية سريعة، ولكن من أجل تحميل اللقطة إلى خدمة Snapshot Debugger، يجب أولاً كتابتها على القرص كـ minidump. ويحدث ذلك في عملية SnapshotUploader. يستخدم تعيين هذه القيمة على قيمة صواب إدخال وإخراج ذات أولوية منخفضة لكتابة minidump، والتي لن تتنافس مع تطبيقك للحصول على الموارد. يؤدي تعيين هذه القيمة إلى خاطئة إلى تسريع إنشاء minidump على حساب إبطاء تطبيقك.
snapshotsPerDayLimit 30 الحد الأقصى لعدد اللقطات المسموح بها في يوم واحد (24 ساعة). يتم فرض هذا الحد أيضاً على جانب خدمة Application Insights. يقتصر معدل التحميلات على 50 يومياً لكل تطبيق (أي لكل مفتاح جهاز). تساعد هذه القيمة على منع إنشاء لقطات إضافية سيتم رفضها في النهاية أثناء التحميل. تؤدي القيمة الصفرية إلى إزالة الحد بالكامل، وهو الأمر غير المستحسن.
snapshotsPerTenMinutesLimit 1 الحد الأقصى لعدد اللقطات المسموح بها في 10 دقائق. على الرغم من عدم وجود حد أعلى لهذه القيمة، احذر من زيادتها على أحمال عمل الإنتاج لأنها قد تؤثر على أداء التطبيق الخاص بك. يعد إنشاء لقطة أمراً سريعاً، ولكن إنشاء minidump من اللقطة وتحميله إلى خدمة Snapshot Debugger هي عملية أبطأ بكثير من شأنها أن تتنافس مع تطبيقك للحصول على الموارد (كل من وحدة المعالجة المركزية والإدخال/الإخراج).
tempFolder قيمة فارغة تحديد المجلد لكتابة ملفات سجل minidump وuploader. إذا لم يتم التعيين، فسيتم استخدام %TEMP%\Dumps.
thresholdForSnapshotting 1 كم مرة يحتاج Application Insights إلى رؤية استثناء قبل أن يطلب لقطات.
uploaderProxy قيمة فارغة تجاوز الخادم الوكيل المستخدم في عملية Snapshot Uploader. قد تحتاج إلى استخدام هذا الإعداد إذا كان تطبيقك يتصل بالإنترنت عبر خادم وكيل. يعمل Snapshot Collector داخل عملية التطبيق وسيستخدم نفس إعدادات الوكيل. ولكن يتم تشغيل Snapshot Uploader كعملية منفصلة وقد تحتاج إلى تكوين الخادم الوكيل يدوياً. إذا كانت هذه القيمة فارغة، فسيحاول Snapshot Collector الكشف التلقائي عن عنوان الوكيل عن طريق فحص System.Net.WebRequest.DefaultWebProxy القيمة وتمريرها إلى Snapshot Uploader. إذا لم تكن هذه القيمة خالية، فلن يتم استخدام الاكتشاف التلقائي وسيتم استخدام الخادم الوكيل المحدد هنا في Snapshot Uploader.

blobs

يمكن العثور على إعدادات التكوين في مشغلات الكائنات الثنائية كبيرة الحجم للتخزين وعمليات الربط.

console

هذا الإعداد تابع للتسجيل. يتحكم في تسجيل وحدة التحكم عندما لا يكون في وضع تصحيح الأخطاء.

{
    "logging": {
    ...
        "console": {
          "isEnabled": false,
          "DisableColors": true
        },
    ...
    }
}
الخاصية Default ‏‏الوصف
DisableColors true منع تنسيق السجل في سجلات الحاوية على Linux. اضبط على true إذا كنت ترى أحرف تحكم ANSI غير مرغوب فيها في سجلات الحاوية عند التشغيل على Linux.
isEnabled true تمكين أو تعطيل تسجيل وحدة التحكم.

Azure Cosmos DB

يمكن العثور على إعدادات التكوين في مشغلات وروابط Azure Cosmos DB.

customHandler

إعدادات التكوين لمعالج مخصص. لمزيد من المعلومات، اطلع على معالجات Azure Functions المخصصة.

"customHandler": {
  "description": {
    "defaultExecutablePath": "server",
    "workingDirectory": "handler",
    "arguments": [ "--port", "%FUNCTIONS_CUSTOMHANDLER_PORT%" ]
  },
  "enableForwardingHttpRequest": false
}
الخاصية Default ‏‏الوصف
defaultExecutablePath غير متوفر الملف التنفيذي لبدء عملية معالج مخصص. إنه إعداد مطلوب عند استخدام معالجات مخصصة وقيمته نسبة إلى جذر تطبيق الوظائف.
عمل إخراجي جذر تطبيق الوظيفة دليل العمل لبدء عملية المعالج المخصص. إنه إعداد اختياري وقيمته نسبة إلى جذر تطبيق الوظائف.
الحجج غير متوفر صفيف من وسيطات سطر الأوامر لتمريرها إلى عملية المعالج المخصص.
enableForwardingHttpRequest true في حالة التعيين، تتم إعادة توجيه جميع الوظائف التي تتكون من مشغل HTTP ومخرجات HTTP فقط إلى طلب HTTP الأصلي بدلاً من المعالج المخصص بيانات الطلب الأساسية.

durableTask

يمكن العثور على إعداد التكوين في روابط للوظائف الدائمة.

التزامن

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

    { 
        "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        } 
    } 
الخاصية Default ‏‏الوصف
DynamicConcurrencyEnabled true تمكين سلوكيات التزامن الديناميكية لجميع المشغلات التي تدعمها هذه الميزة، والتي تكون متوقفة عن التشغيل بشكل افتراضي.
snapshotPersistenceEnabled صحيح تستمر قيم التزامن المستفادة بشكل دوري في التخزين بحيث تبدأ المثيلات الجديدة من تلك القيم بدلا من البدء من 1 والاضطرار إلى إعادة التعلم.

eventHub

يمكن العثور على إعدادات التكوين في مشغلات مركز الأحداث وعمليات الربط.

المُلحقات

الخاصية التي تعرض عنصراً يحتوي على جميع الإعدادات الخاصة بالربط، مثل http وeventHub.

extensionBundle

تتيح لك حزم الملحقات إضافة مجموعة متوافقة من ملحقات ربط الوظائف إلى تطبيق الوظيفة. لتتعرف على المزيد، اطلع على حزم الملحقات للتنمية المحلية.

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

الخصائص التالية متوفرة في extensionBundle:

الخاصية ‏‏الوصف
id مساحة الاسم لحزم ملحقات Microsoft Azure Functions.
version نطاق إصدار الحزمة المراد تثبيتها. يقوم وقت تشغيل الوظائف دائماً باختيار الحد الأقصى للإصدار المسموح به المحدد بواسطة نطاق الإصدار أو الفاصل الزمني. على سبيل المثال، version يسمح نطاق القيمة لكافة [4.0.0, 5.0.0) إصدارات المجموعة من 4.0.0 حتى 5.0.0 ولكن ليس بما في ذلك. لمزيد من المعلومات، راجع تدوين الفاصل لتحديد نطاقات الإصدار .

وظائف

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

{
    "functions": [ "QueueProcessor", "GitHubWebHook" ]
}

functionTimeout

يشير إلى مدة المهلة لجميع عمليات تنفيذ الوظائف. يتبع تنسيق السلسلة الزمنية.

نوع الخطة الافتراضي (الحد الأدنى) الحد الأقصى (الحد الأدنى)
الاستهلاك‬ 5 10
الخطة المميزة 1 30 -1 (غير مقيد) 2
(App Service) مخصصة 30 -1 (غير مقيد) 2

1 يتم ضمان تنفيذ الخطة المميزة لمدة 60 دقيقة فقط، ولكن من الناحية التقنية غير مقيد.
2 تشير قيمة -1 إلى تنفيذ غير محدود، ولكن يوصى بالحفاظ على حد أعلى ثابت.

{
    "functionTimeout": "00:05:00"
}

healthMonitor

إعدادات التكوين لمراقبة صحة المضيف.

{
    "healthMonitor": {
        "enabled": true,
        "healthCheckInterval": "00:00:10",
        "healthCheckWindow": "00:02:00",
        "healthCheckThreshold": 6,
        "counterThreshold": 0.80
    }
}
الخاصية Default ‏‏الوصف
مُمكَّن صحيح تحديد ما إذا كانت الميزة ممكّنة أم لا.
healthCheckInterval 10 ثوان الفاصل الزمني بين الفحوصات الدورية لصحة الخلفية.
healthCheckWindow 2 دقيقة وقت زمني منزلق يُستخدم مع الإعداد healthCheckThreshold.
healthCheckThreshold 6 الحد الأقصى لعدد المرات التي يمكن أن يفشل فيها فحص الحالة قبل بدء عملية حذف المضيف.
counterThreshold 0.80 الحد الأدنى الذي سيتم اعتبار حالة عداد الأداء عنده غير صحية.

http

يمكن العثور على إعدادات التكوين في مشغلات http وعمليات الربط.

التسجيل

التحكم في سلوكيات التسجيل لتطبيق الوظيفة، بما في ذلك Application Insights.

"logging": {
    "fileLoggingMode": "debugOnly",
    "logLevel": {
      "Function.MyFunction": "Information",
      "default": "None"
    },
    "console": {
        ...
    },
    "applicationInsights": {
        ...
    }
}
الخاصية Default ‏‏الوصف
fileLoggingMode debugOnly تحديد سلوك تسجيل الملفات عند التشغيل في Azure. الخيارات هي neverو alwaysو.debugOnly لا يتم استخدام هذا الإعداد عند التشغيل محليا. عندما يكون ذلك ممكنا، يجب عليك استخدام Application Insights عند تصحيح أخطاء وظائفك في Azure. يؤثر الاستخدام always سلبا على سلوك البدء البارد لتطبيقك ومعدل نقل البيانات. ينشئ الإعداد الافتراضي debugOnly ملفات السجل عند تصحيح الأخطاء باستخدام مدخل Microsoft Azure.
logLevel غير متوفر العنصر الذي يحدد تصفية فئة السجل للوظائف في التطبيق. يتيح لك هذا الإعداد تصفية التسجيل لوظائف محددة. لمزيد من المعلومات، اطلع على تكوين مستويات السجل.
console غير متوفر إعداد التسجيل في وحدة التحكم.
applicationInsights غير متوفر إعداد applicationInsights.

managedDependency

التبعية المُدارة هي ميزة مدعمة حالياً فقط من خلال الوظائف المستندة إلى PowerShell. وتتيح إدارة التبعيات تلقائياً بواسطة الخدمة. عندما يتم تعيين الخاصية enabled على true، تتم معالجة ملف requirements.psd1. يتم تحديث التبعيات عند إصدار أي إصدارات ثانوية. لمزيد من المعلومات، اطلع على التبعية المُدارة في مقالة PowerShell.

{
    "managedDependency": {
        "enabled": true
    }
}

صفوف

يمكن العثور على إعدادات التكوين في مشغلات قائمة انتظار التخزين وعمليات الربط.

sendGrid

يمكن العثور على إعدادات التكوين في مشغلات SendGrid وعمليات الربط.

serviceBus

يمكن العثور على إعدادات التكوين في مشغلات ناقل الخدمة وعمليات الربط.

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"
    }
}
الخاصية Default ‏‏الوصف
lockPeriod 00:00:15 الفترة التي يتم أخذ تأمينات مستوى الوظيفة لها. تجديد التأمين التلقائي.
listenerLockPeriod 00:01:00 الفترة التي يتم أخذ تأمين المستمع.
listenerLockRecoveryPollingInterval 00:01:00 الفاصل الزمني المستخدم لاسترداد تأمين المستمع إذا لم يكن من الممكن الحصول على تأمين المستمع عند بدء التشغيل.
lockAcquisitionTimeout 00:01:00 الحد الأقصى لمقدار الوقت الذي سيحاول فيه وقت التشغيل الحصول على تأمين.
lockAcquisitionPollingInterval غير متوفر الفاصل الزمني بين محاولات الحصول على التأمين.

نموذج بيانات تتبع الاستخدام

هذه الميزة قيد المعاينة حاليا.

يستخدم لتمكين إخراج السجلات والتتبعات بتنسيق إخراج OpenTelemetry إلى نقطة نهاية واحدة أو أكثر تدعم OpenTelemetry. عند تعيين هذا الإعداد إلى OpenTelemetry، يتم استخدام إخراج OpenTelemetry. بشكل افتراضي بدون هذا الإعداد، يتم إرسال جميع السجلات والتتبعات والأحداث إلى Application Insights باستخدام المخرجات القياسية. لمزيد من المعلومات، راجع استخدام OpenTelemetry مع Azure Functions.

إصدار

تشير هذه القيمة إلى إصدار المخطط host.json. سلسلة الإصدار "version": "2.0" مطلوبة لتطبيق وظيفة تستهدف وقت تشغيل v2 أو إصدار أحدث. لا توجد تغييرات مخطط host.json بين إصدارات v2 و v3.

watchDirectories

مجموعة من أدلة التعليمات البرمجية المشتركة التي يجب مراقبتها من أجل التغييرات. ضمان أنه عند تغيير التعليمات البرمجية في هذه الدلائل، سيتم التقاط التغييرات بواسطة وظائفك.

{
    "watchDirectories": [ "Shared" ]
}

watchFiles

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

{
    "watchFiles": [ "myFile.txt" ]
}

تجاوز قيم host.json

قد توجد مثيلات ترغب فيها في تكوين أو تعديل إعدادات معينة في ملف host.json لبيئة معينة، دون تغيير ملف host.json نفسه. يمكنك تجاوز قيم host.json معينة عن طريق إنشاء قيمة مقابلة كإعداد للتطبيق. عندما يعثر وقت التشغيل على إعداد تطبيق بالتنسيق AzureFunctionsJobHost__path__to__setting، فإنه يتجاوز إعداد host.json المقابل الموجود في path.to.setting في JSON. عند التعبير عنها كإعداد تطبيق، يتم استبدال النقطة (.) المستخدمة للإشارة إلى التسلسل الهرمي لـ JSON بشرطة سفلية مزدوجة (__).

على سبيل المثال، لنفترض أنك تريد تعطيل أخذ عينات Application Insight عند التشغيل محلياً. إذا قمت بتغيير ملف host.json المحلي لتعطيل Application Insights، فقد يتم دفع هذا التغيير إلى تطبيق الإنتاج أثناء النشر. تتمثل الطريقة الأكثر أماناً للقيام بذلك في إنشاء إعداد تطبيق مثل "AzureFunctionsJobHost__logging__applicationInsights__samplingSettings__isEnabled":"false" في ملف local.settings.json بدلاً من ذلك. يمكنك الاطلاع على ذلك في ملف local.settings.json التالي، والذي لم يتم نشره:

{
    "IsEncrypted": false,
    "Values": {
        "AzureWebJobsStorage": "{storage-account-connection-string}",
        "FUNCTIONS_WORKER_RUNTIME": "{language-runtime}",
        "AzureFunctionsJobHost__logging__applicationInsights__samplingSettings__isEnabled":"false"
    }
}

يتبع تجاوز إعدادات host.json باستخدام متغيرات البيئة اصطلاحات تسمية ASP.NET Core. عندما تتضمن بنية العنصر صفيفا، يجب التعامل مع فهرس الصفيف الرقمي كاسم عنصر إضافي في هذا المسار. لمزيد من المعلومات، راجع تسمية متغيرات البيئة.

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