Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Расширение Durable Functions для Функций Azure включено в пакет NuGet Microsoft.Azure.WebJobs.Extensions.DurableTask. Это расширение необходимо установить в функциональном приложении. В этой статье показано, как установить этот пакет, чтобы иметь возможность разрабатывать Устойчивые функции на портале Azure.
Примечание.
- Если вы разрабатываете Устойчивые функции на языке C#, вместо этого рассмотрите возможность разработки с помощью Visual Studio 2019.
- Если вы разрабатываете Устойчивые функции на языке JavaScript, вместо этого рассмотрите возможность разработки с помощью Visual Studio Code.
Создайте приложение-функцию
Чтобы запустить выполнение любой функции, у вас должно быть приложение для функций. Приложение функций позволяет группировать функции в логические единицы для облегчения управления, развертывания, масштабирования и совместного использования ресурсов. Вы можете создать приложение .NET или JavaScript.
На домашней странице или в меню портала Azure выберите Создать ресурс.
На странице "Создать" выберите Приложение-функцию.
В разделе Выбор варианта хостинга выберите Потребление>Выбрать, чтобы создать приложение в плане Потребление по умолчанию. В этом бессерверном варианте размещения вы платите только за время выполнения функций. План "Премиум" также предлагает динамическое масштабирование. Когда вы работаете в плане службы приложений, необходимо управлять масштабированием вашего приложения-функции.
На странице Основные сведения используйте параметры приложения-функции как указано в таблице ниже:
Настройка Предлагаемое значение Описание Подписка Ваша подписка Подписка, по которой создается новое приложение функций. Группа ресурсов 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 durable-functions (только для JavaScript)
Если вы создаете устойчивые функции на JavaScript, необходимо установить npm пакетdurable-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.