发现 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 服务集成和价格选项。 大多数情况下,它是最佳选择。