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


Создание Устойчивых функций с помощью портала Azure

Расширение Durable Functions для Функций Azure включено в пакет NuGet Microsoft.Azure.WebJobs.Extensions.DurableTask. Это расширение необходимо установить в функциональном приложении. В этой статье показано, как установить этот пакет, чтобы иметь возможность разрабатывать Устойчивые функции на портале Azure.

Примечание.

Создайте приложение-функцию

Чтобы запустить выполнение любой функции, у вас должно быть приложение для функций. Приложение функций позволяет группировать функции в логические единицы для облегчения управления, развертывания, масштабирования и совместного использования ресурсов. Вы можете создать приложение .NET или JavaScript.

  1. На домашней странице или в меню портала Azure выберите Создать ресурс.

  2. На странице "Создать" выберите Приложение-функцию.

  3. В разделе Выбор варианта хостинга выберите Потребление>Выбрать, чтобы создать приложение в плане Потребление по умолчанию. В этом бессерверном варианте размещения вы платите только за время выполнения функций. План "Премиум" также предлагает динамическое масштабирование. Когда вы работаете в плане службы приложений, необходимо управлять масштабированием вашего приложения-функции.

  4. На странице Основные сведения используйте параметры приложения-функции как указано в таблице ниже:

    Настройка Предлагаемое значение Описание
    Подписка Ваша подписка Подписка, по которой создается новое приложение функций.
    Группа ресурсов myResourceGroup Имя новой группы ресурсов, в которой создается приложение-функция. Необходимо создать новую группу ресурсов, так как при создании приложений-функций в существующей группе ресурсов существуют известные ограничения.
    Имя приложения-функции Глобально уникальное имя Имя, которое идентифицирует ваше новое приложение-функцию. Допустимые символы: a-z (без учета регистра), 0-9 и -.
    Стек среды выполнения Предпочитаемый язык Выберите среду выполнения, которая поддерживает нужный функциональный язык программирования. Редактирование на портале доступно только для скрипта JavaScript, PowerShell, Python, TypeScript и C#.
    Чтобы создать приложение скрипта C#, которое поддерживает редактирование на портале, необходимо выбрать версию среды выполнения, которая поддерживает модель внутрипроцессного процесса.
    Библиотека классов C# и функции Java должны быть разработаны локально.
    Версия Номер версии Выберите версию установленной среды выполнения.
    Регион Предпочтительный регион Выберите регион, ближайший к вам или к другим службам, к которым могут обращаться функции.
    Операционная система Windows Операционная система предварительно выбирается на основе выбора стека среды выполнения, но при необходимости можно изменить этот параметр. Редактирование на портале поддерживается только в Windows.
  5. Примите параметры по умолчанию на оставшихся вкладках, включая поведение по умолчанию для создания новой учетной записи хранения на вкладке хранилища и нового экземпляра Application Insights на вкладке "Мониторинг ". Вы также можете использовать существующую учетную запись хранения или экземпляр Application Insights.

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

  7. Выберите значок Уведомления в правом верхнем углу портала. Вы должны увидеть сообщение Развертывание выполнено.

  8. Выберите Перейти к ресурсу для просмотра нового приложения-функции. Можно также установить флажок Закрепить на панели мониторинга. Закрепление упрощает возвращение к этому ресурсу приложения функций с панели управления.

    Снимок экрана: уведомление о развертывании.

По умолчанию для приложения-функции используется версия 2.x среды выполнения Функций Azure. Расширение Устойчивых функций работает для обеих версий 1.x и 2.x среды выполнения Функций Azure на C# и версии 2.x на JavaScript. Но шаблоны доступны, только если планируется использовать среду выполнения версии 2.x., независимо от выбранного языка.

Установите пакет npm durable-functions (только для JavaScript)

Если вы создаете устойчивые функции на JavaScript, необходимо установить npm пакетdurable-functions.

  1. На странице приложения-функции в разделе Средства разработки на левой панели выберите Дополнительные инструменты.

    Функции платформы, выбрать Kudu

  2. На странице Дополнительные инструменты выберите Перейти.

  3. В консоли Kudu выберите Консоль отладки, а затем — CMD.

    Консоль отладки Kudu

  4. Структура каталогов файлов вашего приложения функций должна отобразиться. Перейдите в папку site/wwwroot. Из нее вы можете загрузить файл package.json, перетащив его в окно каталога файлов. Ниже приведен пример файла package.json.

    {
      "dependencies": {
        "durable-functions": "^1.3.1"
      }
    }
    

    Отправка файла package.json в Kudu

  5. Когда файл package.json будет передан, запустите команду npm install в консоли удаленного выполнения Kudu.

    Запуск команды npm install в Kudu

Создание функции оркестратора

  1. В приложении-функции выберите Функции на левой панели, а затем в верхнем меню выберите Добавить.

  2. В поле поиска на странице Новая функция введите durable, а затем выберите шаблон Начальный объект HTTP устойчивых функций.

    Выберите HTTP стартер для функций Durable

  3. Для имени новой функции введите HttpStart, а затем выберите Создать функцию.

    Созданная функция используется для запуска оркестрации.

  4. Создайте другую функцию в приложении-функции, на этот раз используя шаблон Оркестратор устойчивых функций. Присвойте новой функции оркестрации имя HelloSequence.

  5. Создайте третью функцию с именем Hello, используя шаблон Действие устойчивых функций.

Тестирование оркестрации устойчивых функций

  1. Вернитесь к функции HttpStart, выберите Получить URL-адрес функции и щелкните значок Копировать в буфер обмена, чтобы скопировать URL-адрес. С помощью этого URL-адреса можно запустить функцию HelloSequence.

  2. Используйте безопасное средство тестирования HTTP для отправки HTTP-запроса POST в конечную точку URL-адреса. В этом примере приведена команда cURL, которая отправляет запрос POST в устойчивую функцию:

    curl -X POST https://{your-function-app-name}.azurewebsites.net/api/orchestrators/{functionName} --header "Content-Length: 0"
    

    В этом примере {your-function-app-name} — это домен, который является именем вашего приложения-функции, а {functionName} — это функция оркестратора HelloSequence. Ответное сообщение содержит набор конечных точек URI, с помощью которых можно отслеживать и контролировать выполнение. Это выглядит следующим образом:

    {  
       "id":"10585834a930427195479de25e0b952d",
       "statusQueryGetUri":"https://...",
       "sendEventPostUri":"https://...",
       "terminatePostUri":"https://...",
       "rewindPostUri":"https://..."
    }
    

    Обязательно выберите средство тестирования HTTP, которое обеспечивает безопасность данных. Дополнительные сведения см. в средствах тестирования HTTP.

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

        {
            "runtimeStatus": "Running",
            "input": null,
            "output": null,
            "createdTime": "2017-12-01T05:37:33Z",
            "lastUpdatedTime": "2017-12-01T05:37:36Z"
        }
    
  4. Продолжайте вызывать конечную точку statusQueryGetUri, пока состояние не изменится на Завершено, и вы увидите ответ, подобный следующему:

    {
            "runtimeStatus": "Completed",
            "input": null,
            "output": [
                "Hello Tokyo!",
                "Hello Seattle!",
                "Hello London!"
            ],
            "createdTime": "2017-12-01T05:38:22Z",
            "lastUpdatedTime": "2017-12-01T05:38:28Z"
        }
    

Ваша первая устойчивая функция создана и успешно работает в Azure.

Следующие шаги