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

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

Примечание

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

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

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

  2. На странице Создать щелкните Вычислительные ресурсы>Приложение-функция.

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

    Параметр Рекомендуемое значение Описание
    Подписка Ваша подписка Подписка, в которой вы создадите новое приложение-функцию.
    Группа ресурсов myResourceGroup Имя для новой группы ресурсов, в которой создается приложение-функция.
    Имя приложения-функции Глобально уникальное имя Имя, которое идентифицирует ваше новое приложение-функцию. Допустимые символы: a-z (без учета регистра), 0-9и -.
    Опубликовать Код Параметр для публикации файлов кода или контейнера Docker.
    Стек среды выполнения Предпочитаемый язык Выберите среду выполнения, которая поддерживает нужный функциональный язык программирования. Редактирование на портале доступно только для скриптов JavaScript, PowerShell, TypeScript и C#. Функции библиотеки классов C#, а также функции Java и Python необходимо разрабатывать локально.
    Версия номер версии; Выберите версию установленной среды выполнения.
    Регион Предпочтительный регион Выберите регион, ближайший к вам или к другим службам, к которым могут обращаться функции.
  4. Выберите Далее: Размещение. Введите следующие параметры на странице Размещение:

    Параметр Рекомендуемое значение Описание
    Учетная запись хранения Глобально уникальное имя Создайте учетную запись хранения для использования приложением-функцией. Имя учетной записи хранения должно содержать от 3 до 24 символов и состоять только из цифр и строчных букв. Можно также использовать существующую учетную запись при условии, что она соответствует требованиям учетной записи хранилища.
    Операционная система Windows Операционная система предварительно выбирается с учетом выбранного стека среды выполнения, но при необходимости ее можно изменить. Редактирование на портале поддерживается только в Windows.
    План Потребление (бессерверное) План размещения, который определяет выделение ресурсов в приложении-функции. В плане Потребление по умолчанию ресурсы добавляются динамически в соответствии с потребностями функций. При таком бессерверном размещении вы платите только за время выполнения функций. Когда выполняется план службы приложений необходимо управлять масштабированием приложения-функции.
  5. Выберите Далее: Мониторинг. Введите следующие параметры на странице Мониторинг:

    Параметр Рекомендуемое значение Описание
    Application Insights По умолчанию Создает ресурс Application Insights с таким же именем приложения в ближайшем поддерживаемом регионе. Развернув этот параметр или выбрав Создать, можно изменить имя Application Insights или выбрать другой регион в географическом регионе Azure, где будут храниться данные.
  6. Выберите Просмотр и создание , чтобы просмотреть выбранные параметры конфигурации приложения.

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

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

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

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

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

Установка пакета npm для расширения "Устойчивые функции" (только JavaScript)

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

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

    Выбор Функций, элемента

  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 устойчивых функций.

    Выбор

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

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

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

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

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

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

  2. Используя средство HTTP, например Postman или cURL, отправьте запрос 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://..."
    }
    
  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.

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