Учебник. Использование подключений на основе удостоверений с триггерами и привязками
В этом руководстве показано, как настроить Функции Azure для подключения к очередям Служебная шина Azure с помощью управляемых удостоверений, а не секретов, хранящихся в параметрах приложения-функции. Этот учебник продолжает учебник Создание приложения-функции без секретов хранилища по умолчанию в его определении. Дополнительные сведения о подключениях на основе удостоверений см. в разделе Настройка подключения на основе удостоверений.
Хотя представленные процедуры работают обычно для всех языков, сейчас этот учебник поддерживает только функции библиотеки классов C# в Windows.
В этом руководстве описано следующее:
- Создайте пространство имен и очередь служебной шины.
- Настройте приложение-функцию с помощью управляемого удостоверения.
- Создайте назначение роли, предоставляющее это разрешение на чтение из очереди служебная шина.
- Создание и развертывание приложения-функции с помощью триггера Служебной шины.
- Проверьте подключение на основе удостоверений к служебная шина.
Предварительные требования
Изучите предыдущий учебник Создание приложения-функции с подключениями на основе удостоверений.
Создание пространства имен и очереди служебная шина
На портале Azure выберите Создать ресурс (+).
На странице "Создание ресурса" найдите и выберите служебная шина, а затем нажмите кнопку "Создать".
На странице Основы воспользуйтесь следующей таблицей, чтобы настроить параметры пространства имен Служебной шины. Для остальных параметров используйте значения по умолчанию.
Вариант Предлагаемое значение Description Подписка Ваша подписка Подписка, в рамках которой создан ресурс. Группа ресурсов myResourceGroup Группа ресурсов, которую вы создали с помощью приложения функции. Имя пространства имен Глобально уникальное имя Пространство имен вашего экземпляра, из которого будет срабатывать триггер для функции. Так как пространство имен общедоступно, используйте имя, которое глобально уникально в Azure. Имя должно включать от 6 до 50 символов, содержать только буквенно-цифровые символы и дефисы и не может начинаться с числа. Местонахождение myFunctionRegion Регион, в котором вы создали приложение функцию. Ценовая категория Базовая Уровень "Базовый" Служебной шины. Выберите Review + create (Просмотреть и создать). После завершения проверки нажмите кнопку Создать.
После завершения развертывания выберите Перейти к ресурсу.
В новом пространстве имен Служебной шины выберите + Очередь, чтобы добавить очередь.
Введите myinputqueue в качестве имени новой очереди и нажмите кнопку "Создать".
Теперь, когда у вас есть очередь, можно добавить назначение ролей в управляемое удостоверение приложения-функции.
Настройка триггера Служебной шины с помощью управляемого удостоверения
Чтобы использовать триггеры служебная шина с подключениями на основе удостоверений, необходимо добавить назначение роли приемника данных Служебная шина Azure в управляемое удостоверение в приложении-функции. Эта роль требуется при использовании управляемых удостоверений для активации служебная шина пространства имен. Вы также можете добавить собственную учетную запись в эту роль, что позволяет подключиться к пространству имен служебная шина во время локального тестирования.
Примечание.
Требования к роли для использования подключений на основе удостоверений отличаются в зависимости от службы и способа подключения к ней. Разные триггеры, привязки входных и исходящих данных также могут иметь разные требования. Дополнительные сведения о конкретных требованиях к роли см. в документации по триггеру и привязке для службы.
В созданном служебная шина пространстве имен выберите элемент управления доступом (IAM). На этой странице можно просмотреть и настроить доступ к ресурсу.
Нажмите кнопку "+ Добавить " и выберите " Добавить назначение роли".
Найдите Служебная шина Azure приемник данных, выберите его и нажмите кнопку "Далее".
На вкладке Участники в разделе Назначение доступа для выберите Управляемое удостоверение
Выберите элементы , чтобы открыть панель "Выбор управляемых удостоверений".
Убедитесь, что для значения Подписка указана подписка, в которой вы создали ресурсы ранее.
В селекторе Управляемое удостоверение выберите Приложение-функция из категории Управляемое удостоверение, назначаемое системой. Метка приложения-функции может иметь число в скобках рядом с ним, указывая количество приложений в подписке с удостоверениями, назначенными системой.
Ваше приложение отобразится в списке под полями для ввода данных. Если вы не видите его, воспользуйтесь полем Выбор, чтобы отфильтровать результаты по имени вашего приложения.
Выберите приложение. Оно должно переместиться вниз в раздел Выбранные участники. Выберите Выбрать.
Вернитесь на экран "Добавить назначение ролей", выберите "Рецензирование" и " Назначить". Просмотрите конфигурацию и нажмите кнопку "Проверить и назначить".
Вы предоставили приложению-функции доступ к пространству имен служебная шина с помощью управляемых удостоверений.
Подключение к служебная шина в приложении-функции
На портале найдите приложение-функцию, созданное при работе с предыдущим учебником, или перейдите к нему на странице Приложение-функция.
В приложении-функции разверните узел "Параметры" и выберите переменные среды.
На вкладке "Параметры приложения" нажмите кнопку +Добавить , чтобы создать параметр. Используйте сведения в следующей таблице, чтобы ввести имя и значение для нового параметра:
Имя. Стоимость Описание ServiceBusConnection__fullyQualifiedNamespace <SERVICE_BUS_NAMESPACE>.servicebus.windows.net Этот параметр подключает приложение-функцию к служебная шина с помощью подключения на основе удостоверений вместо секретов. Выберите "Применить", а затем нажмите кнопку "Применить" и "Подтвердить", чтобы сохранить изменения и перезапустить функцию приложения.
Примечание.
При использовании Конфигурация приложений Azure или Key Vault для предоставления параметров для подключений к управляемому __
удостоверению имена должны использовать допустимый разделитель ключей, например :
или /
вместо проверки правильности разрешения имен.
Например, ServiceBusConnection:fullyQualifiedNamespace
.
Теперь, когда вы подготовили приложение-функцию для подключения к пространству имен служебная шина с помощью управляемого удостоверения, можно добавить новую функцию, которая использует триггер служебная шина в локальный проект.
Добавление функции для триггеров Служебной шины
func init
Выполните команду, как показано ниже, чтобы создать проект функций в папке с именем LocalFunctionProj с указанной средой выполнения:func init LocalFunctionProj --dotnet
Перейдите в папку проекта:
cd LocalFunctionProj
В корневой папке проекта выполните следующую команду:
dotnet add package Microsoft.Azure.WebJobs.Extensions.ServiceBus --version 5.2.0
Эта команда заменяет версию пакета расширения служебная шина по умолчанию версией, поддерживающей управляемые удостоверения.
Выполните следующую команду, чтобы добавить функцию для триггеров Служебной шины в проект:
func new --name ServiceBusTrigger --template ServiceBusQueueTrigger
Эта команда добавляет код для нового триггера служебная шина и ссылки на пакет расширения. Для этого триггера необходимо добавить параметр подключения к пространству имен служебная шина.
Откройте новый файл проекта ServiceBusTrigger.cs и замените
ServiceBusTrigger
класс следующим кодом:public static class ServiceBusTrigger { [FunctionName("ServiceBusTrigger")] public static void Run([ServiceBusTrigger("myinputqueue", Connection = "ServiceBusConnection")]string myQueueItem, ILogger log) { log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem}"); } }
Этот пример кода заменяет имя очереди на
myinputqueue
, которое не отличается от имени созданной ранее очереди. Это также задает для подключения Служебной шины имяServiceBusConnection
. Это имя — это пространство имен служебная шина, используемое подключениемServiceBusConnection__fullyQualifiedNamespace
на основе удостоверений, настроенным на портале.
Примечание.
Если вы попытаетесь запустить функции сейчас, func start
вы получите сообщение об ошибке. Это вызвано тем, что вы не определили подключение на основе удостоверений локально. Если вы хотите локально запустить функцию, задайте параметр ServiceBusConnection__fullyQualifiedNamespace
local.settings.json
приложения, как это было в [предыдущем разделе](#connect-to-the service-bus-in-your-function-app). Кроме того, необходимо назначить роль идентификатору разработчика. Дополнительные сведения см. в статье о локальной разработке с подключениями на основе удостоверений.
Примечание.
При использовании Конфигурации приложений Azure или Key Vault для предоставления параметров подключений Управляемого удостоверения имена параметров должны использовать допустимый разделитель ключей, например :
или /
, вместо __
, чтобы обеспечить правильное разрешение имен.
Например, ServiceBusConnection:fullyQualifiedNamespace
.
Публикация обновленного проекта
Выполните следующую команду, чтобы локально создать файлы для пакета развертывания:
dotnet publish --configuration Release
Перейдите к подпапке
\bin\Release\netcoreapp3.1\publish
и создайте ZIP-файл из ее содержимого.Опубликуйте ZIP-файл, выполнив следующую команду и заменив параметры
FUNCTION_APP_NAME
,RESOURCE_GROUP_NAME
иPATH_TO_ZIP
на нужные вам:az functionapp deploy -n FUNCTION_APP_NAME -g RESOURCE_GROUP_NAME --src-path PATH_TO_ZIP
Теперь, когда вы обновили приложение-функцию с новым триггером, вы можете убедиться, что оно работает с помощью удостоверения.
Проверка изменений
На портале найдите
Application Insights
и выберите Application Insights в разделе Службы.В Application Insights выберите или найдите именованный экземпляр.
В своем экземпляре выберите Интерактивные метрики в разделе Изучение.
Откройте предыдущую вкладку и откройте портал Azure на новой вкладке. На новой вкладке перейдите к пространству имен служебная шина, выберите очереди в меню слева.
Выберите очередь с именем
myinputqueue
.В меню слева выберите служебная шина Explorer.
Отправьте тестовое сообщение.
Выберите открытую вкладку Интерактивные метрики и проверьте выполнение очереди Служебной шины.
Поздравляем! Вы успешно настроили триггер очереди служебная шина с помощью управляемого удостоверения.
Очистка ресурсов
На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.
В меню или на странице Главная портала Azure выберите Группы ресурсов. Затем на странице Группы ресурсов выберите myResourceGroup.
На странице myResourceGroup убедитесь, что перечислены те ресурсы, которые нужно удалить.
Выберите Удалить группу ресурсов, введите myResourceGroup в текстовое поле для подтверждения и щелкните Удалить.
Следующие шаги
С помощью этого учебника вы создали приложение-функцию с подключениями на основе удостоверений.
Перейдите к следующей статье, чтобы узнать, как управлять удостоверениями.