什么是 Azure Functions?
Azure Functions 是一种基于云的计算服务,为 Azure 提供事件驱动的可缩放无服务器计算。 在某些情况下,你只需为函数代码运行的时间付费。
如果需要运行代码,可以使用 Azure Functions 来运行代码。 例如,代码能因事件或更改而运行,例如在消息到达队列时或存储对象更新时运行。 还可以使用 cron
规则定义运行代码的计划间隔。
使用触发器决定何时运行代码
使用 Azure Functions,可以定义触发器,触发器可让代码开始执行。 触发器还可以处理用于将数据传入函数的输入。 每个函数只能有一个触发器。 Azure 函数支持的一些触发器类型包括:
- 存储:可以侦听 Azure Cosmos DB 等数据库中的事件。 例如,插入新行时。
- 事件:事件网格和事件中心生成可以触发代码的事件。
- HTTP 代码:Web 请求和 Webhook 可以触发 HTTP 代码。
- 队列:队列消息也可以处理。
- 计时器:根据指定的时间间隔调用代码。
使用绑定连接到数据源
通过绑定可以简化输入和输出数据的编码。 虽然可以使用客户端 SDK 从函数代码连接到服务,但 Azure Functions 提供了绑定来简化这些连接。 绑定实质上是无需编写的连接代码。 可以与 Azure 上的许多服务集成、解决集成问题并自动执行业务流程。
绑定有两种方式:输入和输出。 通过使用输出绑定,可将数据写入数据目的地,例如将消息放置在队列或数据库中的新行上。 输入绑定可用于将数据从触发函数的数据源以外的数据源传递到函数。
功能
Azure Functions 有一些极具竞争力的功能/特性:
灵活的托管计划。 有三种不同的托管计划,可满足各种业务需求。
- 消耗计划。 Functions 的完全无服务器托管选项。 Functions 会自动缩放,且你只需在函数运行时为计算资源付费。 此计划为短进程工作负载提供经济高效的计算,往往更趋于间歇性,且可预测性较低。
- 高级计划。 在此计划中,函数会保持初始化状态,也就是在处于空闲状态后不会有延迟。 当你的函数应用需要长时间运行,但仍然需要动态缩放时,高级计划是很好的选择。 与消耗计划相比,采用此计划还可以使用更多的资源更快地开始缩放。 在消耗计划中,执行时间也有限制,此计划可以取代它。 尽管获得了动态缩放的成本优势,但还是需要支付更多费用。
- 专用计划。 使用常规应用服务计划运行函数。 最适合函数需要持续运行的方案。 另一个好处是可以完全控制应用的缩放情况,还能更轻松地预测成本。 如果有现成但未充分利用的应用服务计划,专用计划也是一个不错的选择。
动态扩展。 在大多数计划中,函数会根据负载动态缩放。 当执行需求增加时,系统会自动向服务分配更多资源,当请求量下降时,资源和应用程序实例也会自动下降。 在消耗计划中,你完全无需为空闲函数付费。
基于事件的体系结构。 Functions 应该小而集中。 它们处理传入的数据并转为完成状态或者再引发某个新的事件。 Azure 函数的一些常见用途包括发送电子邮件、启动备份、订单处理、任务计划(例如数据库清理、发送通知和消息)以及 IoT 数据处理。