在 Azure 函数应用程序设置中使用数组
Using Array in Azure Function Application Settings
我正在使用 appsettings.json
配置我的 Azure 函数(netcoreapp3.1,运行在 Windows 机器上运行)。
在 appsettings.json
文件中有一个包含设置的数组:
{
"ArraySettings": [
{
"ArraySettingProperty1": "ArraySetting1Value1",
"ArraySettingProperty2": "ArraySetting1Property2"
},
{
"ArraySettingProperty1": "ArraySetting2Value1",
"ArraySettingProperty2": "ArraySetting2Property2"
}
],
"SingleSetting": "SingleValue"
}
如果我在本地 运行 Azure Functions,它工作正常。但它似乎不适用于 Azure,尽管 appsettings.json
文件已部署并且可以通过 Azure Function 找到。
在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();
}
这是我已经尝试过的(没有成功):
正在将设置复制到 local.settings.json
文件的 Values
部分
将设置添加到 Azure 上的应用程序设置(有和没有注释掉 appsettings.json
配置),格式如下:
2.1 ArraySettings:ArraySettingProperty1:0
2.2 ArraySettings__ArraySettingsProperty1__0
2.3 值__ArraySettings__ArraySettingsProperty1__0
为什么阵列设置在本地有效但在 Azure 上无效?如何让它们在 Azure 上运行?谢谢!
请尝试在您的应用服务的配置设置中进行如下设置:
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。
我正在使用 appsettings.json
配置我的 Azure 函数(netcoreapp3.1,运行在 Windows 机器上运行)。
在 appsettings.json
文件中有一个包含设置的数组:
{
"ArraySettings": [
{
"ArraySettingProperty1": "ArraySetting1Value1",
"ArraySettingProperty2": "ArraySetting1Property2"
},
{
"ArraySettingProperty1": "ArraySetting2Value1",
"ArraySettingProperty2": "ArraySetting2Property2"
}
],
"SingleSetting": "SingleValue"
}
如果我在本地 运行 Azure Functions,它工作正常。但它似乎不适用于 Azure,尽管 appsettings.json
文件已部署并且可以通过 Azure Function 找到。
在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();
}
这是我已经尝试过的(没有成功):
正在将设置复制到
local.settings.json
文件的Values
部分将设置添加到 Azure 上的应用程序设置(有和没有注释掉
appsettings.json
配置),格式如下:2.1 ArraySettings:ArraySettingProperty1:0
2.2 ArraySettings__ArraySettingsProperty1__0
2.3 值__ArraySettings__ArraySettingsProperty1__0
为什么阵列设置在本地有效但在 Azure 上无效?如何让它们在 Azure 上运行?谢谢!
请尝试在您的应用服务的配置设置中进行如下设置:
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。