Поделиться через


Краткое руководство: Настройка приложения Durable Functions для использования планировщика задач Durable Azure Functions (предварительная версия)

Напишите функции с отслеживанием состояния в бессерверной среде, используя Durable Functions — функцию Функций Azure. Сценарии, в которых Durable Functions полезны, включают оркестрацию микросервисов и рабочих процессов, шаблоны с сохранением состояния, такие как распределение и сбор, и длительные задачи.

Вы можете использовать Durable Task Scheduler в качестве бэкенда для Durable Functions, чтобы хранить состояние оркестрации и среды выполнения сущностей.

В этом кратком руководстве вы сможете:

  • Настройте существующее приложение устойчивых функций для использования планировщика устойчивых задач.
  • Настройте эмулятор устойчивых задач для локальной разработки.
  • Разверните приложение в Azure в плане службы приложений с помощью Visual Studio Code.
  • Отслеживайте состояние приложения и центра задач на панели мониторинга планировщика устойчивых задач.

Примечание.

Планировщик устойчивых задач в настоящее время поддерживает только устойчивые функции, работающие в планах Службы приложенийи функций уровня "Премиум".

Предпосылки

В этом кратком руководстве предполагается, что у вас уже есть проект Azure Functions на локальном компьютере.

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

Кроме того, вам понадобится следующее:

Добавьте пакет планировщика устойчивых задач

Установите последнюю версию пакета 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"
  }
}

Настройка эмулятора устойчивых задач

  1. Загрузите образ Docker, содержащий эмулятор.

    docker pull mcr.microsoft.com/dts/dts-emulator:latest
    
  2. Запустите эмулятор.

    docker run -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latest
    

    Следующие выходные данные указывают, что эмулятор успешно запущен.

    Снимок экрана: эмулятор успешно запущен в терминале.

  3. Запишите порты, экспонированные в Docker Desktop. Планировщик предоставляет несколько портов для различных целей:

    • 8080: конечная точка gRPC, которая позволяет приложению подключаться к планировщику
    • 8082: Точка доступа для панели мониторинга планировщика устойчивых задач

    Снимок экрана: порты в Docker.

Локальное тестирование.

  1. Перейдите в корневой каталог приложения и запустите Azurite.

    azurite start
    
  2. Запустите приложение.

    func start
    

    Вы увидите список функций в приложении. Если вы создали приложение, следуя одному из кратких руководств по Durable Functions, вы увидите примерно следующие результаты:

    Снимок экрана: функции, перечисленные при локальном запуске приложения.

  3. Запустите экземпляр оркестрации, отправив HTTP-запрос POST на конечный URL-адрес с помощью выбранного вами инструмента тестирования HTTP.

  4. Скопируйте значение statusQueryGetUri URL-адреса и вставьте его в адресную строку браузера. Вам должно быть видно состояние экземпляра оркестрации:

      {
        "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"
      }
    
  5. Чтобы просмотреть дополнительные сведения об экземпляре оркестрации, перейдите к http://localhost:8082/ панели мониторинга планировщика устойчивых задач.

  6. Щелкните узел задач по умолчанию, чтобы просмотреть его панель мониторинга.

Примечание.

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

Эмулятор планировщика устойчивых задач хранит данные оркестрации в памяти, что означает, что все данные теряются при завершении работы.

Возникли проблемы при тестировании? См. руководство по устранению неполадок.

Запуск приложения в Azure

Создание необходимых ресурсов

