[英]Using Array in Azure Function Application Settings
I'm using appsettings.json
for the configuration of my Azure Function (netcoreapp3.1, running on a Windows machine).
在appsettings.json
文件中有一個帶有設置的數組:
{
"ArraySettings": [
{
"ArraySettingProperty1": "ArraySetting1Value1",
"ArraySettingProperty2": "ArraySetting1Property2"
},
{
"ArraySettingProperty1": "ArraySetting2Value1",
"ArraySettingProperty2": "ArraySetting2Property2"
}
],
"SingleSetting": "SingleValue"
}
如果我在本地運行 Azure Function 它工作正常。 But it seems not to work on Azure although the appsettings.json
file was deployt and can be found by the 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。
這有效:
public class MyOptions
{
public List<string> MyArray { get; set; }
}
// local.settings.json:
{
"IsEncrypted": false,
"Values": {
"MyOptions:MyArray:0": "foo",
"MyOptions:MyArray:1": "bar"
}
}
// In startup.cs:
builder.Services.Configure<MyOptions>(configuration.GetSection("MyOptions"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.