发现 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 | Logic Apps |
|---|---|---|
| 开发 | 代码优先(命令性) | 设计器优先(声明性) |
| 连接性 | 有关十多个内置的绑定类型,为自定义绑定编写代码 | 大型连接器集合、适用于 B2B 方案的 Enterprise Integration Pack、构建自定义连接器 |
| 操作 | 每个活动都是一个 Azure 函数;为活动函数编写代码 | 现成操作的大型集合 |
| 监控 | Azure Application Insights | Azure 门户、Azure Monitor 日志 |
| 管理 | REST API、Visual Studio | Azure 门户、REST API、PowerShell、Visual Studio |
| 执行上下文 | 在 Azure 或本地运行 | 在 Azure 或本地运行 |
比较 Functions 和 WebJobs
与 Azure Functions 一样,包含 WebJobs SDK 的 Azure 应用服务 WebJobs 是一项代码优先的集成服务,专为开发人员设计。 二者都是在 Azure 应用服务上构建的,支持源代码管理集成、身份验证以及使用 Application Insights 集成进行监视等功能。
Azure Functions 在 WebJobs SDK 上构建,因此共享许多相同的事件触发器以及到其他 Azure 服务的连接。 在选择 Azure Functions 还是选择带 WebJobs SDK 的 WebJobs 时,请考虑以下因素:
| 因素 | Functions | 带 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 服务集成和价格选项。 大多数情况下,它是最佳选择。