#azure #azure-functions
Вопрос:
Для моей функции azure у меня есть файл host.json, в котором я устанавливаю functionTimeout
. Я должен изменять значение перед каждым развертыванием (выпуском) и изменять его обратно в целях отладки.
Есть ли способ иметь два разных файла host.json — один для выпуска и один для отладки?
Ответ №1:
Не думайте, что вы можете добавить host.staging.json, host.dev.json или host.prod.json для функции вместо этого попробуйте подход переопределения настроек:
Переопределение значений host.json:
Могут быть случаи, когда вы хотите настроить или изменить определенные параметры в файле host.json для конкретной среды, не изменяя сам файл host.json. Вы можете переопределить определенные значения host.json, создав эквивалентное значение в качестве параметра приложения. Когда среда выполнения находит параметр приложения в формате AzureFunctionsJobHost__путь__к__параметр, он переопределяет эквивалентный параметр host.json, расположенный по адресу путь.к.параметр в JSON. При выражении в качестве параметра приложения точка (.), используемая для обозначения иерархии JSON, заменяется двойным подчеркиванием (__).
Например, скажите, что вы хотели отключить выборку Application Insight при локальном запуске. Если вы изменили файл local host.json, чтобы отключить Application Insights, это изменение может быть перенесено в ваше рабочее приложение во время развертывания. Более безопасный способ сделать это-вместо этого создать параметр приложения как «AzureFunctionsJobHost__ведение журнала__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"
}
}