用途
Azure Functions 用于在 Azure 上构建和部署无服务器应用程序。当需要事件驱动、可自动伸缩至零的计算资源,或构建 API、Webhook、后台处理管道,以及响应 Azure 服务事件(如 Blob 存储、Service Bus、Cosmos DB 变更)时,可使用本技能。也适用于实现轻量级微服务或定时任务,并希望按执行次数计费而无需管理服务器。
主要能力
- 函数应用创建:支持 Consumption 计划(按执行付费)与 Premium 计划(VNet 集成、无冷启动)。
- 触发器与绑定配置:涵盖 HTTP 触发器、Blob 触发器、Timer 触发器、Service Bus 队列触发器、Cosmos DB 输出绑定、Cosmos DB 变更源触发器等,提供 Python 与 Node.js 示例。
- 本地开发:使用 Core Tools 初始化项目、创建函数模板、本地运行与测试。
- 部署:支持 Core Tools 发布、ZIP 包部署、GitHub Actions CI/CD,以及部署槽(staging/production)的创建、测试、交换与回滚。
- 应用设置与安全:配置应用设置、槽特定设置、托管标识、CORS、最低 TLS 版本、Application Insights。
- 基础设施即代码:提供 Terraform 配置示例。
- 故障排查:列出常见症状、原因与修复方法。
使用方式
前置条件:安装 Azure CLI(需组织批准的已验证签名包),安装 Azure Functions Core Tools v4(npm install -g azure-functions-core-tools@4),验证安装(func --version),登录(az login、az account set --subscription "my-subscription-id"),创建资源组与存储账户。
创建函数应用:使用 az functionapp create 命令,指定资源组、计划、运行时、版本、名称、存储账户与操作系统类型。
本地开发:func init MyFunctionProject --python 初始化项目,func new 创建函数,func start 本地运行,curl 测试。
部署:func azure functionapp publish 发布,或使用 ZIP 包、GitHub Actions。部署槽通过 az functionapp deployment slot 命令管理。
适用场景
- 需要自动伸缩至零的事件驱动计算。
- 构建 API、Webhook 或后台处理管道。
- 按执行计费、无需管理服务器。
- 响应 Azure 服务事件(Blob 存储、Service Bus、Cosmos DB 变更)。
- 实现轻量级微服务或定时任务。
限制
- 基础设施命令可能中断服务:在变更状态前需确认目标主机/范围,并准备备份或快照。
- 仅文档导入:上游脚本与模板未随附。
- 冷启动延迟、触发器不触发、Python 模块未找到、HTTP 401、Blob 触发器不触发、Timer 触发器运行两次、部署槽交换失败、内存不足等常见问题需按故障排查表处理。