APP SERVICE DEPLOYMENT / Microsoft
Python App Service deploy
Pins Microsoft's Python App Service deploy skill, which forbids health probes after deploy and forbids az webapp up.
“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.”
01 / THE REASONING
Why this made the selection.
- After deploy returns, the skill forbids log tail, curl, Invoke-WebRequest, and any other health probe, then says to stop the turn.
- It forbids az webapp up, and it forbids a PYTHON runtime string that contains a pipe because that pipe is a shell operator.
02 / THE REVIEW RECORD
What we actually inspected.
Source review has boundaries.
A clear record is more useful than a “safe” badge.
Material inspected
- .github/plugins/azure-skills/skills/python-appservice-deploy/SKILL.md
- README.md
- .github/plugins/azure-skills/README.md
- LICENSE
Our findings
- After deploy returns, the skill forbids log tail, curl, Invoke-WebRequest, and any health probe.
- It forbids az webapp up and says to use the step 7 deploy commands instead.
- It forbids a runtime value that uses a pipe, and requires the quoted PYTHON:3.14 form.
- It says to print the post-deploy message and end the turn.
- It refuses Container Apps, Functions, non-Python apps, and Terraform, Bicep, or other full infrastructure.
Not established by this review
- The resource was not executed and its tools were not called.
- No web app was created and no deploy command was run.
- The referenced create, detect, and error files were not opened.
- The azure plugin was not installed.
- Not executed: it was not installed or run.
The review applies to the material and revision named here. A newer upstream release can change its behavior.
03 / PUT IT TO WORK
Add a skill to your workflow.
DOCUMENTED COMMAND
/plugin install azure@skills Copying does not execute this command. It may retrieve a newer version than the reviewed source.
- The repository README shows `/plugin marketplace add microsoft/skills` and then `/plugin install azure@skills` inside Copilot CLI. That installs the azure plugin group, not this one file.
- The azure-skills plugin README prints a different pair: `/plugin marketplace add microsoft/azure-skills` and `/plugin install azure@azure-skills`.
- The repository README also shows `npx skills add microsoft/skills`, which opens a wizard for the whole repository.
Before you start
- An Azure account
- Azure CLI login, or the service-principal variables or managed identity named in the azure plugin README
- Node.js 22 or later if the plugin's npx Azure MCP server is used
- A Flask, Django, or FastAPI application if the skill's deploy path is followed
04 / FOLLOW THE EVIDENCE
The source trail.
Our notes are separate from the original resource.
Check upstream before adopting a new version.
https://github.com/microsoft/skills/blob/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/.github/plugins/azure-skills/skills/python-appservice-deploy/SKILL.md
Supports: post-deploy probe refusal, az webapp up refusal, and pipe-runtime refusal
- Azure plugin README ↗Checked
https://github.com/microsoft/skills/blob/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/.github/plugins/azure-skills/README.md
Supports: Claude Code and GitHub Copilot CLI setup, az login, and a different plugin install line
- Repository README ↗Checked
https://github.com/microsoft/skills/blob/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/README.md
Supports: /plugin install azure@skills and the MIT statement
- Repository LICENSE ↗Checked
https://github.com/microsoft/skills/blob/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/LICENSE
Supports: MIT License
https://raw.githubusercontent.com/microsoft/skills/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/.github/plugins/azure-skills/skills/python-appservice-deploy/SKILL.md
Supports: upstreamDescription, limitations, review.reviewedAt, review.notTested