Что такое Устойчивые функции?

Завершено

Устойчивые функции позволяют реализовывать сложные функции с отслеживанием состояния в бессерверной среде.

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

В этом модуле описаны преимущества Устойчивых функций. Вы узнаете о разных типах функций и о ключевых понятиях, связанных с Устойчивыми функциями.

Устойчивые функции

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

Устойчивые функции масштабируется по мере необходимости и предоставляет экономичные средства реализации сложных рабочих процессов в облаке. Ниже представлены некоторые преимущества Устойчивых функций:

  • Вы можете создавать код на основе событий. Устойчивые функции могут асинхронно ожидать одно или несколько внешних событий и выполнять ряд задач в ответ на эти события.

  • Вы можете связывать функции. Можно реализовать распространенные шаблоны, например разветвление с объединением, когда одна функция вызывает в параллельном режиме несколько других и накапливает результаты их выполнения.

  • Вы можете оркестировать и координировать функции, а также указывать порядок их выполнения.

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

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

  • Вы можете определять рабочие процессы в коде. Вам не нужно создавать описание JSON или применять средство проектирования рабочего процесса.

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

  • Azure автоматически контролирует ход выполнения функции на этапе ожидания. Azure может отключить функцию и сохранить ее состояние, пока функция ожидает сохранения ресурсов и снижения затрат. Когда такая функция возобновит работу, Azure автоматически расконсервирует ее и восстановит состояние.

Типы функций

Можно использовать три устойчивых типа функций: Client, Orchestrator и Activity.

Функции клиента — это точка входа для создания экземпляра оркестрации Устойчивых функций. Они могут выполняться в ответ на события из многих источников, например при получении HTTP-запроса, размещении сообщения в очереди сообщений и поступлении события в поток событий. Их можно написать на любом из поддерживаемых языков.

Функции оркестратора описывают выполнение действий и порядок их выполнения. Логика оркестрации создается в коде C# или JavaScript.

Функции действий — это основные единицы работы в оркестрации Устойчивые функции. Функция действия содержит фактическую работу, выполняемую задачей оркестрации.

Шаблоны приложений

Устойчивые функции позволяют реализовать распространенные шаблоны рабочих процессов. Эти шаблоны включают:

  • Цепочка функций. В этом шаблоне рабочий процесс выполняет последовательность функций в указанном порядке. Выходные данные одной функции применяются к входным данным следующей функции в последовательности. Выходные данные конечной функции используются для создания результата.

    Diagram illustrating a function chaining pattern.

  • Вентилятор и вентилятор в: этот шаблон выполняет несколько функций параллельно и ожидает завершения всех функций. Результаты параллельных выполнений можно использовать для статистической обработки или вычисления итогового результата.

    Diagram illustrating a fan out/fan in pattern.

  • Асинхронные API HTTP: этот шаблон устраняет проблему координации состояния длительных операций с внешними клиентами. Вызов HTTP может активировать длительное действие, а затем перенаправить клиента в конечную точку состояния. Опрашивая эту конечную точку, клиент получает сигнал о завершении работы.

    Diagram illustrating an async HTTP API pattern.

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

    Diagram illustrating a monitor pattern.

  • Взаимодействие с человеком: этот шаблон объединяет автоматизированные процессы, которые также включают некоторые человеческие взаимодействия. Процессы, выполняемые вручную, достаточно сложно внедрить в автоматизированные, так как люди не обладают такими же доступностью и скоростью реакции, как большинство компьютеров. Вы можете включить взаимодействие человека с помощью времени ожидания и логики компенсации, которая выполняется, если человек не сможет правильно взаимодействовать в течение указанного времени отклика. Пример процесса, включающего взаимодействие с человеком, — утверждение.

    Diagram illustrating a human interaction pattern.

Сравнение с Logic Apps

Устойчивые функции и Logic Apps — это службы Azure для организации бессерверных рабочих нагрузок. Устойчивые функции Azure создавались как мощное средство для бессерверных вычислений для выполнения пользовательской логики. Служба Azure Logic Apps лучше подходит для интеграции компонентов и служб Azure. Обе эти технологии позволяют организовать сложные системы оркестрации. В Функциях Azure оркестрации создаются в коде с помощью расширения "Устойчивые функции". В Logic Apps для оркестрации применяется область конструктора или изменение файлов конфигурации.

В следующей таблице перечислены некоторые основные различия между Устойчивыми функциями Azure и Azure Logic Apps.

Задача Что такое Устойчивые функции? Приложения логики Azure
Разработка Code First (императивный подход) Design First (декларативный подход)
Подключение Примерно десять встроенных типов привязок. Можно писать код для пользовательских привязок. Большой выбор соединителей. Пакет интеграции Enterprise для B2B. Можно также создавать настраиваемые соединители.
Действия Каждое действие представляет Функцию Azure. Можно писать код для функций действий. Большая коллекция готовых действий. Интеграция пользовательской логики выполняется через настраиваемые соединители.
Наблюдение Azure Application Insights Портал Azure, журналы Azure Monitor
Управление REST API, PowerShell, Visual Studio Портал Azure, REST API, PowerShell, Visual Studio, расширение Visual Studio Code

Проверьте свои знания

1.

Что такое Устойчивые функции?

2.

Что из нижеперечисленного лучше всего описывает роль функции оркестратора в рабочем процессе?

3.

Что из следующего точнее всего объясняет преимущества устойчивых функций для приложений, использующих шаблон взаимодействия с человеком?