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.
SkillScore73Maintained
Automatic
◆DevOps & SRE pack
Last verified 8/3/2026
What it changes
Passed 15 of 20 test cases with the skill, and 6 of 20 without it.
Without skill32%
With skill73%
Checks it passed that the model alone missed
The response specifies `--runtime "PYTHON:3.14"`.
The response explicitly rejects using `az webapp up`.
The response directs network configuration to `azure-prepare`.
and 8 more in the full report
9 fixed7 passed either way6 still failing0 broke
Pass-rate lift
+41 pp
Tokens
-14%
Agent turns
0%
Response time
-54%
Model gemini-3.6-flashMeasured 8/3/2026v116 of 22 cases passed with skill · 20 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 9 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 9
Prompt
My Python project does not contain an `azure.yaml` file. Which Azure CLI command should be executed to deploy the zipped code package to the web app?
What was checked, without and with the skill
Checked
Without skill
With skill
The response specifies `az webapp deploy --type zip --track-status false`.
Missed
Passed
case-14 · gemini-3.6-flash · 8/3/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md27 lines13 filesincludes scripts
Python on Azure App Service — Code Deploy
Deploys Python (Flask, Django, FastAPI, generic) code to Azure App Service Linux (P0v3, Python 3.14). Creates RG + Plan + Web App if missing. Hand off to azure-prepare for VNet, Key Vault, databases, or IaC.
Resolve context — smart defaults, minimal prompts. Only the app name is interactive; RG (<app>-rg), Plan (<app>-plan), region (current az default or eastus2), subscription are derived. create-app.md §1.
Detect framework (advisory, never blocks). detect.md.
Deploy — azd deploy or az webapp deploy --type zip --track-status false.
STOP. Print the post-deploy message (post-deploy-message.md) and end the turn.
Hard rules
⛔ NO POST-DEPLOY VERIFICATION — after deploy returns, do not run az webapp log tail, curl, Invoke-WebRequest, or any health probe. App Service needs 2–3 min to warm; a quiet log or early 5xx is not failure.
⛔ SHELL SAFETY — for --runtime always use "PYTHON:3.14" (colon). Never "PYTHON|3.14" (pipe is a shell operator).
⛔ NEVER az webapp up — deprecated. Use Step 7 commands.
✅ URL FORMAT — present endpoints as https://... URLs.
Error Handling
See errors.md for the full symptom → cause → fix matrix. Quick triage: missing plan/app → re-run Step 4; container ping timeout on 8000 → fix startup (Step 5); ModuleNotFoundError after deploy → ensure Step 6 ran, redeploy.