Создание Устойчивых функций с помощью портала Azure
Расширение устойчивых функций для Функций Azure предоставляется в пакете NuGet Microsoft.Azure.WebJobs.Extensions.DurableTask. Это расширение необходимо установить в приложении-функции. В этой статье показано, как установить этот пакет, чтобы иметь возможность разрабатывать Устойчивые функции на портале Azure.
Примечание.
- Если вы разрабатываете Устойчивые функции на языке C#, вместо этого рассмотрите возможность разработки с помощью Visual Studio 2019.
- Если вы разрабатываете Устойчивые функции на языке JavaScript, вместо этого рассмотрите возможность разработки с помощью Visual Studio Code.
Создание приложения-функции
Для выполнения любых функций вам понадобится приложение-функция, позволяющее группировать функции в логические единицы и упростить развертывание, масштабирование и совместное использование ресурсов, а также управление ими. Вы можете создать приложение .NET или JavaScript.
На домашней странице или в меню портала Azure выберите Создать ресурс.
На странице Создать щелкните Вычислительные ресурсы>Приложение-функция.
В разделе "Выбор варианта размещения" выберите "Выбор потребления>", чтобы создать приложение в плане потребления по умолчанию. В этом бессерверном варианте размещения вы платите только за время выполнения функций. План "Премиум" также предлагает динамическое масштабирование. Когда выполняется план службы приложений необходимо управлять масштабированием приложения-функции.
На странице Основные сведения используйте параметры приложения-функции как указано в таблице ниже:
Параметр Предлагаемое значение Description Подписка Ваша подписка Подписка, в которой создается новое приложение-функцию. Группа ресурсов myResourceGroup Имя новой группы ресурсов, в которой создается приложение-функция. Необходимо создать новую группу ресурсов, так как при создании приложений-функций в существующей группе ресурсов существуют известные ограничения. Имя приложения-функции Глобально уникальное имя Имя, которое идентифицирует ваше новое приложение-функцию. Допустимые символы: a-z
(без учета регистра),0-9
и-
.Стек среды выполнения Предпочитаемый язык Выберите среду выполнения, которая поддерживает нужный функциональный язык программирования. Редактирование на портале доступно только для скрипта JavaScript, PowerShell, Python, TypeScript и C#.
Чтобы создать приложение скрипта C#, которое поддерживает редактирование на портале, необходимо выбрать версию среды выполнения, которая поддерживает модель внутрипроцессного процесса.
Библиотека классов C# и функции Java должны быть разработаны локально.Версия Номер версии Выберите версию установленной среды выполнения. Регион Предпочтительный регион Выберите регион, ближайший к вам или к другим службам, к которым могут обращаться функции. Операционная система Windows Операционная система предварительно выбирается на основе выбора стека среды выполнения, но при необходимости можно изменить этот параметр. Редактирование на портале поддерживается только в Windows. Примите параметры по умолчанию на оставшихся вкладках, включая поведение по умолчанию для создания новой учетной записи хранения на вкладке хранилища и нового экземпляра Application Insights на вкладке "Мониторинг ". Вы также можете использовать существующую учетную запись хранения или экземпляр Application Insights.
Выберите "Проверка и создание ", чтобы просмотреть выбранную конфигурацию приложения, а затем выберите "Создать ", чтобы подготовить и развернуть приложение-функцию.
Выберите значок Уведомления в правом верхнем углу портала. Вы должны увидеть сообщение Развертывание выполнено.
Выберите Перейти к ресурсу для просмотра нового приложения-функции. Можно также установить флажок Закрепить на панели мониторинга. Это упростит возвращение к этому ресурсу приложения-функции из панели мониторинга.
По умолчанию для приложения-функции используется версия 2.x среды выполнения Функций Azure. Расширение Устойчивых функций работает для обеих версий 1.x и 2.x среды выполнения Функций Azure на C# и версии 2.x на JavaScript. Но шаблоны доступны, только если планируется использовать среду выполнения версии 2.x., независимо от выбранного языка.
Установка пакета npm для расширения "Устойчивые функции" (только JavaScript)
Если вы создаете Устойчивые функции на JavaScript, необходимо установить пакет npmdurable-functions
.
На странице приложения-функции в разделе Средства разработки на левой панели выберите Дополнительные инструменты.
На странице Дополнительные инструменты выберите Перейти.
В консоли Kudu выберите Консоль отладки, а затем — CMD.
Появится структура каталогов файлов приложения-функции. Перейдите в папку
site/wwwroot
. Из нее вы можете отправить файлpackage.json
, перетащив его в окно каталогов файлов. Ниже приведен пример файлаpackage.json
.{ "dependencies": { "durable-functions": "^1.3.1" } }
Когда файл
package.json
будет передан, запустите командуnpm install
в консоли удаленного выполнения Kudu.
Создание функции оркестратора
В приложении-функции выберите Функции на левой панели, а затем в верхнем меню выберите Добавить.
В поле поиска на странице Новая функция введите
durable
, а затем выберите шаблон Начальный объект HTTP устойчивых функций.Для имени новой функции введите
HttpStart
, а затем выберите Создать функцию.Созданная функция используется для запуска оркестрации.
Создайте другую функцию в приложении-функции, на этот раз используя шаблон Оркестратор устойчивых функций. Присвойте новой функции оркестрации имя
HelloSequence
.Создайте третью функцию с именем
Hello
, используя шаблон Действие устойчивых функций.
Тестирование оркестрации устойчивых функций
Вернитесь к функции HttpStart, выберите Получить URL-адрес функции и щелкните значок Копировать в буфер обмена, чтобы скопировать URL-адрес. С помощью этого URL-адреса можно запустить функцию HelloSequence.
Используйте безопасное средство тестирования 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.
Вызовите URI конечной точки
statusQueryGetUri
, и вы увидите текущее состояние устойчивой функции, которое может выглядеть следующим образом:{ "runtimeStatus": "Running", "input": null, "output": null, "createdTime": "2017-12-01T05:37:33Z", "lastUpdatedTime": "2017-12-01T05:37:36Z" }
Продолжайте вызывать конечную точку
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.