Бөлісу құралы:


Справочник по host.json для Функций Azure 2.x и более поздних версий

Файл метаданных host.json содержит параметры конфигурации, которые влияют на все функции в экземпляре приложения-функции. В этой статье перечислены параметры, доступные начиная с версии 2.x среды выполнения Функций Azure.

Примечание.

Эта статья относится к Функциям Azure версий 2.x и более поздних. Чтобы получить дополнительные сведения о файле host.json в Функции 1.x, см. статью host.json reference for Azure Functions 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" ]
}

В следующих разделах этой статьи объясняется каждое свойство верхнего уровня. Все они являются необязательными, если не указано иное.

aggregator

Указывает, сколько вызовов функций обрабатывается при расчете метрик для Application Insights.

{
    "aggregator": {
        "batchSize": 1000,
        "flushTimeout": "00:00:30"
    }
}
Свойство По умолчанию Description
batchSize 1000 Максимальное количество запросов, которое необходимо обработать.
flushTimeout 00:00:30 Максимальный период времени, который необходимо обработать.

Вызовы функций обрабатываются, когда достигается одно из этих двух ограничений.

applicationInsights

Этот параметр является дочерним элементом ведения журнала.

Он управляет параметрами Application Insights, включая параметры выборки.

Полную структуру JSON см. в предыдущем примере файла host.json.

Примечание.

Выборка журналов может привести к тому, что некоторые выполнения не будут отображаться в колонке монитора Application Insights. Чтобы избежать выборки журнала, добавьте excludedTypes: "Request" к значению samplingSettings.

Свойство По умолчанию Description
samplingSettings Н/Д См. applicationInsights.samplingSettings.
dependencyTrackingOptions Н/Д См . раздел applicationInsights.dependencyTrackingOptions.
enableLiveMetrics true Включает сбор метрик в режиме реального времени.
enableDependencyTracking true Включает отслеживание зависимостей.
enablePerformanceCountersCollection true Включает сбор счетчиков производительности Kudu.
liveMetricsInitializationDelay 00:00:15 Только для внутреннего пользования.
httpAutoCollectionOptions Н/Д См. applicationInsights.httpAutoCollectionOptions.
snapshotConfiguration Н/Д См. applicationInsights.snapshotConfiguration.

applicationInsights.samplingSettings

Дополнительные сведения об этих параметрах см. в статье Выборка в Application Insights.

Свойство По умолчанию Description
isEnabled true Включает или отключает выборку.
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 null Разделенный точкой с запятой список типов, которые не должны включаться в выборку. Распознаваемые типы: Dependency, Event, Exception, PageView, Request и Trace. Передаются все экземпляры указанных типов. Типы, которые не указаны, включаются в выборку.
includedTypes null Разделенный точками с запятой список типов, для которых необходимо выполнить выборку. Если список пустой, подразумеваются все типы. Тип, указанный в excludedTypes, переопределяет типы, перечисленные здесь. Распознаваемые типы: Dependency, Event, Exception, PageView, Request и Trace. Для экземпляров указанных типов выполняется выборка. Типы, которые не указаны и не подразумеваются, передаются без выборки.

applicationInsights.httpAutoCollectionOptions

Свойство По умолчанию Description
enableHttpTriggerExtendedInfoCollection true Включает или отключает расширенные сведения об HTTP-запросе для триггеров HTTP: заголовки корреляции входящих запросов, поддержку нескольких ключей инструментирования, метод HTTP, путь и ответ.
enableW3CDistributedTracing true Включает или отключает поддержку протокола распределенной трассировки W3C (и включает устаревшую схему корреляции). Включено по умолчанию, если значение enableHttpTriggerExtendedInfoCollection "Истина". Если значение enableHttpTriggerExtendedInfoCollection "Ложь", этот флаг применяется только к исходящим запросам, но не к входящим.
enableResponseHeaderInjection true Включает или отключает внедрение заголовков корреляции нескольких компонентов в ответы. Если внедрение включено, Application Insights может создавать схему приложений, когда используются несколько ключей инструментирования. Включено по умолчанию, если значение enableHttpTriggerExtendedInfoCollection "Истина". Этот параметр не применяется, если значение enableHttpTriggerExtendedInfoCollection "Ложь".

