---
title: "Python App Service deploy: review, setup & limitations · Undominated.ai"
canonical: https://undominated.ai/skills/microsoft-python-appservice-deploy/
description: "Pins Microsoft's Python App Service deploy skill, which forbids health probes after deploy and forbids az webapp up."
---

# Python App Service deploy: review, setup & limitations · Undominated.ai

> Pins Microsoft's Python App Service deploy skill, which forbids health probes after deploy and forbids az webapp up.

[← Explore all skills](/skills/)

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.

 [See setup guidance ↓](#setup)[Original source ↗](https://github.com/microsoft/skills/tree/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/.github/plugins/azure-skills/skills/python-appservice-deploy)

SOURCE REVIEW

 Reviewed 2026-10-15
 Evidence 5 linked sources
 Publisher Microsoft
 Licence [MIT ↗](https://github.com/microsoft/skills/blob/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/LICENSE)
 Revision fc164ba1d7a0
 [Read what was—and wasn’t—checked ↓](#review)

“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.”

 [Microsoft · upstream description ↗](https://github.com/microsoft/skills/blob/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/.github/plugins/azure-skills/skills/python-appservice-deploy/SKILL.md) Our analysis follows below.

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.

### A good fit for

 - Deploying Flask, Django, or FastAPI code to Linux App Service and stopping without a post-deploy health probe

### Weigh up before choosing

 - This review did not execute the resource.
- `/plugin install azure@skills` installs the azure plugin group named in the repository README, not this file alone.
- The azure plugin README prints `/plugin install azure@azure-skills` after marketplace `microsoft/azure-skills`, which is not the same command.
- The azure plugin README says to install the plugin only on trusted devices because it downloads its MCP server with npx.
- The azure plugin README collects telemetry unless AZURE_MCP_COLLECT_TELEMETRY=false.
- The references for create, detect, deploy, startup, errors, and retry were not opened.
- The file can create a resource group, plan, and web app, but it sends VNet, Key Vault, databases, and IaC to azure-prepare.
- This SKILL.md does not itself state an az login step. Authentication is in the azure plugin README.
- The source review is pinned to revision fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb, but the unversioned plugin install command selects the marketplace release available when installed; its code and dependencies may differ from this reviewed snapshot.
- Framework detection is advisory and does not block deployment; the listed FastAPI startup command always targets main:app.

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.

[Upstream setup instructions ↗](https://github.com/microsoft/skills/blob/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/README.md)

DOCUMENTED COMMAND

 /plugin install azure@skills Copy command ↗

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

### Compatibility

Claude Code · GitHub Copilot · GitHub Copilot CLI

### Implementation

shell

### Local skill text; App Service resources change only if an operator runs the deploy commands

 - Read the skill text
- Create a resource group, plan, or web app only if the operator runs the deploy steps
- The skill text forbids post-deploy log tail and HTTP health probes
- Installing the full plugin can download and execute Azure MCP/npm hook code and send usage telemetry; review local npm configuration and the telemetry setting before enabling that plugin path.

### Cost model

MIT; no Azure command was run

04 / FOLLOW THE EVIDENCE

## The source trail.

Our notes are separate from the original resource. Check upstream before adopting a new version.

 - [python-appservice-deploy SKILL.md ↗](https://github.com/microsoft/skills/blob/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/.github/plugins/azure-skills/skills/python-appservice-deploy/SKILL.md) Checked 2026-10-14 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 ↗](https://github.com/microsoft/skills/blob/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/.github/plugins/azure-skills/README.md) Checked 2026-10-14 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 ↗](https://github.com/microsoft/skills/blob/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/README.md) Checked 2026-10-14 https://github.com/microsoft/skills/blob/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/README.md Supports: /plugin install azure@skills and the MIT statement
- [Repository LICENSE ↗](https://github.com/microsoft/skills/blob/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/LICENSE) Checked 2026-10-14 https://github.com/microsoft/skills/blob/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/LICENSE Supports: MIT License
- [Pinned source sections reviewed in continuation W50 on 2026-10-15 ↗](https://raw.githubusercontent.com/microsoft/skills/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/.github/plugins/azure-skills/skills/python-appservice-deploy/SKILL.md) Checked 2026-10-15 https://raw.githubusercontent.com/microsoft/skills/fc164ba1d7a0c10377dbcc1c9ac07253b9329fdb/.github/plugins/azure-skills/skills/python-appservice-deploy/SKILL.md Supports: upstreamDescription, limitations, review.reviewedAt, review.notTested

KEEP COMPARING

## Other approaches to consider.

Related by category or shared topics. These are alternatives to inspect, not a measured quality order.

 [### Azure app onboard deploy ↗ Pins the app-onboard deploy phase, which requires a what-if preview and an approval gate before it changes Azure, then says to stop.](/skills/microsoft-deploy/)[### API Center management SDK ↗ Pins Microsoft's API Center Python skill, which requires DefaultAzureCredential and rejects connection strings and API keys for the management client.](/skills/microsoft-azure-mgmt-apicenter-py/)[### API Management SDK ↗ Pins Microsoft's API Management Python skill, which requires DefaultAzureCredential and rejects connection strings and API keys for the management client.](/skills/microsoft-azure-mgmt-apimanagement-py/)

 [AI Tools ↗](/tools/)[Skills ↗](/skills/)[Agents ↗](/agents/)[MCP Servers ↗](/mcp-servers/)[Workflows ↗](/workflows/)

## Continue your investigation

 - [Choose a toolkit](/tools/)
- [Inspect execution hosts](/agents/)
- [Check tool access](/mcp-servers/)
- [Check project dependencies](/check-repo/)
