云计算架构:Azure]比较流,逻辑应用(Logic App),函数和 WebJobs

简介: 云计算架构:Azure]比较流,逻辑应用(Logic App),函数和 WebJobs

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

比较 Microsoft Flow 和 Azure 逻辑应用

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

流构建在逻辑应用之上。 它们有相同的工作流设计器和相同的连接器。

借助流,任何办公室工作人员都可以执行简单的集成(例如,对 SharePoint 文档库的审批过程),无需求助开发人员或 IT 部门。 另一方面,逻辑应用可启用需要企业级 DevOps 和安全实践的高级集成(例如 B2B 流程)。 对于业务工作流,其典型特征就是复杂性会随时间增长而增加。 相应地,可以先从流开始,然后根据需要将其转换到逻辑应用。

下表有助于确定流或逻辑应用是否最适合给定的集成。


比较 Azure Functions 和 Azure 逻辑应用

函数和逻辑应用是用于启用无服务器工作负荷的 Azure 服务。 Azure Functions 是一种无服务器计算服务,而 Azure 逻辑应用提供无服务器工作流。 这两种服务都可以创建复杂“业务流程”。 业务流程是函数或步骤(在逻辑应用中称为“操作”)的集合,将执行这些函数或步骤来完成复杂任务。 例如,若要处理一批订单,可以并行执行某个函数的许多实例,等待所有实例完成,然后执行某个函数来计算聚合结果。

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

在构建业务流程、从逻辑应用中调用函数以及从函数中调用逻辑应用时,可以混合使用各种服务。 可以根据服务功能或你的个人喜好选择如何构建每个业务流程。 下表列出了这些服务之间的一些主要区别:


比较函数和 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 时,请考虑下面一些因素:


1 WebJobs(不带 WebJobs SDK)支持 C#、JavaScript、Bash、.cmd、.bat、PowerShell、PHP、TypeScript、Python 等。 这不是完整的列表;WebJob 可以运行任何程序或脚本,只要该程序或脚本可以在应用服务沙盒中运行。

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

摘要

Azure Functions 可以改进开发人员工作效率,并提供更多的编程语言选项、更多的开发环境选项、更多的 Azure 服务集成选项,以及更多的定价选项。 大多数情况下,它是最佳选择。

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

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

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

流(Flow)、逻辑应用(Logic Apps)、Functions 和 WebJobs 一起

不需只选择一项这样的服务;这些服务彼此集成,也与外部服务集成。

流可以调用逻辑应用。 逻辑应用可以调用函数,而函数也可以调用逻辑应用。 请参阅相关文档,例如,创建与 Azure 逻辑应用集成的函数。

随着时间的推移,Flow、逻辑应用和 Functions 之间的集成将得到进一步改进。 可以在某服务中构建一些项,并将其用于其他服务。

相关文章
|
1月前
|
应用服务中间件 Linux nginx
【Azure App Service】基于Linux创建的App Service是否可以主动升级内置的Nginx版本呢?
基于Linux创建的App Service是否可以主动升级内置的Nginx版本呢?Web App Linux 默认使用的 Nginx 版本是由平台预定义的,无法更改这个版本。
141 77
|
2月前
|
C#
【Azure Function】Function App出现System.IO.FileNotFoundException异常
Exception while executing function: xxxxxxx,The type initializer for 'xxxxxx.Storage.Adls2.StoreDataLakeGen2Reading' threw an exception. Could not load file or assembly 'Microsoft.Extensions.Configuration, Version=9.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the
118 64
|
2月前
|
监控 关系型数据库 MySQL
|
9天前
|
存储 安全 开发工具
【Azure Storage Account】利用App Service作为反向代理后续 ---- 隐藏 SAS Token
本文介绍了如何通过App Service作为反向代理,将SAS Token追加到请求URL中,以避免直接在代码或配置文件中存储SAS Token带来的安全性和维护问题。具体步骤包括修改App Service的web.config Rewrite规则,将SAS Token添加到转发的URL中;并在.NET SDK中仅使用不包含SAS Token的Uri进行Blob操作。这样既提高了安全性,也简化了SAS Token的管理。
36 16
|
18天前
|
Web App开发 网络协议 网络安全
【Azure App Service】App Service 是否支持HostName SNI 证书?
App Service 支持 HostName SNI 证书。为自定义域名添加 SSL 证书时,可以选择 SNI SSL 和基于 IP 的 SSL。SNI SSL 允许多个 TLS/SSL 证书保护同一 IP 地址上的多个域,适用于大多数现代浏览器。配置方法是在添加自定义域名后,点击 Add binding 配置 SNI SSL。参考文档:[Azure 官方文档](https://docs.azure.cn/zh-cn/app-service/configure-ssl-bindings#add-the-binding)。
|
1月前
|
JavaScript API
【Azure Function】Function App门户上的Test/Run返回错误:Failed to fetch
Running your function in portal requires the app to explicitly accept requests from https://portal.azure.cn. This is known as cross-origin resource sharing (CORS).Configure CORS to add https://portal.azure.cn to allowed origins.
|
16天前
|
存储 XML 开发工具
【Azure Storage Account】利用App Service作为反向代理, 并使用.NET Storage Account SDK实现上传/下载操作
本文介绍了如何在Azure上使用App Service作为反向代理,以自定义域名访问Storage Account。主要内容包括: 1. **设置反向代理**:通过配置`applicationhost.xdt`和`web.config`文件,启用IIS代理功能并设置重写规则。 2. **验证访问**:测试原生URL和自定义域名的访问效果,确保两者均可正常访问Storage Account。 3. **.NET SDK连接**:使用共享访问签名(SAS URL)初始化BlobServiceClient对象,实现通过自定义域名访问存储服务。
|
12天前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
108 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
1月前
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
180 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex

热门文章

最新文章