applicationInsights.dependencyTrackingOptions

Свойство По умолчанию Description
enableSqlCommandTextInstrumentation false Включает коллекцию полнотекстового текста запросов SQL, которая по умолчанию отключена. Дополнительные сведения о сборе текста SQL-запроса см. в статье "Расширенное отслеживание SQL", чтобы получить полный SQL-запрос.

applicationInsights.snapshotConfiguration

Дополнительные сведения о моментальных снимках см. в статьях Отладочные моментальные снимки для исключений в приложениях .NET и Устранение неполадок при включении Application Insights Snapshot Debugger или просмотре снимков.

Свойство По умолчанию Description
agentEndpoint null Конечная точка, используемая для подключения к службе Application Insights Snapshot Debugger. Если значение равно NULL, используется конечная точка по умолчанию.
captureSnapshotMemoryWeight 0,5 Вес, присвоенный текущему размеру памяти процесса при проверке наличия достаточного объема памяти для создания моментального снимка. Ожидаемое значение больше 0 в правильной дроби (0 < CaptureSnapshotMemoryWeight < 1).
failedRequestLimit 3 Предельное число неудачных запросов моментальных снимков перед отключением обработчика данных телеметрии.
handleUntrackedExceptions true Включает или отключает отслеживание исключений, которые не отслеживаются с помощью телеметрии Application Insights.
isEnabled true Включает или отключает сбор моментальных снимков
isEnabledInDeveloperMode false Включает или отключает сбор моментальных снимков в режиме разработчика.
isEnabledWhenProfiling true Включает или отключает создание моментальных снимков, даже если Application Insights Profiler собирает подробный сеанс профилирования.
isExceptionSnappointsEnabled false Включает или отключает фильтрацию исключений.
isLowPrioritySnapshotUploader true Определяет, следует ли запускать процесс SnapshotUploader с приоритетом ниже обычного.
maximumCollectionPlanSize 50 Максимальное число проблем, которые можно отслеживать в любое время, в диапазоне от 1 до 9999.
maximumSnapshotsRequired 3 Максимальное количество моментальных снимков, собранных для одной проблемы, в диапазоне от 1 до 999. Проблему можно рассматривать как отдельный оператор throw в приложении. Когда количество моментальных снимков, собираемых для проблемы, достигнет указанного значения, для этой проблемы больше не будут собираться моментальные снимки, пока не будут сброшены счетчики проблем (см. problemCounterResetInterval), а ограничение thresholdForSnapshotting не будет достигнуто снова.
problemCounterResetInterval 24:00:00 Частота сброса счетчиков проблем в диапазоне от одной минуты до семи дней. При достижении этого интервала все счетчики проблем обнуляются. Существующие проблемы, для которых уже достигнуто пороговое значение создания моментальных снимков, но еще не создано число моментальных снимков в maximumSnapshotsRequired, остаются активными.
provideAnonymousTelemetry true Определяет, следует ли отправить в корпорацию Майкрософт информацию об анонимном использовании и данные телеметрии ошибок. Эти данные телеметрии могут использоваться при обращении в корпорацию Майкрософт для помощи в устранении проблем с Snapshot Debugger. Он также используется для мониторинга шаблонов использования.
reconnectInterval 00:15:00 Частота повторного подключения к конечной точке Snapshot Debugger. Допустимый диапазон — от одной минуты до одного дня.
shadowCopyFolder null Указывает папку, используемую для теневого копирования двоичных файлов. Если не задано, то будут использоваться папки, указанные в следующих переменных среды: Fabric_Folder_App_Temp, LOCALAPPDATA, APPDATA, TEMP.
shareUploaderProcess true Если значение — true, только один экземпляр SnapshotUploader будет собирать и отправлять моментальные снимки для нескольких приложений, совместно использующих InstrumentationKey. Если задано значение "Ложь", SnapshotUploader будет уникальным для каждого кортежа (ProcessName, InstrumentationKey).
snapshotInLowPriorityThread true Определяет, следует ли обрабатывать моментальные снимки в потоке с низким приоритетом ввода-вывода. Создание моментального снимка — это быстрая операция, но для отправки моментального снимка в службу Snapshot Debugger ее необходимо сначала записать на диск в виде минидампа. Это происходит в процессе SnapshotUploader. Если установить для этого параметра значение "Истина", будут использоваться операции ввода-вывода с низким приоритетом для записи минидампа, которые не будут конкурировать с приложением за ресурсы. Если установить для этого параметра значение "Ложь", создание минидампа ускорится за счет снижения производительности приложения.
snapshotsPerDayLimit 30 Максимальное число моментальных снимков, разрешенных за сутки (24 часа). Это ограничение также применяется на стороне службы Application Insights. Скорость отправки составляет не более 50 в день для каждого приложения (то есть ключа инструментирования). Это значение помогает предотвратить создание дополнительных моментальных снимков, которые в конечном итоге будут отклонены во время передачи. Нулевое значение полностью удаляет ограничение, что не рекомендуется.
snapshotsPerTenMinutesLimit 1 Максимальное число моментальных снимков, разрешенных за 10 минут. Хотя в этом значении нет верхней границы, обратите внимание на повышение рабочей нагрузки, так как это может повлиять на производительность приложения. Создание моментального снимка выполняется быстро, но создание минидампа моментального снимка и его отправка в службу Snapshot Debugger — это более медленная операция, которая будет конкурировать с приложением за ресурсы (как ЦП, так и ввода-вывода).
tempFolder null Указывает папку для записи минидампов и файлов журналов отправки. Если значение не задано, используется %TEMP%\Dumps.
thresholdForSnapshotting 1 Количество раз, в течение которых Application Insights должно увидеть исключение перед запросом моментальных снимков.
uploaderProxy null Переопределяет прокси-сервер, используемый в процессе отправки моментального снимка. Этот параметр может потребоваться, если приложение подключается к Интернету через прокси-сервер. Snapshot Collector выполняется в процессе приложения и будет использовать те же параметры прокси-сервера. Однако Snapshot Uploader выполняется как отдельный процесс, и вам может потребоваться настроить прокси-сервер вручную. Если это значение равно NULL, то сборщик моментальных снимков попытается автоматически определить адрес прокси-сервера, проверив System.Net.WebRequest.DefaultWebProxy и передав значение в средство отправки моментальных снимков. Если это значение не равно NULL, то автоматическое обнаружение не применяется, а указанный здесь прокси-сервер будет использоваться в Snapshot Uploader.

