Azure Functions 与逻辑应用程序
Azure Functions vs. Logic Apps
Functions & Logic Apps 是 Microsoft Azure 提供的两种截然不同的产品。我想知道在哪些用例中人们应该更喜欢新功能而不是逻辑应用程序。
逻辑应用程序用于自动化您的业务流程。它们通过几个开箱即用的连接器使与云和本地系统的集成变得容易。另一方面,Azure 函数会做一些事情来响应事件,例如当消息添加到队列或添加 blob 时,处理这些等。我猜你甚至可以将 Azure 函数公开为 HTTP API 端点并使用逻辑应用程序集成到您的业务流程中。
我认为另一个明显的区别是定价,Azure 函数是根据用于执行函数的计算量以及与函数相关联的内存来收费的 (https://azure.microsoft.com/en-us/pricing/details/functions/)。
Azure Functions code 由事件触发。
Logic Apps 是由事件触发的工作流。
这意味着它们实际上也是互补的。从昨天开始,您可以通过 Logic Apps UX 在 Logic Apps 中添加一个函数作为工作流程的一部分。
TL;DR - 它是逻辑应用程序 + 函数,而不是逻辑应用程序或函数。
Logic Apps 是 Microsoft 的 iPaaS 产品。它可用于在云端创建易于实施的集成解决方案。它带有一系列开箱即用的连接器,可用于跨本地和基于云的应用程序集成解决方案。
然而,Azure 函数可用于快速 运行 "Cloud" 上的小块代码或函数。 Azure 函数可以与逻辑应用程序集成,以从逻辑应用程序中提取 运行 代码片段。
Azure Durable Functions 发布后,此问题的答案可能已更改。
现在两个平台之间的重叠更大。这两种服务产品都允许您构建无服务器工作流; Azure Durable Functions 是基于代码的工作流,而逻辑应用程序是视觉设计的工作流。
Logic Apps 更适合构建集成解决方案,因为连接器的范围非常广泛,可以缩短上市时间,并且可以使用丰富的可视化工具来构建和管理者优先。
Durable Functions 如果您需要或更喜欢拥有健壮编程语言的所有功能和灵活性,或者您需要更多的可移植性,以及可用的绑定和日志记录功能就足够了。
两个平台的详细比较in this post。
“这里有几个用例,你可以决定在 Azure Functions 和 Azure 逻辑应用程序之间做出选择。
Azure 函数:
- Azure 函数是由事件触发的代码
- Azure Functions可以在本地工作站进行开发和调试,这是一个很大的优势
加上提高开发人员的生产力
- 在处理执行更复杂逻辑的同步 request/response 调用时,首选 Azure 函数
逻辑应用程序:
Logic Apps 是由事件触发的工作流
逻辑应用程序 运行 仅在云中,因为它依赖于 Microsoft 管理的连接器。它不能在本地进行调试、测试或 运行 逻辑应用程序
逻辑应用程序更适合需要可靠处理的异步集成和即发即弃消息传递。
Azure Functions 具有足够的日志记录和故障排除功能,您甚至可以构建自定义监视工具。函数不依赖于云,它也可以 运行 在本地。"
我都广泛使用。对于简单 apps/api,我更喜欢 Logic Apps 而不是 Azure Function。逻辑应用程序的知识转移非常容易,因为下一个人只需要看图片即可。 Logging/tracing 也已经内置。但是,如果您有多个 if-else 或 case 条件,或者如果您有多个嵌套工作流,逻辑应用程序(和 Flow)将变得混乱且不易阅读。逻辑应用程序中的错误处理也有很多不足之处。
Azure 函数
azure 函数是一段代码,在某些事件或计时器上触发
它可以被调试,并且您可以使用多种语言进行编码
和几个选项来编写代码,如 Visual Studio 代码、Visual studio、In-portal
逻辑应用程序
它是一个工作流编排工具,它以与 azure 函数类似的方式触发,但它是一个拖放工具,您不能在其中编写代码
它提供了一系列操作来执行它主要用于集成系统的功能
两个系统都是基于无服务器架构,但是azure logic app易于开发和调试,但范围有限
如果您需要大量自定义逻辑 azure 函数适合您
只是想补充一些我的想法
Azure Function Apps 应该用于
- 高频任务 - 1,000,000 次执行和 400,000 GB-s 内存免费,然后价格非常低。一旦您知道任何编码语言函数支持,您就可以以非常低的成本 运行 执行数百万次。
- 非常容易与多个 Azure 服务绑定 - 而逻辑应用程序也很容易绑定到外部服务,如果你想从逻辑应用程序中以高频率进行绑定,这将花费你一两块钱。函数还允许轻松输入和输出绑定到外部 azure 服务。
- 有状态执行 - 使用持久任务框架,您可以 运行 多个函数,执行扇入和扇出并轻松编写有状态执行。
- 编程和脚本语言 - 如果您已经了解编程语言,那么函数可能是将您的一些应用程序迁移到云的简单方法,只需进行最少的更改。
Azure 逻辑应用程序 应该用于
- 低频率 - 最大的原因是定价模型。想象一下,如果逻辑应用程序中的单个操作是您支付的费用,因为它是单独执行的。
例如,如果您有 1 个包含 3 个步骤的逻辑应用程序,并且您 运行 每 10 秒。这将是 每分钟 18 次操作。所以,每小时 1080,每天 25920。如果这 3 个操作连接到外部的任何东西,即 blobs/http 等。它们是 连接器 ,因此具有 26,000 连接器 运行 的简单逻辑应用程序每天 s 将使您每月净 100 美元。与功能最有可能低于 1 美元相比。
- 结合大量外部 services/APIs - 得益于 200 多个连接器,您可以轻松结合多种服务,而无需学习 APIs 等。这是简单的 TCO 计算,以开发人员的价格编写 X 数量的 API 集成更好,还是只使用开箱即用的连接器。
- 设计精良的日志记录 - 通过可视化日志记录,可以很容易地检查每个执行步骤的输入、输出、时间等。就好像您确实记录了每一行Azure 函数。
- 很好地扩展了数据工厂等其他服务 - 一些服务针对某些任务设计得非常好,但在其他任务上却不尽如人意。例如,数据工厂无法立即发送电子邮件,但在 10 分钟内您可以从数据工厂调用 Logic App 的 HTTP webhook 并开始轻松发送电子邮件。
总之如他人所说。他们扮演不同的角色,应该这样使用。
一般来说,逻辑应用❤️功能。
如果你想查看一些信息,我鼓励你查看
- 功能应用介绍视频https://youtu.be/Vxf-rOEO1q4
- 逻辑应用介绍视频https://youtu.be/UzTtastcBsk
- 逻辑应用安全 API 管理 https://marczak.io/posts/2019/08/secure-logic-app-with-api-management/
Functions & Logic Apps 是 Microsoft Azure 提供的两种截然不同的产品。我想知道在哪些用例中人们应该更喜欢新功能而不是逻辑应用程序。
逻辑应用程序用于自动化您的业务流程。它们通过几个开箱即用的连接器使与云和本地系统的集成变得容易。另一方面,Azure 函数会做一些事情来响应事件,例如当消息添加到队列或添加 blob 时,处理这些等。我猜你甚至可以将 Azure 函数公开为 HTTP API 端点并使用逻辑应用程序集成到您的业务流程中。
我认为另一个明显的区别是定价,Azure 函数是根据用于执行函数的计算量以及与函数相关联的内存来收费的 (https://azure.microsoft.com/en-us/pricing/details/functions/)。
Azure Functions code 由事件触发。
Logic Apps 是由事件触发的工作流。
这意味着它们实际上也是互补的。从昨天开始,您可以通过 Logic Apps UX 在 Logic Apps 中添加一个函数作为工作流程的一部分。
TL;DR - 它是逻辑应用程序 + 函数,而不是逻辑应用程序或函数。
Logic Apps 是 Microsoft 的 iPaaS 产品。它可用于在云端创建易于实施的集成解决方案。它带有一系列开箱即用的连接器,可用于跨本地和基于云的应用程序集成解决方案。 然而,Azure 函数可用于快速 运行 "Cloud" 上的小块代码或函数。 Azure 函数可以与逻辑应用程序集成,以从逻辑应用程序中提取 运行 代码片段。
Azure Durable Functions 发布后,此问题的答案可能已更改。 现在两个平台之间的重叠更大。这两种服务产品都允许您构建无服务器工作流; Azure Durable Functions 是基于代码的工作流,而逻辑应用程序是视觉设计的工作流。
Logic Apps 更适合构建集成解决方案,因为连接器的范围非常广泛,可以缩短上市时间,并且可以使用丰富的可视化工具来构建和管理者优先。
Durable Functions 如果您需要或更喜欢拥有健壮编程语言的所有功能和灵活性,或者您需要更多的可移植性,以及可用的绑定和日志记录功能就足够了。
两个平台的详细比较in this post。
“这里有几个用例,你可以决定在 Azure Functions 和 Azure 逻辑应用程序之间做出选择。
Azure 函数:
- Azure 函数是由事件触发的代码
- Azure Functions可以在本地工作站进行开发和调试,这是一个很大的优势 加上提高开发人员的生产力
- 在处理执行更复杂逻辑的同步 request/response 调用时,首选 Azure 函数
逻辑应用程序:
Logic Apps 是由事件触发的工作流
逻辑应用程序 运行 仅在云中,因为它依赖于 Microsoft 管理的连接器。它不能在本地进行调试、测试或 运行 逻辑应用程序
逻辑应用程序更适合需要可靠处理的异步集成和即发即弃消息传递。
Azure Functions 具有足够的日志记录和故障排除功能,您甚至可以构建自定义监视工具。函数不依赖于云,它也可以 运行 在本地。"
我都广泛使用。对于简单 apps/api,我更喜欢 Logic Apps 而不是 Azure Function。逻辑应用程序的知识转移非常容易,因为下一个人只需要看图片即可。 Logging/tracing 也已经内置。但是,如果您有多个 if-else 或 case 条件,或者如果您有多个嵌套工作流,逻辑应用程序(和 Flow)将变得混乱且不易阅读。逻辑应用程序中的错误处理也有很多不足之处。
Azure 函数 azure 函数是一段代码,在某些事件或计时器上触发 它可以被调试,并且您可以使用多种语言进行编码 和几个选项来编写代码,如 Visual Studio 代码、Visual studio、In-portal
逻辑应用程序 它是一个工作流编排工具,它以与 azure 函数类似的方式触发,但它是一个拖放工具,您不能在其中编写代码 它提供了一系列操作来执行它主要用于集成系统的功能
两个系统都是基于无服务器架构,但是azure logic app易于开发和调试,但范围有限 如果您需要大量自定义逻辑 azure 函数适合您
只是想补充一些我的想法
Azure Function Apps 应该用于
- 高频任务 - 1,000,000 次执行和 400,000 GB-s 内存免费,然后价格非常低。一旦您知道任何编码语言函数支持,您就可以以非常低的成本 运行 执行数百万次。
- 非常容易与多个 Azure 服务绑定 - 而逻辑应用程序也很容易绑定到外部服务,如果你想从逻辑应用程序中以高频率进行绑定,这将花费你一两块钱。函数还允许轻松输入和输出绑定到外部 azure 服务。
- 有状态执行 - 使用持久任务框架,您可以 运行 多个函数,执行扇入和扇出并轻松编写有状态执行。
- 编程和脚本语言 - 如果您已经了解编程语言,那么函数可能是将您的一些应用程序迁移到云的简单方法,只需进行最少的更改。
Azure 逻辑应用程序 应该用于
- 低频率 - 最大的原因是定价模型。想象一下,如果逻辑应用程序中的单个操作是您支付的费用,因为它是单独执行的。 例如,如果您有 1 个包含 3 个步骤的逻辑应用程序,并且您 运行 每 10 秒。这将是 每分钟 18 次操作。所以,每小时 1080,每天 25920。如果这 3 个操作连接到外部的任何东西,即 blobs/http 等。它们是 连接器 ,因此具有 26,000 连接器 运行 的简单逻辑应用程序每天 s 将使您每月净 100 美元。与功能最有可能低于 1 美元相比。
- 结合大量外部 services/APIs - 得益于 200 多个连接器,您可以轻松结合多种服务,而无需学习 APIs 等。这是简单的 TCO 计算,以开发人员的价格编写 X 数量的 API 集成更好,还是只使用开箱即用的连接器。
- 设计精良的日志记录 - 通过可视化日志记录,可以很容易地检查每个执行步骤的输入、输出、时间等。就好像您确实记录了每一行Azure 函数。
- 很好地扩展了数据工厂等其他服务 - 一些服务针对某些任务设计得非常好,但在其他任务上却不尽如人意。例如,数据工厂无法立即发送电子邮件,但在 10 分钟内您可以从数据工厂调用 Logic App 的 HTTP webhook 并开始轻松发送电子邮件。
总之如他人所说。他们扮演不同的角色,应该这样使用。
一般来说,逻辑应用❤️功能。
如果你想查看一些信息,我鼓励你查看
- 功能应用介绍视频https://youtu.be/Vxf-rOEO1q4
- 逻辑应用介绍视频https://youtu.be/UzTtastcBsk
- 逻辑应用安全 API 管理 https://marczak.io/posts/2019/08/secure-logic-app-with-api-management/