Теперь, когда мы можем использовать чрезвычайно гибкий механизм конфигурации из .NETCore - мы можем сделать что-то вроде этого:
private static IConfigurationRoot SetConfig(ExecutionContext executionContext)
{
return new ConfigurationBuilder()
.SetBasePath(executionContext.FunctionAppDirectory)
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
}
Это замечательно, поскольку позволяет вам помещать более сложные данные конфигурации в файл конфигурации- например,
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "<< removed >>",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"APPINSIGHTS_INSTRUMENTATIONKEY": "<< removed >>"
},
"MyCustomSettings": [
{
"ConnectionString": "<< removed >>",
"Folders": [
{
"ShareName": "share1",
"FolderName": "folder1"
},
{
"ShareName": "share2",
"FolderName": "folder2"
}
]
}
]
}
Снова - отличные новости!Теперь я могу получить доступ к моей строго типизированной конфигурации с помощью config ["MyCustomSettings"]
Что я не получаю - это то, как это можно развернуть при публикации функции.Только функция «Значения» переносится в функцию «Настройки приложения» Azure.Очевидно, я могу поместить этот пользовательский json в файл json и добавить его в оператор загрузки, например local.settings.json
.AddJsonFile("my-custom-settings.json", optional: false, reloadOnChange: true)
, но затем этот файл должен быть включен в развертывание и не сохраняетсябезопасно.
Есть идеи?