你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure 中选择合适的集成和自动化服务

本文比较了以下 Microsoft 云服务:

所有这些服务都可以解决集成问题并自动化业务流程。 它们都可以定义输入、操作、条件和输出。 可以在日程安排或触发器中运行其中一个。 每种服务都有其独特的优点,本文将介绍这些差异。

注意

如要了解 Azure Functions 和其他 Azure 计算选项之间更常规的对比:

Azure 中自动服务选项的摘要和对比:

比较 Microsoft Power Automate 和 Azure 逻辑应用

Power Automate 和 Azure 逻辑应用都是可以创建工作流的“设计器优先”集成服务。 这两种服务都与各种 SaaS 和企业应用程序相集成。

Power Automate 基于 Azure 逻辑应用平台构建。 两者提供类似的工作流设计器和连接器

借助 Power Automate,任何办公室工作人员都可以执行简单的集成(例如,对 SharePoint 文档库的审批过程),无需求助开发人员或 IT 部门。 逻辑应用还可以实现需要企业级 DevOps 和安全做法的高级集成(例如 B2B 流程)。 对于业务工作流,其典型特征就是复杂性会随时间增长而增加。

下表可帮助你确定 Power Automate 或逻辑应用是否最适合某一特定的集成:

Power Automate 逻辑应用
用户 办公人员、企业用户、SharePoint 管理员 Pro 集成人员和开发人员、IT 专业人员
方案 自助服务 高级集成
设计工具 浏览器内和移动应用、仅 UI 浏览器内、Visual Studio Code 和具有代码视图的 Visual Studio 中可用
应用程序生命周期管理 (ALM) Power Platform 提供与 DevOps 和 GitHub Actions集成的工具,使你可以在 ALM 周期中生成自动化管道。 Azure DevOps:Azure 资源管理器中的源代码管理、测试、支持、自动化和可管理性
管理员体验 管理 Power Automate 环境和数据丢失防护 (DLP) 策略,跟踪许可:管理中心 管理资源组、连接、访问管理和日志记录:Azure 门户
安全性 Microsoft 365 安全审核日志、DLP、针对敏感数据的静态加密 Azure 的安全保证:Azure 安全性Microsoft Defender for Cloud审核日志

比较 Azure Functions 和 Azure 逻辑应用

函数和逻辑应用是用于启用无服务器工作负荷的 Azure 服务。 Azure Functions 是一种无服务器计算服务,而 Azure 逻辑应用是一种无服务器工作流集成平台。 两者都可以创建复杂的业务流程。 业务流程是 Azure 逻辑应用中的函数或操作的集合,可以运行它来完成复杂的任务。 例如,若要处理一批订单,可以并行执行某个函数的许多实例,等待所有实例完成,然后执行某个函数来计算聚合结果。

对于 Azure Functions,通过编写代码并使用 Durable Functions 扩展来开发业务流程。 对于 Azure 逻辑应用,可通过使用 GUI 或编辑配置文件来创建业务流程。

在生成业务流程(例如从逻辑应用工作流中调用函数、从函数中调用逻辑应用工作流)时,可以混合搭配各种服务。 可以根据服务功能或你的个人喜好选择如何构建每个业务流程。 下表列出了这些服务之间的一些主要差异:

Durable Functions Azure 逻辑应用
开发 代码优先(命令性) 设计器优先(声明性)
连接 有关十多个内置的绑定类型,为自定义绑定编写代码 大型连接器集合适用于 B2B 方案的 Enterprise Integration Pack构建自定义连接器
操作 每个活动都是一个 Azure 函数;为活动函数编写代码 现成操作的大型集合
Monitoring Azure Application Insights Azure 门户Azure Monitor 日志Microsoft Defender for Cloud
管理 REST APIVisual Studio Azure 门户REST APIPowerShellVisual Studio
执行上下文 可以在本地或在云中运行 在 Azure 或本地运行。 有关详细信息,请参阅什么是 Azure 逻辑应用

比较函数和 WebJobs

