无服务器计算

什么是 Azure 函数?

发布时间: 2024年10月30日

最后更新: 2025年2月5日

探索 Azure Functions 的多功能性。本指南涵盖其用例、托管选项、优势、持久函数、语言支持以及如何入门。

什么是 Azure 函数?

Azure Function 托管在 Microsoft Azure 上,是一种无服务器计算工具。开发人员利用它来执行代码,而无需管理服务器。各种事件会触发代码运行,这就是为什么它被事件驱动的应用程序所使用。 

Azure Functions 支持多种语言,可用于文件上传、Web API、数据流处理以及其他基于触发器/绑定的功能。

您可以在 Azure 无服务器生态系统中找到 Azure Functions。将其与 Event Grid、Logic Apps 和 Service 集成,以向上或向下扩展云应用程序。

我应该在什么时候使用 Azure Functions?

您应该使用 Azure Functions 来实现基于触发器和事件的任务可扩展性。如果基础设施管理不是您的首要任务,但仍然需要运行代码,那么该工具可能适合您。 

Azure Functions 被个人开发者和大型组织使用。您可能需要在其中使用该工具的事件包括日期更改、计时器触发器和 HTTP 请求。 

您还可以将 Azure Functions 用于系统集成/工作流自动化。其他用例包括数据处理和 API 构建。一些使用 Azure Functions 的常见场景包括: 

  • 发送电子邮件/通知和其他形式的任务自动化 
  • 无服务器 API 和微服务构建 
  • 与 Azure 存储、逻辑应用和类似工具集成 
  • 来自传感器/IoT 设备的数据处理
提示

在使用 Azure Functions 之前,请查看 Azure Functions 文档并查看可用的模板/示例。

Azure Functions有哪些可用的托管选项?

如果需要基于 Kubernetes 的托管,您可以在 Azure Functions 中使用四种托管功能:消耗计划、高级计划、专用计划和 Kubernetes 事件驱动自动缩放器 (KEDA)。 

定价和功能因每个计划而异,这意味着您需要考虑您的预期工作负载。在做出选择之前,请考虑您对可扩展性和连接性的要求。还必须分析性能、成本和功能。

 

Azure Functions 托管选项的全面比较
功能 消费计划 高级计划 专用计划 KEDA
扩展特性
缩放类型 事件驱动的自动缩放 具有增强控制的事件驱动自动缩放 手动或自动缩放 基于 Kubernetes 的自动缩放
空闲缩放 空闲时缩减为零 预热实例可用 始终运行 可配置的缩放
性能和资源
性能级别 基本性能 增强性能 专用资源 基于容器的性能
资源分配 无服务器 专用资源 固定资源 Kubernetes 集群资源
成本和计费
定价模式 按执行次数付费 固定费率,可突发 固定的月度成本 基于集群使用情况
成本可预测性 可变的 更可预测 高度可预测 取决于集群管理

使用Azure Functions有哪些好处?

无服务器架构 根据需求扩展工作负载,这意味着开发人员可以专注于编码;但是,如果您的需求发生变化,您可能需要不时地更改规则。

您可以将 Azure Functions 与 JavaScript、Python 和其他编程语言一起使用。 您可以将 Azure Functions 与其他 Azure 服务一起使用,但也可以使用外部服务。 开发人员使用 Azure Functions 来创建基于各种事件触发器/数据绑定的函数。 

您还应该使用 Azure Functions 进行测试和部署,同时进行控制 访问管理 通过 easy-auth。开发人员可以在云中使用 Azure Functions,例如 混合环境;您也可以考虑按使用量付费的定价模式。

什么是持久函数?

Durable Functions 是 Azure Functions 的一个扩展。开发人员使用它来创建无服务器的有状态函数。如果您的工作流程运行时间较长、较为复杂,并且可能需要检查点或自动重启,则应使用 Durable Functions。使用 Durable Functions 时,还应考虑状态管理。 

使用 Durable Functions 的编程模型进行有状态工作流程/管理编排。协调多个函数也是您可能需要考虑的问题。Durable Functions 适用于:

  • 审批流程
  • 定期数据处理
  • 人机交互工作流程

我可以使用哪些语言来开发 Azure Functions?

开发人员可以将 Azure Functions 与 PowerShell、Python、Java、TypeScript、C#、JavaScript 和其他编程语言一起使用。完全支持和实验性是您可以使用的两个级别。

虽然完全支持的语言具有原生支持,使您能够仅使用一种语言开发/运行函数,但实验性语言的支持更有限,应用于测试/探索。

结论

如果您需要无服务器计算,则应考虑使用 Azure Functions;它可以帮助提高可扩展性、效率和成本效益,但您需要考虑不管理服务器的缺点。将 Azure Functions 用于 Web API、事件驱动系统和类似需求。

准备好开始了吗?

我们也曾经历过您的挑战。让我们分享18年的经验,助您实现全球梦想。
咨询专业顾问
马赛克图像
zh_CN简体中文