发现 Azure Functions

已完成

Azure Functions 是一种无服务器解决方案,用户通过它可以减少代码编写、减少需要维护的基础结构并节省成本。 无需担心部署和维护服务器,云基础结构提供保持应用程序运行所需的所有最新资源。

我们通常会构建系统来应对一系列的关键事件。 无论是要构建 Web API、响应数据库更改还是处理 IoT 数据流,甚或是管理消息队列,每个应用程序都需要一种在执行这些操作时运行某些代码的方式。

Azure Functions 支持 触发器(用于启动代码执行)和绑定(用于简化针对输入和输出数据进行的编码)。 Azure 中还有其他集成和自动化服务,它们都可以解决集成问题并自动执行业务流程。 它们都可以定义输入、操作、条件和输出。

比较 Azure Functions 和 Azure 逻辑应用

Functions 和逻辑应用都是支持无服务器工作负载的 Azure 服务。 Azure Functions 是一种无服务器计算服务,而 Azure 逻辑应用是一种无服务器工作流集成平台。 两者都可以创建复杂的业务流程。 业务流程是函数或步骤(在逻辑应用中称为“操作”)的集合,将执行这些函数或步骤来完成复杂任务。

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

下表列出了 Functions 和逻辑应用之间的一些主要差异:

主题 Azure Functions 逻辑应用
开发 代码优先(命令性) 设计器优先(声明性)
连接 有关十多个内置的绑定类型,为自定义绑定编写代码 大型连接器集合、适用于 B2B 方案的 Enterprise Integration Pack、构建自定义连接器
操作 每个活动都是一个 Azure 函数;为活动函数编写代码 现成操作的大型集合
Monitoring Azure Application Insights Azure 门户、Azure Monitor 日志
Management REST API、Visual Studio Azure 门户、REST API、PowerShell、Visual Studio
执行上下文 在 Azure 或本地运行 在 Azure 或本地运行

比较函数和 WebJobs

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

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 事件中心
文件系统

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