Как получить доступ к настройкам приложения в функции Azure В приложении на портале C #? - PullRequest
0 голосов
/ 24 сентября 2019

Попытка получить доступ к настройке приложения из функции Azure, созданной на портале.

Не найдена текущая проблема с пространством имен ConfgiurationBuilder.

Я получил следующий код, который выглядитнемного длинновато для того, что предполагается использовать для использования.

Большинство из найденных мною только ресурсов относятся к встроенной функции Azure Visual Studio с использованием привязки запуска.

netосновная функция c #.Функция версии 2.

Первая - настройка параметров в приложениях функций Настройки платформы / Общие настройки / Конфигурация

Затем код функции:

  • Пакет включает для System.Configuration.ConfigurationManager
  • с использованием добавлено для Microsoft.Extensions.Configuration;
  • добавить контекст ExectuionContext в качестве параметра

Код выглядит следующим образом

#r "Newtonsoft.Json"
#r "System.Configuration.ConfigurationManager"

using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using Microsoft.Extensions.Configuration;

public static async Task<string> Run(HttpRequest req, ILogger log,
    ExecutionContext context) {

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

    return app_setting;
}

Как уже упоминалось, проблемы с этим

  • не создаются из-за того, что пространство имен ConfigurationBuilder не найдено, несмотря на отсутствие ошибки от #r ConfigurtaionManager
  • выглядит немного длинным.Если используется запуск / зависимость, то может быть скрыт.Это делается на портале, поэтому, может быть, существует некоторая зависимость от короткого замыкания?

Ответы [ 3 ]

1 голос
/ 25 сентября 2019

После того, как вы закончите приложение функции и обновите его до портала.Значение local.setting.json будет находиться на вкладке «Настройки приложения» опубликованного приложения функции на портале Azure (см. Рисунок).Так что на портале, если вы хотите изменить настройки приложения, вам нужно работать с «настройками приложения».

enter image description here enter image description here

Так что, если вы хотите получить доступ к настройкам приложения, вы можете использовать это:

var environmentmyDesiredKey = Environment.GetEnvironmentVariable("MyAppSetting");

, чтобы получить 'MyAppSetting', установленный в «настройках приложения». (Не забудьте using System.Configuration;)

enter image description here

У меня все работает.Если у вас есть дополнительные вопросы, пожалуйста, дайте мне знать.

1 голос
/ 25 сентября 2019

Пожалуйста, попробуйте

Environment.GetEnvironmentVariable("appSettingName", EnvironmentVariableTarget.Process);
0 голосов
/ 25 сентября 2019

Вы можете просто использовать GetEnvironmentVariable примерно так:

#r "Newtonsoft.Json"

using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using Microsoft.Extensions.Configuration;

public static async Task<string> Run(HttpRequest req, ILogger log) {

var app_setting = System.Environment.GetEnvironmentVariable("MyAppSetting");

return app_setting;

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...