مشاركة عبر


مرجع 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"
    }
}
الخاصية الإعداد الافتراضي ‏‏الوصف
حجم الدفعات 1000 أقصى عدد من الطلبات للتجميع.
مهلة المسح 00:00:30 أقصى فترة زمنية للتجميع.

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

applicationInsights

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

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

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

إشعار

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

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

applicationInsights.samplingSettings

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

الخاصية الإعداد الافتراضي ‏‏الوصف
isEnabled صحيح تمكين أو تعطيل أخذ العينات.
maxTelemetryItemsPerSecond 20 العدد المستهدف لعناصر التتبع التي يتم تسجيلها في الثانية على كل مضيف خادم. إذا كان تطبيقك يعمل على العديد من الأجهزة المضيفة، فقم بتقليل هذه القيمة لتظل ضمن المعدل الإجمالي المستهدف لنقل البيانات.
تقييم إنترفال 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. القيم الأصغر تجعل الخوارزمية أقل تفاعلاً مع التغييرات المفاجئة.
أنواع مستبعدة قيمة فارغة قائمة محددة بفاصلة منقوطة للأنواع التي لا تريد أخذ عينات منها. الأنواع التي تم التعرف عليها هي: Dependency وEvent وException وPageView وRequest وTrace. يتم إرسال جميع مثيلات الأنواع المحددة؛ يتم أخذ عينات الأنواع التي لم يتم تحديدها.
أنواع مضمنة قيمة فارغة قائمة محددة بفاصلة منقوطة للأنواع التي تريد أخذ عينات منها؛ قائمة فارغة تشير إلى جميع الأنواع. النوع المدرج في excludedTypes أنواع التجاوز المدرجة هنا. الأنواع التي تم التعرف عليها هي: Dependency وEvent وException وPageView وRequest وTrace. يتم أخذ عينات مثيلات الأنواع المحددة؛ يتم إرسال الأنواع غير المحددة أو المضمنة بدون أخذ العينات.

applicationInsights.httpAutoCollectionOptions

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

applicationInsights.dependencyTrackingOptions

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

تكوين applicationInsights.snapshot

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

الخاصية الإعداد الافتراضي ‏‏الوصف
نقطة نهاية العامل قيمة فارغة نقطة النهاية المستخدمة للاتصال بخدمة Application Insights Snapshot Debugger. إذا كانت القيمة خالية، فسيتم استخدام نقطة نهاية افتراضية.
التقاط الوزن المحفوظ لSnapshot 0.5 الوزن المعطى لحجم ذاكرة العملية الحالية عند التحقق مما إذا كانت هناك ذاكرة كافية لأخذ لقطة أم لا. القيمة المتوقعة أكبر من 0 كسر صحيح (0 <CaptureSnapshotMemoryWeight <1).
failedRequestLimit 3 الحد الأقصى لعدد الطلبات الفاشلة لطلب لقطات قبل تعطيل معالج التتبع.
handleUntrackedExceptions صحيح تمكين أو تعطيل تعقب الاستثناءات التي لا يتم تعقبها بواسطة تتبع Application Insights.
isEnabled صحيح تمكين مجموعة اللقطات أو تعطيلها
isEnabledInDeveloperMode true تمكين أو تعطيل مجموعة اللقطات ممكنة في وضع المطور.
isEnabledWhenProfiling صحيح تمكين أو تعطيل إنشاء اللقطة حتى إذا كان Application Insights Profiler يقوم بتجميع جلسة تشكيل جانبي مفصلة.
isExceptionSnappointsEnabled true تمكين تصفية الاستثناءات أو تعطيلها.
isLowPrioritySnapshotUploader صحيح تحديد ما إذا كان يتم تشغيل عملية SnapshotUploader عند أولوية أقل من المعتاد.
الحد الأقصى لCollectionPlanSize 50 الحد الأقصى لعدد المشاكل التي يمكننا تعقبها في أي وقت في نطاق من واحد إلى 9999.
maximumSnapshotsRequired 3 الحد الأقصى لعدد اللقطات التي تم تجميعها لمشكلة واحدة، في نطاق من واحد إلى 999. قد يُنظر إلى المشكلة على أنها عبارة اعتراضية فردي في تطبيقك. بمجرد وصول عدد اللقطات التي تم جمعها لمشكلة ما إلى هذه القيمة، لن يتم جمع المزيد من اللقطات لهذه المشكلة حتى تتم إعادة تعيين عدادات المشكلة (اطلع على problemCounterResetInterval) والوصول إلى الحد thresholdForSnapshotting مرة أخرى.
problemCounterResetInterval 24:00:00 عدد المرات التي يتم فيها إعادة تعيين عدادات المشكلة في نطاق من دقيقة واحدة إلى سبعة أيام. عند الوصول إلى هذا الفاصل الزمني، تتم إعادة تعيين جميع أعداد المشكلات إلى الصفر. تظل المشكلات الحالية التي وصلت بالفعل إلى حد إجراء اللقطات، ولكنها لم تنشئ عدد اللقطات في maximumSnapshotsRequired، نشطة.
توفير بيانات تتبع الاستخدام صحيح تحديد ما إذا كان سيتم إرسال الاستخدام المجهول وتتبع الأخطاء إلى Microsoft. يمكن استخدام هذا التتبع إذا اتصلت بـ Microsoft للمساعدة في استكشاف مشكلات Snapshot Debugger وإصلاحه. كما أنها تستخدم لمراقبة أنماط الاستخدام.
إعادة توصيل الواجهة 00:15:00 عدد المرات التي نعيد الاتصال بنقطة نهاية برنامج Snapshot Debugger. النطاق المسموح به هو من دقيقة واحدة إلى يوم واحد.
shadowCopyFolder قيمة فارغة تحديد المجلد الذي سيتم استخدامه لنسخ البرامج الثنائية تطابقياً. في حالة عدم التعيين، تتم تجربة المجلدات المحددة بواسطة متغيرات البيئة التالية بالترتيب: Fabric_Folder_App_Temp، LOCALAPPDATA، APPDATA، TEMP.
shareUploaderProcess صحيح إذا كان صواب، فلن يقوم سوى مثيل واحد من SnapshotUploader بجمع وتحميل اللقطات لتطبيقات متعددة تشترك في InstrumentationKey. إذا تم التعيين على خاطئ، فسيكون SnapshotUploader فريداً لكل مجموعة (ProcessName، InstrumentationKey).
لقطةInLowPriorityThread صحيح تحديد ما إذا كان سيتم معالجة اللقطات في سلسلة ذات أولوية منخفضة للإدخال والإخراج أم لا. يعد إنشاء لقطة عملية سريعة، ولكن من أجل تحميل اللقطة إلى خدمة Snapshot Debugger، يجب أولاً كتابتها على القرص كـ minidump. ويحدث ذلك في عملية SnapshotUploader. يستخدم تعيين هذه القيمة على قيمة صواب إدخال وإخراج ذات أولوية منخفضة لكتابة minidump، والتي لن تتنافس مع تطبيقك للحصول على الموارد. يؤدي تعيين هذه القيمة إلى خاطئة إلى تسريع إنشاء minidump على حساب إبطاء تطبيقك.
لقطاتPerDayLimit 30 الحد الأقصى لعدد اللقطات المسموح بها في يوم واحد (24 ساعة). يتم فرض هذا الحد أيضاً على جانب خدمة Application Insights. يقتصر معدل التحميلات على 50 يومياً لكل تطبيق (أي لكل مفتاح جهاز). تساعد هذه القيمة على منع إنشاء لقطات إضافية سيتم رفضها في النهاية أثناء التحميل. تؤدي القيمة الصفرية إلى إزالة الحد بالكامل، وهو الأمر غير المستحسن.
لقطاتPerTenMinutesLimit 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.

