不同的host.json用于Azure函数的调试和发布



对于我的azure函数,我有一个host.json,我在其中设置functionTimeout。我必须在每次部署(发布(之前更改该值,并出于调试目的将其更改回来。

有没有办法拥有两个不同的host.json文件——一个用于发布,一个用于调试?

不要认为你可以将host.staging.json、host.dev.json或host.prod.json添加到函数中,而是尝试设置覆盖方法:

覆盖host.json值:

在某些情况下,您可能希望为特定环境配置或修改host.json文件中的特定设置,而不更改host.json本身。您可以通过创建等效值作为应用程序设置来覆盖特定的host.json值。当运行时找到AzureFunctionsJobHost__path__to__setting格式的应用程序设置时,它会覆盖json中path.to.setting中的等效host.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"
}
}

最新更新