Переменные среды функций Azure - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь создать супер базовую функцию Azure, но у меня проблемы с переменными среды.Следуя различным учебным пособиям,

        var config = new ConfigurationBuilder()
             .SetBasePath(context.FunctionAppDirectory)
             .AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
             .AddEnvironmentVariables()
             .Build();

        log.Info(config["AzureWebJobsStorage"]);

Мой local.settings.json выглядит следующим образом:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "<language worker>",
    "AzureWebJobsStorage": "abc123",
    "AzureWebJobsDashboard": "abc123",
    "MyBindingConnection": "abc123"
  },
  "Host": {
    "LocalHttpPort": 7071,
    "CORS": "*"
  }
}

Когда я запускаю это локально, эта строка

log.Info(config["AzureWebJobsStorage"]); 

ничего не возвращает ... но при развертывании в Azure я вижу в консоли "abc123".

Если, однако, я изменяю эту строку на

log.Info(config["Values:AzureWebJobsStorage"]);

Затем, когда я запускаю локально,Я вижу «abc123», но при развертывании в Azure я ничего не вижу.

Есть ли что-то, чего мне не хватает, чтобы иметь возможность получить доступ к переменным среды так же, как локально по сравнению с развернутым?

РЕДАКТИРОВАТЬ: Чтобы уточнить, эти параметры настроены в настройках приложения для функции: enter image description here

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Если вы используете таргетинг времени выполнения ~ 2 для ваших функций Azure, вы можете получить доступ к значениям конфигурации через:

log.Info(Environment.GetEnvironmentVariable("AzureWebJobsStorage", EnvironmentVariableTarget.Process));
0 голосов
/ 07 февраля 2019

Эти переменные среды работают, когда вы тестируете свою функцию локально.Однако при развертывании на функциональном портале Azure вам необходимо настроить переменные, используя их встроенную систему для обработки переменных среды.

Скопируйте и вставьте значения ключа в разделы, которые я выделил на изображении ниже.

<<a href="https://i.stack.imgur.com/Wv0YK.png" rel="nofollow noreferrer">Azure Functions Portal - Environmental

...