Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье сравниваются следующие облачные службы Майкрософт:
- Microsoft Power Automate (был Microsoft Flow)
- Azure Logic Apps
- Azure Functions
- Azure App Service WebJobs
Все эти службы используются для настройки интеграции и автоматизации бизнес-процессов. Они позволяют определять входные данные, действия, условия и выходные данные. Каждую из них можно запускать по расписанию или триггеру. Каждая служба обладает уникальными преимуществами, но в этой статье описываются их различия.
Примечание.
Если вы ищете более общее сравнение между Azure Functions и другими вариантами вычислений Azure, ознакомьтесь со следующими статьями:
Для получения сводки и сравнения вариантов автоматизации в Azure см. раздел Выбор служб автоматизации в Azure.
Сравнение Azure Logic Apps и Microsoft Power Automate
Эти службы — платформы интеграции, ориентированные на дизайнеров, в которых можно создавать и запускать автоматизированные рабочие процессы. Обе платформы интегрируются с различными приложениями Software-as-Service (SaaS) и корпоративными приложениями. Оба предоставляют аналогичные конструкторы рабочих процессов, и, хотя их соединители частично перекрываются, каждая платформа также предлагает собственные уникальные соединители.
Power Automate позволяет бизнес-пользователям, сотрудникам офисов и разработчикам граждан создавать простые интеграции без необходимости работать с ИТ-отделом или разработчиками или писать код. Одним из примеров может быть рабочий процесс утверждения для библиотеки документов SharePoint. Azure Logic Apps поддерживает интеграцию, начиная от сценариев без кода или с минимальным количеством кода до более сложных, требующих написания кода рабочих процессов. К примерам относятся процессы или сценарии B2B, требующие взаимодействия корпоративного уровня с Azure DevOps. Рабочий процесс бизнеса также может расти от простого до завершения с течением времени.
Чтобы определить, следует ли использовать Azure Logic Apps или Power Automate для конкретной интеграции, см. таблицу сравнения Capability.
Сравнение Azure Functions и Azure Logic Apps
Эти службы Azure позволяют создавать и запускать бессерверные рабочие нагрузки. Azure Functions — это бессерверная служба вычислений, а Azure Logic Apps — это бессерверная платформа интеграции рабочих процессов. Оба могут создавать сложные оркестрации. Оркестрация — это коллекция функций, которые называются actions в Azure Logic Apps, которые можно запустить для выполнения сложной задачи. Например, для обработки пакета заказов можно запустить параллельное выполнение множества экземпляров функции, дождаться завершения их работы, а затем выполнить функцию, которая вычислит все полученные результаты.
Для Azure Functions вы разрабатываете оркестрации путем написания кода и использования расширения Durable Functions. Для Azure Logic Apps вы создаёте оркестрации с помощью визуального конструктора или путём редактирования шаблонов Azure Resource Manager.
При построении оркестрации вы можете комбинировать сервисы. Например, можно вызывать функции из рабочих процессов приложения логики и вызывать рабочие процессы приложения логики из функций. Выберите способ создания оркестраций с учетом ваших предпочтений и возможностей, предоставляемых каждой службой. В следующей таблице представлены некоторые основные различия между этими службами:
Сравнение функций и веб-заданий
Как и Azure Functions, веб-задания в Azure App Service с WebJobs SDK являются code-first службой интеграции, предназначенной для разработчиков. Оба компонента основаны на Azure App Service и поддерживают такие функции, как интеграция с системой контроля версий, аутентификация и мониторинг с интеграцией Application Insights.
Веб-задания и пакет SDK для веб-заданий
Функцию веб-заданий службы приложений можно использовать для запуска скрипта или кода в контексте веб-приложения службы приложений. Пакет SDK WebJobs — это платформа, предназначенная для веб-заданий, которая упрощает написание кода для реагирования на события в службах Azure. Например, можно ответить на создание объекта изображения в Azure Storage, создав эскиз. Пакет SDK веб-заданий выполняется как консольное приложение .NET, которое можно развернуть в веб-задании.
Веб-задания и пакет SDK для веб-заданий лучше всего использовать вместе, но можно и по отдельности. Веб-задания могут выполнять любые программы или скрипты, выполняемые в песочнице службы приложений. Консольное приложение пакета SDK для веб-заданий можно запускать там же, где и остальные консольные приложения, например на локальных серверах.
Сравнительная таблица
Azure Functions основан на WebJobs SDK, поэтому он совместим со многими из тех же триггеров событий и подключений к другим службам Azure. Ниже приведены некоторые факторы, которые следует учитывать при выборе между Azure Functions и веб-заданиями с помощью пакета SDK для веб-заданий.
| Функции | Компонент "Веб-задания" с пакетом SDK для веб-заданий | |
|---|---|---|
| Бессерверная модель приложения с автоматическим масштабированием | ✔ | |
| Разработка и тестирование в браузере | ✔ | |
| Цены на оплату за использование | ✔ | |
| Интеграция с Logic Apps | ✔ | |
| События триггера |
Таймер Azure Storage очереди и BLOB-объекты Azure Service Bus очереди и разделы Azure Cosmos DB Azure Event Hubs HTTP/WebHook (GitHub, Slack) Azure Event Grid |
Таймер Azure Storage очереди и BLOB-объекты Azure Service Bus очереди и разделы Azure Cosmos DB Azure Event Hubs File system |
| Поддерживаемые языки | C# F# JavaScript Java Python Powershell |
C#1 |
| Диспетчеры пакетов | npm и NuGet | NuGet2 |
1 Веб-задания (без пакета SDK для веб-заданий) поддерживают такие языки, как C#, Java, JavaScript, Bash, .cmd, .bat, PowerShell, PHP, TypeScript, Python и многое другое. Веб-задание может выполнять любую программу или скрипт, которые могут работать в песочнице App Service.
2 веб-задания (без пакета SDK для веб-заданий) поддерживают npm и NuGet.
Итоги
Azure Functions обеспечивает большую производительность труда разработчиков, чем веб-задания в службе Azure App Service. Он также предлагает дополнительные возможности для языков программирования, сред разработки, интеграции служб Azure и ценообразования. В большинстве случаев они являются оптимальным вариантом.
Ниже приведены два сценария, для которых веб-задания могут быть лучшим выбором:
- Вам нужен больший контроль над объектом
JobHost, который прослушивает события. Функции предоставляют небольшое количество способов настройкиJobHostповедения в файле host.json. Иногда необходимо выполнить действия, которые нельзя указать с помощью строки в JSON-файле. Например, только пакет SDK веб-заданий позволяет настроить настраиваемую политику повторных попыток для Azure Storage. - У вас есть приложение Службы приложений, для которого требуется запустить фрагменты кода, и вы хотите управлять ими вместе в одной среде Azure DevOps.
Для других сценариев, в которых требуется запустить фрагменты кода для интеграции Azure или внешних служб, выберите Azure Functions вместо WebJobs с использованием WebJobs SDK.
Power Automate, Logic Apps, Функции и веб-задания вместе
Вам не обязательно выбирать какую-то одну из этих служб. Они интегрируются друг с другом и внешними службами.
Поток Power Automate может вызывать рабочий процесс Azure Logic Apps. Рабочий процесс Azure Logic Apps может вызывать функцию в Azure Functions и наоборот. Например, см. функцию Create, которая интегрируется с Azure Logic Apps.
Между Power Automate, Azure Logic Apps и Функциями взаимодействие между этими службами продолжает улучшаться с течением времени. Вы можете создать компонент в одной службе, а использовать его в других.
Дополнительные сведения о службах интеграции см. в следующих статьях:
- Использование Azure Functions и Azure App Service для сценариев интеграции автор Кристофер Андерсон
- Простые интеграции от Чарльза Ламанны
- Azure Logic Apps live webcast
- Power Automate часто задаваемые вопросы
Следующие шаги
Начните с создания потока, логического приложения или функционального приложения. Выберите любую из следующих ссылок: