我有事件网格触发器Azure功能(.Net 6应用程序),它在P2V2计划(应用程序服务)Windows操作系统上运行。我计划在应用服务托管计划中的 Linux 操作系统上运行它,以节省成本。
在基于Windows的应用服务计划中,我通过以下方式提供配置设置
[
{
"name": "APPINSIGHTS_INSTRUMENTATIONKEY",
"value": "",
"slotSetting": false
},
{
"name": "ApplicationInsights:LogLevel",
"value": "Information",
"slotSetting": false
},
{
"name": "AzureWebJobsStorage",
"value":"",
"slotSetting": false
},
{
"name": "Component:ComponentId",
"value": "",
"slotSetting": false
}
]
部署到基于 Linux 的操作系统时,由于不支持冒号 (:),因此不接受 ApplicationInsights:LogLevel
配置设置。在这种情况下,我应该怎么做才能在应用服务托管计划中的 Linux 操作系统中运行?
最佳答案
- 依赖注入(inject)配置默认设置在函数类文件中。
- 我们需要添加一些配置更改,在
host.json
文件中添加logLevel
设置。
我的 host.json :
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
},
"logLevel": {
"AzureFunction.Sample": "Information"
}
}
}
APPINSIGHTS_INSTRUMENTATIONKEY
和AzureWebJobsStorage
添加到local.settings.json
文件中 如下
我的 local.settings.json
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"APPINSIGHTS_INSTRUMENTATIONKEY": "Copy the Instrumentation Key from Application Insights"
},
"Component": {
"ComponentId": "",
"value": "",
"slotSetting": false
}
}
在 Azure Linux 托管计划中托管应用程序。
应用程序洞察跟踪:
关于linux - 在应用服务计划 (Linux) 上运行 .Net 6 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73707516/