SKILL.md
只读
名称
python-appservice-deploy
描述
将 Python(Flask/Django/FastAPI)代码部署到 Azure App Service Linux。适用场景:"Flask App Service"、"Django App Service"、"FastAPI App Service"、"deploy Python to App Service"。不适用于:容器应用、函数应用、非 Python 项目、Terraform/Bicep/IaC、完整基础设施——请使用 azure-prepare。
Python on Azure App Service — 代码部署
将 Python(Flask、Django、FastAPI、通用)代码部署到 Azure App Service Linux(P0v3,Python 3.14)。如果缺少资源组、应用服务计划或 Web 应用,则自动创建。对于 VNet、Key Vault、数据库或 IaC,请转交 azure-prepare 处理。
使用的 MCP 工具:mcp_azure_mcp_subscription_list、mcp_azure_mcp_group_list、mcp_azure_mcp_appservice、mcp_azure_mcp_azd(当存在 azure.yaml 时)。
工作流程
- 解析上下文——智能默认值,最少提示。 仅应用名称需要交互;资源组(
<app>-rg)、计划(<app>-plan)、区域(当前az默认值或eastus2)、订阅均为自动推导。参见 create-app.md §1。 - 检测框架(建议性,绝不阻塞)。参见 detect.md。
- 选择路径——若
azure.yaml的 host 为 appservice,则走 deploy-azd.md;否则走 deploy-azcli.md。 - 确保资源组 → 计划(
P0v3 --is-linux)→ Web 应用(--runtime "PYTHON:3.14") 存在。遇到临时 ARM 错误时,遵循 transient-retry.md。参见 create-app.md。 - 设置启动命令——Flask/Django:无需设置(Oryx 自动检测)。FastAPI:始终设置为
python -m uvicorn main:app --host 0.0.0.0。其他框架:发出警告。参见 startup-commands.md。 - 设置
SCM_DO_BUILD_DURING_DEPLOYMENT=true。 - 部署——
azd deploy或az webapp deploy --type zip --track-status false。 - 停止。打印部署后消息(参见 post-deploy-message.md)并结束本轮对话。
硬性规则
- ⛔ 不进行部署后验证——部署返回后,不要运行
az webapp log tail、curl、Invoke-WebRequest或任何健康检查。App Service 需要 2-3 分钟预热;日志静默或早期 5xx 并非失败。 - ⛔ Shell 安全——对于
--runtime,始终使用"PYTHON:3.14"(冒号)。切勿使用"PYTHON|3.14"(管道符是 shell 运算符)。 - ⛔ 绝不使用
az webapp up——已弃用。请使用步骤 7 中的命令。 - ✅ URL 格式——以
https://...URL 形式呈现端点。
错误处理
参见 errors.md 获取完整的症状→原因→修复对照表。快速排查:缺少计划/应用→重新执行步骤 4;8000 端口容器 ping 超时→修复启动命令(步骤 5);部署后出现 ModuleNotFoundError→确保步骤 6 已执行,重新部署。




