Переменные среды функций Azure

2

Я пытаюсь создать супер базовую функцию 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 я ничего не вижу.

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

EDIT: Для уточнения, эти параметры настраиваются в настройках приложения для функции: Изображение 174551

  • 0
    Если мой ответ был полезным и правильным, отметьте его как принятый ответ. Это помогает тем, кто посещает эту страницу, найти лучший ответ, а также дает мне положительные отзывы. Спасибо.
  • 0
    Я пошел на обед после того, как отправил это в течение часа. Этот ответ не помог.
Теги:
azure
azure-functions

2 ответа

1
Лучший ответ

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

log.Info(Environment.GetEnvironmentVariable("AzureWebJobsStorage", EnvironmentVariableTarget.Process));
  • 0
    Привет, Кейн ... спасибо! Я попробовал это и получил то же самое поведение локально. На самом деле, когда я пытаюсь локально таким способом, даже когда я пытаюсь сослаться на «Переменные: AzureWebJobsStorage», он ничего не возвращает. Я попытаюсь переустановить основные инструменты Azure Functions и посмотреть, что произойдет.
  • 0
    Моя функция на самом деле работала ~ 1 во время выполнения ... согласно учебникам, которые я читал, она должна была сработать, но обновление казалось достаточно простым делом, и это сработало. Благодарю вас!
1

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

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

< Изображение 174551

  • 0
    Привет @MBak Это именно то, что я сделал, извините. Проверьте последнюю часть моего поста. Я получаю возвращаемое значение, если я вызываю config ["AzureWebJobsStorage"] в Azure.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню