You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多环境部署下,如何从Azure App Service读取Serilog的AI连接字符串

实现方案

完全可行,这是将敏感配置与代码分离的最佳实践之一,既避免硬编码敏感信息,也能轻松实现多环境配置隔离。以下是具体操作步骤:

1. 修改Serilog配置,移除硬编码连接字符串

更新appsettings.json中的Serilog配置,将硬编码的连接字符串替换为配置占位符(会自动读取应用运行环境中的同名配置项,包括App Service应用设置、环境变量等):

"Serilog": {
  "Using": [ "Serilog.Sinks.ApplicationInsights" ],
  "MinimumLevel": {
    "Default": "Information",
    "Override": {
      "Microsoft": "Warning",
      "System": "Warning"
    }
  },
  "WriteTo": [
    {
      "Name": "ApplicationInsights",
      "Args": {
        "connectionString": "${ApplicationInsightsConnectionString}",
        "telemetryConverter": "Serilog.Sinks.ApplicationInsights.TelemetryConverters.TraceTelemetryConverter, Serilog.Sinks.ApplicationInsights"
      }
    }
  ],
  "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ]
}

2. 在Azure Pipeline中配置多环境变量

你可以通过两种方式区分staging和production的连接字符串:

  • 方式一:使用变量组
    1. 在Azure DevOps中创建两个变量组:Staging-Config和Production-Config,分别添加ApplicationInsightsConnectionString变量并填入对应环境的连接字符串。
    2. 在Pipeline的发布阶段,为staging阶段关联Staging-Config变量组,production阶段关联Production-Config变量组。
  • 方式二:阶段级直接设置变量
    在Azure Pipeline的发布阶段配置界面,分别为staging和production阶段添加ApplicationInsightsConnectionString变量,设置各自的连接字符串值。

3. 部署时将变量注入App Service应用设置

在Azure Pipeline的Azure App Service部署任务中,完成变量到应用设置的注入:
找到部署任务的"应用设置"选项,勾选"使用来自管道变量的应用设置",或者直接在"应用设置"文本框中添加:

-ApplicationInsightsConnectionString $(ApplicationInsightsConnectionString)

部署时,Pipeline会自动将对应阶段的变量值写入目标App Service的应用设置中。

4. 验证配置生效

部署完成后,登录Azure Portal进入对应App Service的"配置"->"应用设置",确认ApplicationInsightsConnectionString已正确设置。此时应用运行时,Serilog会自动读取该配置项并连接到对应的Application Insights实例。

内容的提问来源于stack exchange,提问作者SandroRiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 08:52:31