большие двоичные объекты

Параметры конфигурации можно найти в разделе Триггеры и привязки хранилища BLOB-объектов.

console

Этот параметр является дочерним элементом ведения журнала. Если не в режиме отладки, этот параметр контролирует ведение журнала консоли.

{
    "logging": {
    ...
        "console": {
          "isEnabled": false,
          "DisableColors": true
        },
    ...
    }
}
Свойство По умолчанию Description
DisableColors false Подавляет форматирование в журналах контейнеров в Linux. Установите значение true, если при запуске в Linux отображаются нежелательные символы элемента управления ANSI в журналах контейнеров.
isEnabled false Включает или отключает ведение журнала консоли.

Azure Cosmos DB

Параметры конфигурации можно найти в триггерах и привязках Azure Cosmos DB.

customHandler

Параметры конфигурации для пользовательского обработчика. Дополнительные сведения см. в статье Пользовательские обработчики Функций Azure.

"customHandler": {
  "description": {
    "defaultExecutablePath": "server",
    "workingDirectory": "handler",
    "arguments": [ "--port", "%FUNCTIONS_CUSTOMHANDLER_PORT%" ]
  },
  "enableForwardingHttpRequest": false
}
Свойство По умолчанию Description
defaultExecutablePath Н/Д Исполняемый файл, запускаемый как процесс пользовательского обработчика. Это обязательный параметр при использовании пользовательских обработчиков и его значение относительно корневого каталога приложения-функции.
WorkingDirectory корень приложения-функции Рабочая папка, в которой запускается процесс пользовательского обработчика. Это необязательный параметр, а его значение относительно корневого каталога приложения-функции.
аргументы Н/Д Массив аргументов командной строки для передачи в процесс пользовательского обработчика.
enableForwardingHttpRequest false Если задано, все функции, состоящие только из HTTP-триггеров и выходных данных HTTP, перенаправляют исходный HTTP-запрос вместо полезных данных запроса пользовательского обработчика.