与 Azure Functions 一样,包含 WebJobs SDK 的 Azure 应用服务是一项代码优先的集成服务,专为开发人员设计。 二者都是在 Azure 应用服务 上构建的,支持源代码管理集成身份验证以及使用 Application Insights 集成进行监视等功能。

WebJobs 和 WebJobs SDK

可以使用应用服务的 WebJobs 功能,在应用服务 Web 应用上下文中运行脚本或代码。 WebJobs SDK 是一个为 WebJobs 设计的框架,可以简化为响应 Azure 服务中的事件而编写的代码。 例如,若要响应在 Azure 存储中创建映像 Blob 这一事件,可以创建一个缩略图。 WebJobs SDK 以 .NET 控制台应用程序的方式运行,可以部署到 WebJob。

WebJobs 和 WebJobs SDK 在一起使用时效果最佳,但也可在没有 WebJobs SDK 的情况下使用 WebJobs,反之亦然。 WebJob 可以运行任何在应用服务沙盒中运行的程序或脚本。 WebJobs SDK 控制台应用程序可以在运行控制台应用程序的任何位置运行,例如本地服务器。

比较表

Azure Functions 是在 WebJobs SDK 上构建的,因此共享许多相同的事件触发器以及到其他 Azure 服务的连接。 在选择 Azure Functions 还是选择带 WebJobs SDK 的 WebJobs 时,请考虑以下因素:

函数 带 WebJobs SDK 的 WebJobs
使用自动缩放无服务器应用模型
在浏览器中进行开发和测试
按使用付费定价
与逻辑应用集成
触发事件 计时器
Azure 存储队列和 Blob
Azure 服务总线队列和主题
Azure Cosmos DB
Azure 事件中心
HTTP/WebHook(GitHub、Slack)
Azure 事件网格
计时器
Azure 存储队列和 Blob
Azure 服务总线队列和主题
Azure Cosmos DB
Azure 事件中心
文件系统
支持的语言 C#
F#
Javascript
Java
Python
PowerShell
C#1
包管理器 NPM 和 NuGet NuGet2

1 WebJobs(不含 WebJobs SDK)支持 C#、Java、JavaScript、Bash、.cmd、.bat、PowerShell、PHP、TypeScript、Python 等语言。 WebJob 可以运行任何程序或脚本,只要该程序或脚本可以在应用服务沙盒中运行。

2 WebJobs(不带 WebJobs SDK)支持 NPM 和 NuGet。

总结

与 Azure 应用服务 WebJobs 相比,Azure Functions 可以进一步提高开发人员的工作效率。 它还提供更多的编程语言、开发环境、Azure 服务集成和价格选项。 大多数情况下,它是最佳选择。

下面两种情况最适合选择 WebJobs:

  • 需要对侦听事件的代码(JobHost 对象)进行更多的控制。 若要在 JobHost 文件中自定义 JobHost 行为,则 Functions 提供的方式有限。 有时候,需要执行的操作无法在 JSON 文件中通过字符串来指定。 例如,只有 WebJobs SDK 允许配置 Azure 存储的自定义重试策略。
  • 你已经有需要为其运行代码片段的应用服务应用,且需要在同一 Azure DevOps 环境中同时管理它们。

对于其他需要运行代码片段来集成 Azure 或第三方服务的情况,请选择 Azure Functions 而不是带 WebJobs SDK 的 WebJobs。

Power Automate、逻辑应用、Functions 和 WebJobs 一起

并非只能选择其中的一种服务。 它们相互集成,也与外部服务集成。

Power Automate 流可以调用 Azure 逻辑应用工作流。 Azure 逻辑应用工作流可以在 Azure Functions 中调用函数,反之亦然。 例如,请参阅创建与 Azure 逻辑应用集成的函数

随着时间的推移,Power Automate、逻辑应用和 Functions 这些服务之间的集成体验会不断改进。 可以在一个服务中生成一个组件,并在其他服务中使用该组件。

可使用以下链接获取有关集成服务的详细信息:

后续步骤

首先创建第一个流、逻辑应用工作流或函数应用。 选择以下任一链接: