Azure Function:发布管道以包含 appsettings.json 值

Azure Function : Release pipeline to include appsettings.json values

我的 Azure Functions 项目中有 2 个设置文件。

1)local.settings.json

2)appsettings.json

在 Startup.cs 中,我将两者合并到一个配置中,并且在本地调试的代码中一切正常。

Config = new ConfigurationBuilder()
                .SetBasePath(currentDirectory)
                .AddConfiguration(configuration) 
                .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                .Build();

Appsetings.json 包含嵌套值。 例如:

{
"Test":
  {
   "abc":"def"
  }
}

我正在使用 Azure DevOps 中的发布管道将我的代码部署到函数应用程序。

我在我的发布管道中使用“Azure 应用服务设置”任务来将最终部署中的值替换为 Function App。

所以上面提到的发布任务中的值是,

[
{ "name": "FUNCTIONS_WORKER_RUNTIME", "value": "dotnet", "slotSetting": false },//from local.settings.json
{ "name": "Test__abc", "value": "def", "slotSetting": false },//from appsettings.json
]

问题:

代码部署没有任何问题,local.setting.json 值正常通过。但问题在于 appsettings.json 值。这被添加到 Azure 门户的“配置”选项卡中,但应用程序似乎没有使用它。该应用程序出错,因为该值为空。

如何通过发布任务将 appsetting 值传递给 Azure Functio?

我在启动时添加了 .AddEnvironmentVariables() 后应用程序开始运行。

Config = new ConfigurationBuilder()
                .SetBasePath(currentDirectory)
                .AddConfiguration(configuration) 
                .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                .AddEnvironmentVariables()
                .Build();