durableTask

Параметры конфигурации можно найти в разделе host.json settings (параметры файла host.json).

параллелизм

Включает динамическое параллелизм для определенных привязок в приложении-функции. Дополнительные сведения см. в разделе "Динамическое параллелизм".

    { 
        "concurrency": { 
            "dynamicConcurrencyEnabled": true, 
            "snapshotPersistenceEnabled": true 
        } 
    } 
Свойство По умолчанию Description
dynamicConcurrencyEnabled false Включает динамическое поведение параллелизма для всех триггеров, поддерживаемых этой функцией, которая отключена по умолчанию.
snapshotPersistenceEnabled true Полученные значения параллелизма периодически сохраняются в хранилище, поэтому новые экземпляры начинаются с этих значений, а не начиная с 1 и необходимости повторного выполнения обучения.

eventHub

Параметры конфигурации можно найти в разделе host.json settings (параметры файла host.json).

extensions

Свойство, которое возвращает объект, содержащий все параметры определенной привязки, такие как http и eventHub.

extensionBundle

Пакеты расширений — это способ добавления набора совместимых расширений привязки функции в приложение-функцию. Дополнительные сведения см. в разделе Пакеты расширений для локальной разработки.

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

В extensionBundle доступны следующие свойства:

Свойство Description
id Пространство имен для наборов расширений Функций Microsoft Azure.
version Диапазон версий устанавливаемого пакета. В среде выполнения Функций всегда выбирается максимально допустимая версия, определенная в диапазоне версий. Например, version диапазон значений [4.0.0, 5.0.0) позволяет использовать все версии пакета от 4.0.0 до 5.0.0. Дополнительные сведения см. в разделе об интервальной нотации для указания диапазонов версий.

functions

Список функций, которые выполняют узел заданий. Пустой массив означает выполнение всех функций. Предназначен для использования только при локальном выполнении. Чтобы отключить определенные функции в приложениях-функциях Azure, выполните следующие действия в разделе Способы отключения функций в решении "Функции Azure" вместо использования этого параметра.

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

functionTimeout

Указывает длительность ожидания для всех выполнений функций. Соответствует формату строки временного диапазона.

Тип плана По умолчанию (мин.) Максимум (мин.)
Потребление 5 10
Премиум1 30 -1 (без ограничений)2
Выделенный (служба приложений) 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
    }
}
Свойство По умолчанию Description
включена true Указывает, включена ли функция.
healthCheckInterval 10 seconds Интервал времени между периодическими фоновыми проверками работоспособности.
healthCheckWindow 2 минуты Скользящее окно времени, используемое в сочетании с параметром healthCheckThreshold.
healthCheckThreshold 6 Максимальное количество попыток проверки работоспособности, которые могут завершиться сбоем, прежде чем инициируется повторный запуск.
counterThreshold 0.80 Пороговое значение, при достижении которого счетчик производительности будет считаться неработоспособным.

HTTP

Параметры конфигурации см. в статье Триггеры и привязки HTTP в службе "Функции Azure".

Ведение журналов