النقط

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

عزى

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

{
    "logging": {
    ...
        "console": {
          "isEnabled": false,
          "DisableColors": true
        },
    ...
    }
}
الخاصية الإعداد الافتراضي ‏‏الوصف
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
}
الخاصية الإعداد الافتراضي ‏‏الوصف
defaultExecutablePath غير متوفر الملف التنفيذي لبدء عملية معالج مخصص. إنه إعداد مطلوب عند استخدام معالجات مخصصة وقيمته نسبة إلى جذر تطبيق الوظائف.
عمل إخراجي جذر تطبيق الوظيفة دليل العمل لبدء عملية المعالج المخصص. إنه إعداد اختياري وقيمته نسبة إلى جذر تطبيق الوظائف.
الحجج غير متوفر صفيف من وسيطات سطر الأوامر لتمريرها إلى عملية المعالج المخصص.
enableForwardingHttpRequest true في حالة التعيين، تتم إعادة توجيه جميع الوظائف التي تتكون من مشغل HTTP ومخرجات HTTP فقط إلى طلب HTTP الأصلي بدلاً من المعالج المخصص بيانات الطلب الأساسية.

مهام دائمة

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

التزامن

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

    { 
        "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        } 
    } 
الخاصية الإعداد الافتراضي ‏‏الوصف
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" ]
}

مهلة الدالة

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

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

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

healthMonitor

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

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

HTTP

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

التسجيل

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

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

managedDependency

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

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

صفوف

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

sendGrid

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

serviceBus

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

المفرد

إعدادات التكوين لسلوك تأمين Singleton. لمزيد من المعلومات، اطلع على مشكلة GitHub حول دعم singleton.

{
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    }
}
الخاصية الإعداد الافتراضي ‏‏الوصف
lockPeriod 00:00:15 الفترة التي يتم أخذ تأمينات مستوى الوظيفة لها. تجديد التأمين التلقائي.
وحدة الاستماعLockPeriod 00:01:00 الفترة التي يتم أخذ تأمين المستمع.
وحدة الاستماعLockRecoveryPollingInterval 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": [ "Shared" ]
}

ملفات المراقبة

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

{
    "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. عندما تتضمن بنية العنصر صفيفا، يجب التعامل مع فهرس الصفيف الرقمي كاسم عنصر إضافي في هذا المسار. لمزيد من المعلومات، راجع تسمية متغيرات البيئة.

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