Azure functions Azure function v3设置中local.settings.json的嵌套对象

Azure functions Azure function v3设置中local.settings.json的嵌套对象,azure-functions,Azure Functions,我在.NETCore3.1中有一个Azure函数v3 该函数在本地运行良好。 以下是local.settings.json: { "IsEncrypted": false, "Values": { "FUNCTIONS_WORKER_RUNTIME": "dotnet", "AzureWebJobsStorage": "UseDevelopmentStorage=

我在.NETCore3.1中有一个Azure函数v3 该函数在本地运行良好。 以下是local.settings.json:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true"
  },
  "Foo": {
    "Bar": {
      "test1": true,
      "test2": false
    }
  }
}
我需要在Azure函数配置中为嵌套对象Foo:Bar:test1编写配置


如何在那里表达这个嵌套对象?

嵌套对象不能很好地使用Azure函数配置,有更多详细信息Azure函数的配置机制与Azure的应用程序配置中发生的情况相匹配。因此它是一个平面结构

通常,您需要使
local.settings.json
与Azure匹配

如果您希望对WebApp和Azure函数使用相同的结构(例如,代码中的共享
IOptions
),则需要使用值中的平面结构声明
local.settings.json
,如下所示:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "Foo:Bar:test1": true,
    "Foo:Bar:test2": false
  }
}

此外,您不需要在Startup.cs中插入
IConfiguration
(如果您使用的是DI),这已经由运行时处理。

Azure函数用于表示嵌套对象的配置选项的正确语法是使用双下划线:“CustomSettings\uu MySpecificSetting”

对于local.settings.json文件中的嵌套对象:

Foo": {
   "Bar": {
     "test1": true
    }
}
Azure配置看起来像:

Foo__Bar__test1

这回答了你的问题吗?(答案是针对web应用,但功能应该是相同的)Azure功能和web应用的行为不同。查看本文了解更多细节()嵌套对象与Azure函数一起工作。我刚刚发现正确的语法是使用双下划线:“CustomSettings\uuuMySpecificSetting”。但有些配置设置不好,这是事实,比如AzureWebJobsStorage或函数触发器设置。它们被硬固定在“值”块内。如果在值内执行这些操作,则需要使用:。但你的建议也是正确的。如果您正在按消费计划运行,也不要从文件中加载它们。我会相应地更新我的答案。