Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Напишите функции с отслеживанием состояния в бессерверной среде, используя Durable Functions — функцию Функций Azure. Сценарии, в которых Durable Functions полезны, включают оркестрацию микросервисов и рабочих процессов, шаблоны с сохранением состояния, такие как распределение и сбор, и длительные задачи.
Вы можете использовать Durable Task Scheduler в качестве бэкенда для Durable Functions, чтобы хранить состояние оркестрации и среды выполнения сущностей.
В этом кратком руководстве вы сможете:
- Настройте существующее приложение устойчивых функций для использования планировщика устойчивых задач.
- Настройте эмулятор устойчивых задач для локальной разработки.
- Разверните приложение в Azure в плане службы приложений с помощью Visual Studio Code.
- Отслеживайте состояние приложения и центра задач на панели мониторинга планировщика устойчивых задач.
Примечание.
Планировщик устойчивых задач в настоящее время поддерживает только устойчивые функции, работающие в планах Службы приложенийи функций уровня "Премиум".
Предпосылки
В этом кратком руководстве предполагается, что у вас уже есть проект Azure Functions на локальном компьютере.
- Устойчивые функции, добавленные в проект, включая:
- Функция оркестратора.
- Клиентская функция, которая активирует приложение "Durable Functions".
- Проект, настроенный для локальной отладки.
Если вы не соответствуете этим предварительным требованиям, мы рекомендуем начать с одного из следующих кратких руководств, чтобы настроить локальный проект Functions.
Кроме того, вам понадобится следующее:
- Docker установлен для запуска эмулятора планировщика устойчивых задач.
- Установлен Azurite.
- Средство тестирования HTTP, которое обеспечивает безопасность данных.
Добавьте пакет планировщика устойчивых задач
Установите последнюю версию пакета Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged с помощью команды dotnet add package :
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.DurableTask.AzureManaged --prerelease
Примечание.
Расширению Microsoft.Azure.Functions.Worker.Extensions.DurableTask планировщика устойчивых задач требуется версия 1.2.2 или более поздняя.
В host.jsonобновите extensionBundle свойство, чтобы использовать предварительную версию, содержащую пакет планировщика устойчивых задач:
{
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Preview",
"version": "[4.29.0, 5.0.0)"
}
}
Обновите host.json
Обновите host.json следующим образом, чтобы использовать Устойчивый Планировщик Задач в качестве системы управления.
{
"extensions": {
"durableTask": {
"hubName": "%TASKHUB_NAME%",
"storageProvider": {
"type": "azureManaged",
"connectionStringName": "DURABLE_TASK_SCHEDULER_CONNECTION_STRING"
}
}
}
}
Настройте local.settings.json
Добавьте сведения о подключении для локальной разработки:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "<DEPENDENT ON YOUR PROGRAMMING LANGUAGE>",
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"DURABLE_TASK_SCHEDULER_CONNECTION_STRING": "Endpoint=http://localhost:8080;Authentication=None",
"TASKHUB_NAME": "default"
}
}
Настройка эмулятора устойчивых задач
Загрузите образ Docker, содержащий эмулятор.
docker pull mcr.microsoft.com/dts/dts-emulator:latestЗапустите эмулятор.
docker run -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latestСледующие выходные данные указывают, что эмулятор успешно запущен.
Запишите порты, экспонированные в Docker Desktop. Планировщик предоставляет несколько портов для различных целей:
-
8080: конечная точка gRPC, которая позволяет приложению подключаться к планировщику -
8082: Точка доступа для панели мониторинга планировщика устойчивых задач
-
Локальное тестирование.
Перейдите в корневой каталог приложения и запустите Azurite.
azurite startЗапустите приложение.
func startВы увидите список функций в приложении. Если вы создали приложение, следуя одному из кратких руководств по Durable Functions, вы увидите примерно следующие результаты:
Запустите экземпляр оркестрации, отправив HTTP-запрос
POSTна конечный URL-адрес с помощью выбранного вами инструмента тестирования HTTP.Скопируйте значение
statusQueryGetUriURL-адреса и вставьте его в адресную строку браузера. Вам должно быть видно состояние экземпляра оркестрации:{ "name": "DurableFunctionsOrchestrationCSharp1", "instanceId": "b50f8b723f2f44149ab9fd2e3790a0e8", "runtimeStatus": "Completed", "input": null, "customStatus": null, "output": [ "Hello Tokyo!", "Hello Seattle!", "Hello London!" ], "createdTime": "2025-02-21T21:09:59Z", "lastUpdatedTime": "2025-02-21T21:10:00Z" }Чтобы просмотреть дополнительные сведения об экземпляре оркестрации, перейдите к http://localhost:8082/ панели мониторинга планировщика устойчивых задач.
Щелкните узел задач по умолчанию, чтобы просмотреть его панель мониторинга.
Примечание.
Дополнительные сведения о панели мониторинга планировщика устойчивых задач.
Эмулятор планировщика устойчивых задач хранит данные оркестрации в памяти, что означает, что все данные теряются при завершении работы.
Возникли проблемы при тестировании? См. руководство по устранению неполадок.
Запуск приложения в Azure
Создание необходимых ресурсов
Создайте экземпляр планировщика устойчивых задач и приложение Azure Functions в Azure, следуя интегрированному потоку создания приложения функций. Этот процесс автоматически настраивает идентификационный доступ и конфигурирует необходимые переменные среды, чтобы приложение могло обращаться к планировщику.
Перейдите в поле создания приложения-функции и выберите «Функции Premium» или «Служба приложений» в качестве варианта размещения.
В панели "Создание приложения-функции (служба приложений) введите информацию во вкладке Основное.
Поле Описание Подписка Выберите подписку Azure. Группа ресурсов Выберите существующую группу ресурсов или нажмите кнопку "Создать" , чтобы создать новую. Имя функционального приложения Создайте уникальное имя приложения-функции. Вы хотите развернуть код или образ контейнера? Сохраните выбранный параметр Code . Стек выполнения среды Выберите среду выполнения, которую вы используете для этого быстрого старта. Версия Выберите версию стека среды выполнения. Область Выберите один из поддерживаемых регионов. Операционная система Выберите операционную систему. Перейдите на вкладку "Устойчивые функции ".
Выберите Durable Task Scheduler в качестве поставщика серверной части для ваших устойчивых функций.
Создайте ресурс планировщика. Это действие автоматически создает концентратор задач.
Поле Описание Система хранения данных Выберите планировщик устойчивых задач. Область Рекомендуется, чтобы регионы планировщика и приложения-функции были одинаковыми. Планировщик устойчивых задач Используйте предлагаемое имя планировщика или нажмите Создать новое, чтобы создать пользовательское имя. Планирование На данный момент доступен только Выделенный. Единицы емкости В настоящее время в качестве параметра можно выбрать только одну единицу емкости. Нажмите кнопку "Рецензирование" и "Создать ", чтобы просмотреть создание ресурса.
Управляемое удостоверение, назначаемое пользователем, с необходимым разрешением управления доступом на основе ролей (RBAC) создается автоматически и добавляется в приложение-функцию. Вы можете найти в сводном обзоре информацию, связанную с ресурсом управляемого удостоверения, например:
Роль, назначенная ему (Вкладчик данных устойчивых задач)
Назначение, заданное на уровне узла задач
Нажмите кнопку "Создать после прохождения проверки".
Развертывание ресурсов может занять около 15–20 минут. После этого вы можете развернуть приложение в Azure.
Разверните ваше приложение-функцию в Azure
Это важно
При развертывании на существующее функциональное приложение его содержимое всегда перезаписывается в Azure.
В командной палитре введите и выберите Функции Azure: Развернуть в функциональном приложении.
Выберите только что созданное функциональное приложение. При появлении запроса на перезапись предыдущих развертываний выберите «Развернуть», чтобы развернуть функциональный код в новом ресурсе функционального приложения.
После завершения развертывания выберите "Просмотреть выходные данные ", чтобы просмотреть результаты создания и развертывания, включая созданные ресурсы Azure. Если вы пропустили уведомление, выберите значок колокольчика в правом нижнем углу, чтобы увидеть его снова.
Приложения в плане "Функции Премиум"
Если приложение работает в плане "Функции Премиум", включите параметр мониторинга масштабирования среды выполнения после развертывания, чтобы обеспечить автомасштабирование приложения на основе нагрузки:
az resource update -g <resource_group> -n <function_app_name>/config/web --set properties.functionsRuntimeScaleMonitoringEnabled=1 --resource-type Microsoft.Web/sites
Тестируйте функциональное приложение
Выполните следующую команду, чтобы получить URL-адрес функции:
az functionapp function list --resource-group <RESOURCE_GROUP_NAME> --name <FUNCTION_APP_NAME> --query '[].{Function:name, URL:invokeUrlTemplate}' --output json
Проверка состояния оркестрации
Проверьте состояние экземпляра оркестрации и детали действий на панели мониторинга планировщика устойчивых операций. Для доступа к панели мониторинга требуется войти в систему.
Примечание.
В следующей инструкции показана область назначения ролей для определенного концентратора задач. Если вам нужен доступ ко всем центрам задач в планировщике, выполните назначение на уровне планировщика.
Перейдите к ресурсу планировщика устойчивых задач на портале.
Щелкните название узла задач.
В меню слева выберите Управление доступом (IAM).
Нажмите кнопку "Добавить ", чтобы добавить назначение роли.
Найдите и выберите вкладчика данных для устойчивых задач. Нажмите кнопку Далее.
На вкладке "Участники" для назначения доступа выберите "Пользователь", "Группа" или "Субъект-служба".
Для участников нажмите + Выбрать участников.
В области "Выбор членов" найдите имя или сообщение электронной почты:
Выберите сообщение электронной почты и нажмите кнопку "Выбрать ".
Нажмите "Рецензирование + назначение", чтобы завершить назначение роли.
После назначения роли щелкните "Обзор" в меню слева ресурса концентратора задач и перейдите по URL-адресу панели мониторинга, расположенному в верхней части раздела Essentials .
Очистка ресурсов
Если вам больше не нужны ресурсы, созданные для выполнения краткого руководства, чтобы избежать связанных затрат в подписке Azure, удалите группу ресурсов и все связанные ресурсы.
Дальнейшие действия
- Дополнительные сведения о панели мониторинга планировщика устойчивых задач.
- Устранение ошибок, которые могут возникнуть при использовании планировщика устойчивых задач.