【问题标题】:Using Array in Azure Function Application Settings在 Azure 函数应用程序设置中使用数组
【发布时间】:2021-05-28 17:14:47
【问题描述】:

我正在使用appsettings.json 配置我的 Azure Function(netcoreapp3.1,在 Windows 机器上运行)。

appsettings.json 文件中有一个带有设置的数组:

{
    "ArraySettings": [
        {
            "ArraySettingProperty1": "ArraySetting1Value1",
            "ArraySettingProperty2": "ArraySetting1Property2"
        },
        {
            "ArraySettingProperty1": "ArraySetting2Value1",
            "ArraySettingProperty2": "ArraySetting2Property2"
        }
    ],
    "SingleSetting": "SingleValue"
}

如果我在本地运行 Azure 函数,它可以正常工作。但它似乎不适用于 Azure,尽管 appsettings.json 文件已部署并且可以通过 Azure 函数找到。

Startup.cs:

private IConfiguration InitializeConfiguration(IFunctionsHostBuilder functionsHostBuilder)
        {
            ExecutionContextOptions executionContextOptions = functionsHostBuilder
               .Services
               .BuildServiceProvider()
               .GetService<IOptions<ExecutionContextOptions>>()
               .Value;

            return new ConfigurationBuilder()
                .SetBasePath(executionContextOptions.AppDirectory)
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .AddEnvironmentVariables()
                .Build();
        }

这是我已经尝试过的(没有成功):

  1. 将设置复制到local.settings.json 文件的Values 部分

  2. 以以下关键格式将设置添加到 Azure 上的应用程序设置(无论是否注释掉 appsettings.json 配置):

    2.1 ArraySettings:ArraySettingProperty1:0

    2.2 ArraySettings__ArraySettingsProperty1__0

    2.3 值__ArraySettings__ArraySettingsProperty1__0

为什么阵列设置在本地有效,但在 Azure 上无效?如何让它们在 Azure 上运行?谢谢!

【问题讨论】:

    标签: c# azure azure-functions


    【解决方案1】:

    请尝试在您的应用服务的配置设置中进行如下设置:

    Key: ArraySettings__0__ArraySettingProperty1
    
    Value: ArraySetting1Value1
    
    Key: ArraySettings__0__ArraySettingProperty2
    
    Value: ArraySetting1Value2
    
    Key: ArraySettings__1__ArraySettingProperty1
    
    Value: ArraySetting1Value1
    
    Key: ArraySettings__1__ArraySettingProperty2
    
    Value: ArraySetting1Value2
    
    Key: SingleSetting
    
    Value: SingleValue
    

    如果您的应用服务部署在 Windows 上,您可以使用 : 作为分隔符,而不是 __。但是__ 可以在 Windows 和 Linux 上运行。

    【讨论】:

      猜你喜欢
      • 2021-02-01
      • 2016-03-07
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      • 2021-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多