Я работаю с функциями Azure и у меня возникла проблема.Я объявил файл local.settings.json
с моими переменными следующим образом:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"TopicEndpoint": "my endpoint"
}
}
Это позволяет моей функции Azure читать настройки, используя:
var config = new ConfigurationBuilder()
.SetBasePath(context.FunctionAppDirectory)
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
var myTopic = config["Values:TopicEndpoint"];
Это позволяет мне публиковать и экспортировать моиПеременные для портала через:
func azure functionapp
publish myfunctionapp --publish-local-settings -i
Однако после публикации и проверки того, что значение находится в «Настройках приложения» на портале, «Значения: TopicEndpoint» несуществовать.
Чтобы получить доступ к его значению, я должен поместить свои переменные непосредственно в корень json:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
}
"TopicEndpoint": "my endpoint"
}
Таким образом, я могу безопасно использовать config['TopicEndpoint']
в своей локальной разработкесреда, а также на Azure.Тем не менее, это противоречит цели --publish-local-settings -i
, так как он экспортирует только значения, найденные под клавишей «Значения», поэтому мне приходится создавать все мои настройки вручную.
Знаете ли вы, почему это происходит, или если возможноЯ что-то упустил?