Azure Python 应用部署助手
将 Flask、Django 或 FastAPI 应用部署到 Azure App Service Linux。
文档明确限定为 Azure App Service Linux,并说明不处理网络、密钥库、数据库和 IaC;部署前展示资源默认值,也排除 .env、虚拟环境和缓存。但默认创建 P0v3 付费计划,且明确“不请求确认即继续”,缺少成本、权限范围、敏感配置流向和回滚方案说明,因此扣分。
主流程、幂等 show-or-create、瞬时错误重试和错误分类较清楚;但框架检测主要依赖依赖文件 token,FastAPI 默认 main:app 可能不匹配实际入口。创建资源文档要求 Verify,而主规则又禁止部署后验证;故存在流程矛盾,且静态审查不能证明关键路径可运行,按上限保守扣分。
触发词、适用框架、排除范围和 azure.yaml 分支均较明确,也覆盖 Bash 与 PowerShell。未知框架仍部署但可能无法启动,入口点边界有限;核心依赖 Azure CLI、azd、Azure App Service 和海外云服务,未提供中文支持或中国大陆网络可达性说明,因此扣分。
SKILL.md 结构清晰,引用了创建、检测、部署、错误和启动参考,含 MIT、作者和 1.0.1 版本信息;仓库 README、LICENSE、SECURITY 和 CI 提供一定治理信号。但该技能没有专属变更记录、依赖版本矩阵、安装说明、成本/权限限制和维护责任细节,故未给满分。
流程覆盖资源创建、框架识别、打包、部署和端点输出,理论上能完成代码推送;但 FastAPI 入口、未知框架启动和异步构建结果仍需用户处理,且禁止部署后验证,输出直接可用性只能有限确认。静态校准下不能超过 7,保守给分。
参考文档包含具体命令、错误矩阵、重试规则和仓库级 CI/测试证据;但提供的测试未覆盖该技能的实际 Azure 部署路径,也没有该技能专属验收测试或第三方执行记录。结论主要来自静态文本,故仅给有限分数。
- 默认可能创建付费 P0v3 App Service 计划,执行前应由用户明确确认成本、订阅、区域和资源名称。
- SKILL.md 禁止部署后验证,但 create-app.md 和 errors.md 包含验证或诊断步骤,需先统一规则。
- FastAPI 默认使用 main:app;非标准入口、混合 Flask/FastAPI 依赖或未知框架可能导致部署后无法启动。
- 文档未说明中国大陆网络可达性、区域可用性或中文交互支持。
- 未提供回滚、资源清理或部署失败后的恢复流程。
它能做什么 & 适用场景
此技能面向将 Python Web 应用部署到 Azure App Service Linux 的开发者。它支持 Flask、Django、FastAPI 和通用 Python 应用,并可在资源不存在时创建资源组、App Service 计划和 Web App。技能会根据项目是否存在 azure.yaml 选择 azd 或 Azure CLI 部署路径。它不负责 Container Apps、Functions、非 Python 应用、Terraform/Bicep/IaC 或完整基础设施配置。
读取项目上下文并检测 Python Web 框架;检查 azure.yaml 并选择 azd 或 Azure CLI 路径;通过 Azure MCP 工具和 Azure CLI 处理订阅、资源组、App Service 计划及 Web App;创建缺失的资源组、Linux P0v3 计划和 Python 3.14 Web App;为 FastAPI 设置 uvicorn 启动命令,为 Flask/Django 使用 Oryx 自动检测;设置 SCM_DO_BUILD_DURING_DEPLOYMENT=true;使用 azd deploy 或 az webapp deploy --type zip --track-status false 部署,并输出部署后的消息。
- 使用 Flask 的 Python 开发者需要把应用部署到 Azure App Service Linux。
- 使用 Django 的团队需要创建缺失的 Azure 资源并部署 Web 应用。
- 使用 FastAPI 的开发者需要配置 uvicorn 启动命令后部署到 App Service。
- 已有 azure.yaml 且 appservice 主机配置正确的项目,需要通过 azd 部署。
优缺点一览
- 覆盖 Flask、Django、FastAPI 和通用 Python 应用。
- 能自动创建缺失的资源组、Linux P0v3 计划和 Web App。
- 对已有 azure.yaml 的 appservice 项目支持 azd 部署。
- 明确排除不适用的容器、Functions 和 IaC 场景。
- 目标运行时固定为 Python 3.14 和 Azure App Service Linux,来源未说明其他运行时或平台支持。
- 来源未提供此技能专属的测试场景或测试覆盖证据。
- 部署后禁止立即验证,因此早期 5xx 或安静日志不会被该技能确认。
- VNet、Key Vault、数据库和 IaC 需要转交 azure-prepare,不能由此技能完成。
如何安装
安装整个仓库并在向导中选择此技能:npx skills add microsoft/skills。技能会安装到所选 Agent 的目录,例如 .github/skills/。也可以在 Copilot CLI 中运行 /plugin marketplace add microsoft/skills,然后运行 /plugin install azure-skills@skills。
如何使用
在包含 Python 应用的项目中输入:deploy Python to App Service、deploy my FastAPI app to App Service、Flask App Service 或 Django App Service。技能会询问应用名称,并推导资源组、计划、区域和订阅。部署完成后必须停止,不执行日志尾随、curl 或健康检查。
对比同类
与仓库中用于完整基础设施准备的 azure-prepare 不同,此技能专注于 Python 代码部署;与已弃用的 az webapp up 不同,它使用 azd deploy 或 az webapp deploy。