Краткое руководство. Создание приложения Функции Azure с помощью Конфигурация приложений Azure
В этом кратком руководстве описано, как добавить службу "Конфигурация приложений Azure" в приложение Функций Azure, чтобы обеспечить централизованное хранение всех параметров приложения и управление ими отдельно от кода.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте ее бесплатно.
- Хранилище Конфигурация приложений. Создайте хранилище.
- Visual Studio с рабочей нагрузкой разработки для Azure.
- Инструменты функций Azure, если они еще не установлены вместе с Visual Studio.
Добавление ключа-значения
Добавьте следующее ключевое значение в хранилище Конфигурация приложений и оставьте метку и тип контента со значениями по умолчанию. Дополнительные сведения о добавлении значений ключей в хранилище с помощью портал Azure или ИНТЕРФЕЙСА командной строки см. в разделе "Создание значения ключа".
Ключ | Значение |
---|---|
TestApp:Settings:Message | Данные из Конфигурация приложений Azure |
Создание приложения-функции
С помощью шаблона проекта Функций Azure в Visual Studio можно создать проект библиотеки классов C#, а затем опубликовать его в приложении-функции в Azure. Приложение-функция позволяет группировать функции в логические единицы и упростить развертывание, масштабирование и совместное использование ресурсов, а также управление ими.
В строке меню Visual Studio выберите Файл>Создать>Проект.
В разделе Создать новый проект введите в поле поиска слово функции, выберите шаблон Функции Azure, а затем нажмите кнопку Далее.
В разделе Настроить новый проект введите Имя проекта, а затем выберите команду Создать. Имя приложения-функции должно быть допустимым в качестве пространства имен C#, поэтому не используйте символы подчеркивания, дефисы и другие символы, не являющиеся буквенно-цифровыми.
Для параметров в области Создание нового приложения Функций Azure используйте значения, указанные в таблице ниже.
Параметр значение Описание Версия .NET .NET 6 (изолированный) Это значение создает проект функции, который выполняется в изолированном рабочем процессе. Изолированный рабочий процесс поддерживает другую версию .NET, отличной от LTS, а также платформа .NET Framework. Дополнительные сведения см. в обзоре версий среды выполнения Функций Azure. Function template (Шаблон функции) Триггер HTTP С помощью этого значения создается функция, которая активируется с помощью HTTP-запроса. Учетная запись хранения (AzureWebJobsStorage) Эмулятор хранения Поскольку для приложения-функции в Azure требуется учетная запись хранения, она назначается или создается при публикации проекта в Azure. При активации с помощью HTTP-запроса не используется строка подключения учетной записи хранения Azure. Для всех остальных типов активации требуется допустимая строка подключения к учетной записи хранения Azure. Уровень авторизации Анонимный. Создаваемую функцию может активировать любой клиент без указания ключа. Этот параметр авторизации позволяет легко тестировать новые функции. Дополнительные сведения о ключах и авторизации см. в разделе Ключи авторизации, а также в обзоре привязок HTTP и веб-перехватчика. Убедитесь, что для параметра Уровень авторизации задано значение Анонимно. Если вы выберете для функции уровень по умолчанию, нужно указать функциональную клавишу в запросах на доступ к конечной точке функции.
Нажмите кнопку Создать, чтобы создать проект функции и функцию, активируемую с помощью HTTP.
Подключение к хранилищу Конфигурации приложений
Этот проект будет использовать внедрение зависимостей в Функциях Azure .NET и добавит Конфигурацию приложений Azure в качестве дополнительного источника конфигурации. Функции Azure поддерживают запуск внутрипроцессно или в изолированном процессе. Выберите тот, который соответствует вашим требованиям.
Щелкните проект правой кнопкой мыши и выберите Управление пакетами NuGet. На вкладке Обзор найдите и добавьте в проект следующие пакеты NuGet:
- Microsoft.Extensions.Configuration.AzureAppConfiguration 4.1.0 или более поздней версии;
- Microsoft.Azure.Functions.Extensions 1.1.0 или более поздней версии.
Добавьте код для подключения к Конфигурации приложений Azure.
Добавьте новый файл Startup.cs с приведенным ниже кодом. В нем определен класс с именем
Startup
, который реализует абстрактный классFunctionsStartup
. С помощью атрибута сборки указывается имя типа, используемого при запуске Функций Azure.Метод
ConfigureAppConfiguration
переопределяется, при этом добавляется поставщик Конфигурации приложений Azure в качестве дополнительного источника конфигурации с помощью вызоваAddAzureAppConfiguration()
. МетодConfigure
остается пустым, так как на этом этапе не нужно регистрировать какие-либо службы.using System; using Microsoft.Azure.Functions.Extensions.DependencyInjection; using Microsoft.Extensions.Configuration; [assembly: FunctionsStartup(typeof(FunctionApp.Startup))] namespace FunctionApp { class Startup : FunctionsStartup { public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder) { string cs = Environment.GetEnvironmentVariable("ConnectionString"); builder.ConfigurationBuilder.AddAzureAppConfiguration(cs); } public override void Configure(IFunctionsHostBuilder builder) { } } }
Откройте Функцию 1.cs и добавьте следующее пространство имен, если оно еще не существует.
using Microsoft.Extensions.Configuration;
Добавьте или обновите конструктор для получения экземпляра
IConfiguration
с помощью внедрения зависимостей.private readonly IConfiguration _configuration; public Function1(IConfiguration configuration) { _configuration = configuration; }
Обновите метод
Run
, чтобы считать значения из конфигурации.[FunctionName("Function1")] public async Task<IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); // Read configuration data string keyName = "TestApp:Settings:Message"; string message = _configuration[keyName]; return message != null ? (ActionResult)new OkObjectResult(message) : new BadRequestObjectResult($"Please create a key-value with the key '{keyName}' in App Configuration."); }
Примечание.
Класс
Function1
и методRun
не должны быть статическими. Удалите модификаторstatic
, если он был создан автоматически.
Локальное тестирование функции
Задайте переменную среды с именем ConnectionString и укажите для нее ключ доступа к хранилищу службы "Конфигурация приложений". Если вы используете командную строку Windows, выполните следующую команду и перезапустите командную строку, чтобы изменения вступили в силу:
setx ConnectionString "connection-string-of-your-app-configuration-store"
Если вы используете Windows PowerShell, выполните следующую команду:
$Env:ConnectionString = "connection-string-of-your-app-configuration-store"
Если вы используете macOS или Linux, выполните следующую команду:
export ConnectionString='connection-string-of-your-app-configuration-store'
Чтобы проверить работу функции, нажмите клавишу F5. Если будет предложено, примите запрос от Visual Studio на скачивание и установку основных инструментов решения "Функции Azure" (CLI). Кроме того, возможно, вам понадобиться включить исключение брандмауэра, чтобы инструменты могли обрабатывать HTTP-запросы.
Скопируйте URL-адрес функции из выходных данных среды выполнения функций Azure.
Вставьте URL-адрес запроса в адресную строку браузера. На изображении ниже показан ответ в браузере на локальный запрос GET, возвращаемый функцией.
Очистка ресурсов
Если вы не планируете в дальнейшем использовать ресурсы, созданные при работе с этой статьей, удалите созданную группу ресурсов, чтобы избежать расходов.
Внимание
Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не те ресурсы или группу ресурсов. Если ресурсы для работы с этой статьей созданы в группе ресурсов, которая содержит другие нужные ресурсы, удалите каждый ресурс отдельно в соответствующей области ресурса, чтобы не удалять группу ресурсов.
- Войдите на портал Azure и выберитеГруппы ресурсов.
- Введите имя группы ресурсов в поле Фильтровать по имени.
- В списке результатов выберите имя группы ресурсов, чтобы просмотреть общие сведения.
- Выберите команду Удалить группу ресурсов.
- Подтвердите операцию удаления группы ресурсов. Введите имя группы ресурсов, которую необходимо удалить, и нажмите Удалить.
Через некоторое время группа ресурсов и все ее ресурсы будут удалены.
Следующие шаги
В этом кратком руководстве вы создали хранилище службы "Конфигурация приложений" и использовали его с приложением Функций Azure с помощью поставщика Конфигурации приложений. Чтобы узнать, как настроить приложение Функций Azure для динамического обновления конфигурации, перейдите к следующему учебнику.
Чтобы узнать, как с помощью удостоверения, управляемого Azure, упростить доступ к службе "Конфигурация приложений Azure", перейдите к следующему учебнику.