关于 python-appservice-deploy
此技能将 Flask、Django、FastAPI 或通用 Python 应用部署到 Azure App Service Linux。它按需创建资源组、计划和 Web App,并根据框架设置启动方式。
主要功能
- 01检测 Python Web 框架
- 02创建 App Service 资源
- 03设置应用启动命令
- 04通过 azd 或 Azure CLI 部署
适用场景
- 01将 Python Web 应用发布到 Azure
- 02为 Flask 或 Django 配置部署
- 03部署 FastAPI 应用
- 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.mddeploy-azcli.mddeploy-azd.mddetect.mderrors.mdpost-deploy-message.mdstartup-commands.mdtransient-retry.mdscripts/generate-app-name.ps1generate-app-name.shretry-az-create.ps1retry-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 时)。
工作流
- 解析上下文 — 使用智能默认值,尽量减少提示。 仅需交互式指定应用名称;RG(
<app>-rg)、Plan(<app>-plan)、区域(当前az默认值或eastus2)和订阅均自动确定。create-app.md §1。 - 检测框架(仅供参考,不会阻止流程)。detect.md。
- 选择路径 —
azure.yaml的 host 为 appservice:使用 deploy-azd.md;否则使用 deploy-azcli.md。 - 确保 RG → Plan(
P0v3 --is-linux)→ Web App(--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。快速排查:缺少 Plan/Web App → 重新执行第 4 步;端口 8000 上的容器 ping 超时 → 修复启动命令(第 5 步);部署后出现 ModuleNotFoundError → 确认已执行第 6 步,然后重新部署。
评论
支持 Markdown