linux - 在应用服务计划 (Linux) 上运行 .Net 6 代码

标签 linux azure azure-functions azure-app-service-plans

我有事件网格触发器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 托管计划中托管应用程序。

应用程序洞察跟踪: enter image description here

关于linux - 在应用服务计划 (Linux) 上运行 .Net 6 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73707516/

相关文章:

java - 如何对 PDF 文件中的图像进行下采样?

linux - 如何在某一点之后grep所有文本

azure - 转换 Web 角色中的外部配置

azure - 如何告诉 Entity Framework 在 Azure 中创建/部署数据库?

linux - 根据子串匹配删除文件

c++ - 套接字发送(..)线程的最佳数量

azure - Python Azure函数: Runtime is unreachable 503 error

c# - Azure 函数环境变量

azure - 如何使用 dotnet core 作为 Docker 中的 Azure 函数来运行 FFProbe?

azure - 由存储队列触发的 Azure Functions 是接受单个消息还是所有消息?