Управляет поведением ведения журнала приложения-функции, включая Application Insights.

"logging": {
    "fileLoggingMode": "debugOnly",
    "logLevel": {
      "Function.MyFunction": "Information",
      "default": "None"
    },
    "console": {
        ...
    },
    "applicationInsights": {
        ...
    }
}
Свойство По умолчанию Description
fileLoggingMode debugOnly Определяет поведение ведения журнала файлов при запуске в Azure. Параметры: never, alwaysи debugOnly. Этот параметр не используется при локальном запуске. По возможности при отладке функций в Azure следует использовать Application Insights. Использование always негативно влияет на поведение холодного запуска приложения и пропускную способность данных. Параметр по умолчанию debugOnly создает файлы журналов при отладке с помощью портал Azure.
LogLevel Н/Д Объект, который определяет фильтрацию категорий журналов для функций в приложении. Этот параметр позволяет фильтровать ведение журнала для определенных функций. Дополнительные сведения см. в разделе Настройка уровней ведения журнала.
console Н/Д Параметр ведения журнала консоли.
applicationInsights Н/Д Параметр applicationInsights.

managedDependency

Управляемая зависимость — это функция, которая в настоящее время поддерживается только функциями на основе PowerShell. С ее помощью служба может автоматически управлять зависимостями. Если свойство enabled имеет значение true, файл requirements.psd1 обрабатывается. Зависимости обновляются при выпуске всех дополнительных версий. Дополнительные сведения см. в разделе Управляемая зависимость для PowerShell.

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

очереди

Параметры конфигурации можно найти в разделе host.json settings.

SendGrid

Параметры конфигурации можно найти в разделе host.json settings (параметры файла host.json).

serviceBus

Параметры конфигурации можно найти в разделе host.json settings (параметры файла host.json).

singleton

Параметры конфигурации для одноэлементной блокировки. Дополнительные сведения см. в проблеме, посвященной одноэлементной блокировке, на портале GitHub.

{
    "singleton": {
      "lockPeriod": "00:00:15",
      "listenerLockPeriod": "00:01:00",
      "listenerLockRecoveryPollingInterval": "00:01:00",
      "lockAcquisitionTimeout": "00:01:00",
      "lockAcquisitionPollingInterval": "00:00:03"
    }
}
Свойство По умолчанию Description
lockPeriod 00:00:15 Период времени, на который применяются блокировки уровня функции. Эти блокировки возобновляются автоматически.
listenerLockPeriod 00:01:00 Период времени, на который применяются блокировки прослушивателя.
listenerLockRecoveryPollingInterval 00:01:00 Интервал времени, используемый для восстановления блокировки прослушивателя, если блокировку прослушивателя не удалось получить при запуске.
lockAcquisitionTimeout 00:01:00 Максимальный период времени, за который среда выполнения будет пытаться получить блокировку.
lockAcquisitionPollingInterval Н/Д Интервал между попытками получения блокировки.

telemetryMode

Эта функция сейчас доступна в предварительной версии.

Используется для включения выходных данных журналов и трассировок в формате выходных данных OpenTelemetry в одну или несколько конечных точек, поддерживающих OpenTelemetry. Если для этого параметра задано OpenTelemetryзначение , используется выходные данные OpenTelemetry. По умолчанию без этого параметра все журналы, трассировки и события отправляются в Application Insights с помощью стандартных выходных данных. Дополнительные сведения см. в разделе "Использование OpenTelemetry" с Функции Azure.

версия

Это значение указывает версию схемы host.json. Строка версии "version": "2.0" является обязательной для приложения-функции, предназначенного для среды выполнения версии 2 или более поздней. Версии 2 и 3 не отличаются схемой host.json.

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 Insights при локальном запуске. Если вы изменили локальный файл 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. Если структура элементов содержит массив, индекс числовых массивов должен рассматриваться как дополнительное имя элемента в этом пути. Дополнительные сведения см. в разделе Именование переменных среды.

Следующие шаги