返回技能市场
开发运维 安全

python-appservice-deploy

@admin/python-appservice-deploy

Deploy Python (Flask/Django/FastAPI) code to Azure App Service Linux. WHEN: "Flask App Service", "Django App Service", "FastAPI App Service", "deploy Python to App Service". DO NOT USE FOR: Container Apps, Functions, non-Python, Terraform/Bicep/IaC, full infra — use azure-prepare.

admin 热度 333v0.0.1

在 Azure App Service 上的 Python — 代码部署

将 Python(Flask、Django、FastAPI、通用)代码部署到 Azure App Service Linux(P0v3、Python 3.14)。如果缺失,创建 RG + Plan + Web App。对于 VNet、Key Vault、数据库或 IaC,交给 azure-prepare

使用的 MCP 工具mcp_azure_mcp_subscription_listmcp_azure_mcp_group_listmcp_azure_mcp_appservicemcp_azure_mcp_azd(当存在 azure.yaml 时)。

工作流程

  1. 解析上下文 — 智能默认值,最少提示。 只有应用名称是交互式的;RG(<app>-rg)、Plan(<app>-plan)、区域(当前 az 默认值或 eastus2)、订阅均会派生。[create-app.md](references/create-app.md) §1。
  2. 检测框架(建议性,绝不阻塞)。[detect.md](references/detect.md)。
  3. 选择路径 — 如果 azure.yamlhost: appservice → [deploy-azd.md](references/deploy-azd.md);否则 [deploy-azcli.md](references/deploy-azcli.md)。
  4. 确保 RG → Plan(P0v3 --is-linux)→ Web App(--runtime "PYTHON:3.14" 存在。遇到瞬时 ARM 错误时,遵循 [transient-retry.md](references/transient-retry.md)。[create-app.md](references/create-app.md)。
  5. 设置启动命令 — Flask/Django:无(Oryx 自动检测)。FastAPI:始终使用 python -m uvicorn main:app --host 0.0.0.0。其他:警告。[startup-commands.md](references/startup-commands.md)。
  6. 设置 SCM_DO_BUILD_DURING_DEPLOYMENT=true
  7. 部署azd deployaz webapp deploy --type zip --track-status false
  8. STOP。打印部署后消息([post-deploy-message.md](references/post-deploy-message.md))并结束本轮。

硬性规则

  • 禁止部署后验证 — 部署返回后,不要运行 az webapp log tailcurlInvoke-WebRequest 或任何健康探测。App Service 需要 2–3 分钟预热;日志安静或早期 5xx 不是失败。
  • Shell 安全 — 对于 --runtime,始终使用 "PYTHON:3.14"(冒号)。绝不使用 "PYTHON|3.14"(管道是 shell 操作符)。
  • 绝不使用 az webapp up — 已弃用。使用步骤 7 的命令。
  • URL 格式 — 以 https://... URL 形式呈现端点。

错误处理

参见 [errors.md](references/errors.md) 获取完整的症状 → 原因 → 修复矩阵。快速分诊:缺少 plan/app → 重新运行步骤 4;容器在 8000 上 ping 超时 → 修复启动(步骤 5);部署后出现 ModuleNotFoundError → 确保运行了步骤 6,然后重新部署。

qianwen skills install @admin/python-appservice-deploy