Подтвердить что ты не робот

Чтение значений из local.settings.json в VS 2017 Разработка функции Azure

Я пишу функцию Azure в VS 2017. Мне нужно настроить несколько пользовательских параметров конфигурации. Я добавил их в local.settings.json под Values.

{
   "IsEncrypted":false,
   "Values" : {
      "CustomUrl" : "www.google.com",
       "Keys": { 
           "Value1":"1",
           "Value2" :"2"
       }
   }
}

Теперь ConfigurationManager.AppSettings["CustomUrl"] возвращает ноль.

Я использую:

  • .NET Framework 4.7
  • Microsoft.NET.Sdk.Functions 1.0.5
  • System.Configuration.ConfigurationManager 4.4.0
  • Azure.Functions.Cli 1.0.4

Я что-то пропустил?

4b9b3361

Ответ 1

Во-первых, я создаю образец и делаю тест с вашими данными local.settings.json, как сказал Михаил и ahmelsayed, он отлично работает.

Кроме того, насколько мне известно, коллекция Values будет представлять собой словарь, если она содержит любые нестрочные значения, это может привести к тому, что функция Azure не сможет считывать значения из local.settings.json.

Мой тест:

ConfigurationManager.AppSettings["CustomUrl"] возвращает null со следующим local.settings.json.

{
  "IsEncrypted": false,
  "Values": {
    "CustomUrl": "www.google.com",
    "testkey": {
      "name": "kname1",
      "value": "kval1"
    }
  }
}

enter image description here

Ответ 2

Environment.GetEnvironmentVariable("key")

Мне удалось прочитать значения из local.settings.json, используя указанную выше строку кода.

Ответ 3

Функция Azure копирует двоичные файлы в папку bin и запускается с использованием функции azure cli, поэтому она ищет файл local.settings.json, поэтому убедитесь, что для параметра "Copy to Output Directory" значение "Copy Always"

enter image description here

Ответ 4

Если вы используете функцию Azure на основе TimeTrigger, вы можете получить доступ к своему ключу (созданному в local.settings.json) из функции Azure, как показано ниже.

[FunctionName("BackupTableStorageFunction")]
public static void Run([TimerTrigger("%BackUpTableStorageTriggerTime%")]TimerInfo myTimer, TraceWriter log, CancellationToken cancellationToken)