mcpField
P
python-appservice-deploy

python-appservice-deploy

github.com/microsoft云与 DevOps1.6k232.4k 次安装今天更新
代码仓库

关于 python-appservice-deploy

此技能将 Flask、Django、FastAPI 或通用 Python 应用部署到 Azure App Service Linux。它按需创建资源组、计划和 Web App,并根据框架设置启动方式。

主要功能

  1. 01检测 Python Web 框架
  2. 02创建 App Service 资源
  3. 03设置应用启动命令
  4. 04通过 azd 或 Azure CLI 部署

适用场景

  1. 01将 Python Web 应用发布到 Azure
  2. 02为 Flask 或 Django 配置部署
  3. 03部署 FastAPI 应用
  4. 04为新应用创建 App Service 资源

MCP 相关

此技能会使用 Azure MCP 工具列出订阅和资源组,并管理 App Service;存在 azure.yaml 时也会使用 azd MCP 工具。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/microsoft/azure-skills --skill python-appservice-deploy

安装后在 Claude Code 中输入/python-appservice-deploy确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
create-app.md
deploy-azcli.md
deploy-azd.md
detect.md
errors.md
post-deploy-message.md
startup-commands.md
transient-retry.md
scripts/
generate-app-name.ps1
generate-app-name.sh
retry-az-create.ps1
retry-az-create.sh

详细介绍

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_list、mcp_azure_mcp_group_list、mcp_azure_mcp_appservice、mcp_azure_mcp_azd(存在 azure.yaml 时)。

工作流

  1. 解析上下文 — 使用智能默认值,尽量减少提示。 仅需交互式指定应用名称;RG(<app>-rg)、Plan(<app>-plan)、区域(当前 az 默认值或 eastus2)和订阅均自动确定。create-app.md §1。
  2. 检测框架(仅供参考,不会阻止流程)。detect.md。
  3. 选择路径 — azure.yaml 的 host 为 appservice:使用 deploy-azd.md;否则使用 deploy-azcli.md。
  4. 确保 RG → Plan(P0v3 --is-linux)→ Web App(--runtime "PYTHON:3.14")均已创建。 遇到暂时性 ARM 错误时,遵循 transient-retry.md。create-app.md。
  5. 设置启动命令 — Flask/Django:不设置(Oryx 会自动检测)。FastAPI:始终使用 python -m uvicorn main:app --host 0.0.0.0。其他框架:发出警告。startup-commands.md。
  6. 设置 SCM_DO_BUILD_DURING_DEPLOYMENT=true。
  7. 部署 — 使用 azd deploy 或 az webapp deploy --type zip --track-status false。
  8. 停止。打印部署后消息(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。快速排查:缺少 Plan/Web App → 重新执行第 4 步;端口 8000 上的容器 ping 超时 → 修复启动命令(第 5 步);部署后出现 ModuleNotFoundError → 确认已执行第 6 步,然后重新部署。

评论

支持 Markdown