Создайте экземпляр планировщика устойчивых задач и приложение Azure Functions в Azure, следуя интегрированному потоку создания приложения функций. Этот процесс автоматически настраивает идентификационный доступ и конфигурирует необходимые переменные среды, чтобы приложение могло обращаться к планировщику.

  1. Перейдите в поле создания приложения-функции и выберите «Функции Premium» или «Служба приложений» в качестве варианта размещения.

    Снимок экрана: параметры размещения приложений-функций и выбор службы приложений.

  2. В панели "Создание приложения-функции (служба приложений) введите информацию во вкладке Основное.

    Снимок экрана: вкладка

    Поле Описание
    Подписка Выберите подписку Azure.
    Группа ресурсов Выберите существующую группу ресурсов или нажмите кнопку "Создать" , чтобы создать новую.
    Имя функционального приложения Создайте уникальное имя приложения-функции.
    Вы хотите развернуть код или образ контейнера? Сохраните выбранный параметр Code .
    Стек выполнения среды Выберите среду выполнения, которую вы используете для этого быстрого старта.
    Версия Выберите версию стека среды выполнения.
    Область Выберите один из поддерживаемых регионов.
    Операционная система Выберите операционную систему.
  3. Перейдите на вкладку "Устойчивые функции ".

  4. Выберите Durable Task Scheduler в качестве поставщика серверной части для ваших устойчивых функций.

  5. Создайте ресурс планировщика. Это действие автоматически создает концентратор задач.

    Снимок экрана: создание приложения-функции плана службы приложений.

    Поле Описание
    Система хранения данных Выберите планировщик устойчивых задач.
    Область Рекомендуется, чтобы регионы планировщика и приложения-функции были одинаковыми.
    Планировщик устойчивых задач Используйте предлагаемое имя планировщика или нажмите Создать новое, чтобы создать пользовательское имя.
    Планирование На данный момент доступен только Выделенный.
    Единицы емкости В настоящее время в качестве параметра можно выбрать только одну единицу емкости.
  6. Нажмите кнопку "Рецензирование" и "Создать ", чтобы просмотреть создание ресурса.

    Управляемое удостоверение, назначаемое пользователем, с необходимым разрешением управления доступом на основе ролей (RBAC) создается автоматически и добавляется в приложение-функцию. Вы можете найти в сводном обзоре информацию, связанную с ресурсом управляемого удостоверения, например:

    • Роль, назначенная ему (Вкладчик данных устойчивых задач)

    • Назначение, заданное на уровне узла задач

      Снимок экрана: выбранные поля и свойства на вкладке

  7. Нажмите кнопку "Создать после прохождения проверки".

Развертывание ресурсов может занять около 15–20 минут. После этого вы можете развернуть приложение в Azure.

Разверните ваше приложение-функцию в Azure

Это важно

При развертывании на существующее функциональное приложение его содержимое всегда перезаписывается в Azure.

  1. В командной палитре введите и выберите Функции Azure: Развернуть в функциональном приложении.

  2. Выберите только что созданное функциональное приложение. При появлении запроса на перезапись предыдущих развертываний выберите «Развернуть», чтобы развернуть функциональный код в новом ресурсе функционального приложения.

  3. После завершения развертывания выберите "Просмотреть выходные данные ", чтобы просмотреть результаты создания и развертывания, включая созданные ресурсы 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

Проверка состояния оркестрации

Проверьте состояние экземпляра оркестрации и детали действий на панели мониторинга планировщика устойчивых операций. Для доступа к панели мониторинга требуется войти в систему.

Примечание.

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

  1. Перейдите к ресурсу планировщика устойчивых задач на портале.

  2. Щелкните название узла задач.

  3. В меню слева выберите Управление доступом (IAM).

  4. Нажмите кнопку "Добавить ", чтобы добавить назначение роли.

    Снимок экрана: добавление назначения ролей на панели управления доступом на портале.

  5. Найдите и выберите вкладчика данных для устойчивых задач. Нажмите кнопку Далее.

    Скриншот выбора назначения роли Data Contributor для Durable Task в портале.

  6. На вкладке "Участники" для назначения доступа выберите "Пользователь", "Группа" или "Субъект-служба".

  7. Для участников нажмите + Выбрать участников.

  8. В области "Выбор членов" найдите имя или сообщение электронной почты:

    Снимок экрана с выбором типа управляемого удостоверения, назначенного пользователем, на портале.

  9. Выберите сообщение электронной почты и нажмите кнопку "Выбрать ".

  10. Нажмите "Рецензирование + назначение", чтобы завершить назначение роли.

  11. После назначения роли щелкните "Обзор" в меню слева ресурса концентратора задач и перейдите по URL-адресу панели мониторинга, расположенному в верхней части раздела Essentials .

Очистка ресурсов

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

Дальнейшие действия