Azure Python App Service Deployer
Deploy Flask, Django, FastAPI, or other Python apps to Azure App Service Linux.
The skill narrowly scopes itself to Azure App Service Linux and explicitly hands off networking, Key Vault, databases, and IaC. It shows derived resource defaults before creation and excludes .env, virtual environments, and caches. However, it defaults to a paid P0v3 plan, explicitly proceeds without confirmation, and does not explain cost, permission scope, sensitive-data flow, or rollback, so substantial points are deducted.
The main workflow, idempotent show-or-create pattern, transient retry policy, and error matrix are reasonably clear. However, framework detection is largely dependency-token based, FastAPI defaults to main:app even when the real entry point may differ, and the creation reference requires verification while the main rules prohibit post-deployment verification. These inconsistencies and the lack of execution evidence require a conservative deduction.
Trigger phrases, supported frameworks, exclusions, and the azure.yaml branch are explicit, with Bash and PowerShell coverage. Unknown frameworks are deployed despite likely startup failure, and entry-point handling is limited. The core function depends on Azure CLI, azd, Azure App Service, and overseas cloud access, with no Chinese-language or mainland-China reachability guidance, so points are deducted.
The skill is well layered across SKILL.md and focused reference files for creation, detection, deployment, errors, startup, and retries. MIT licensing, author, and version metadata are present, while repository README, SECURITY, and CI provide some governance signals. It lacks a skill-specific changelog, dependency/version matrix, installation notes, cost and permission limitations, and explicit maintenance ownership, so it does not merit full marks.
The documented flow covers resource creation, framework detection, packaging, deployment, and endpoint reporting, so it plausibly completes the code-push task. FastAPI entry-point assumptions, unknown-framework startup gaps, asynchronous build behavior, and the prohibition on post-deploy verification limit directly usable completeness. Static calibration also prevents awarding more than 7, so the score is conservative.
The references provide concrete commands, retry rules, an error matrix, and repository-level CI/test evidence. The supplied tests do not cover this skill's actual Azure deployment paths, and there is no skill-specific acceptance suite or third-party execution record. The assessment therefore rests mainly on static text and receives only limited credit.
- The default P0v3 App Service plan may incur charges; obtain explicit confirmation of cost, subscription, region, and resource names before provisioning.
- SKILL.md forbids post-deployment verification, while create-app.md and errors.md include verification or diagnostic steps; these rules should be reconciled.
- FastAPI defaults to main:app; nonstandard entry points, mixed Flask/FastAPI dependencies, or unknown frameworks may leave the deployed app unable to start.
- The material does not address mainland-China reachability, regional availability, or Chinese-language interaction support.
- No rollback, resource cleanup, or recovery procedure is documented for failed deployments.
What it does & when to use it
This skill is for developers deploying Python web applications to Azure App Service Linux. It supports Flask, Django, FastAPI, and generic Python applications, and can create the resource group, App Service plan, and Web App when they are missing. It selects an azd or Azure CLI deployment path based on whether an appservice host is defined in azure.yaml. It does not cover Container Apps, Functions, non-Python applications, Terraform/Bicep/IaC, or full infrastructure setup.
Resolves project context and detects the Python framework; checks for azure.yaml and selects the azd or Azure CLI path; uses Azure MCP tools and Azure CLI to work with subscriptions, resource groups, App Service plans, and Web Apps; creates missing resource groups, Linux P0v3 plans, and Python 3.14 Web Apps; configures uvicorn for FastAPI and relies on Oryx auto-detection for Flask/Django; sets SCM_DO_BUILD_DURING_DEPLOYMENT=true; deploys with azd deploy or az webapp deploy --type zip --track-status false; and prints the post-deploy message.
- A Flask developer needs to deploy a Python web app to Azure App Service Linux.
- A Django team needs the skill to create missing Azure resources before deployment.
- A FastAPI developer needs the App Service startup command configured for uvicorn.
- A project with an appservice host in azure.yaml needs to deploy through azd.
Pros & cons
- Supports Flask, Django, FastAPI, and generic Python applications.
- Can create missing resource groups, Linux P0v3 plans, and Web Apps.
- Supports azd deployment for projects with an appservice host in azure.yaml.
- Clearly excludes container, Functions, and IaC scenarios outside its scope.
- The target runtime is fixed to Python 3.14 on Azure App Service Linux; the source does not document other runtimes or platforms.
- The source provides no skill-specific test scenarios or test-coverage evidence.
- Post-deploy verification is prohibited, so early 5xx responses or quiet logs are not confirmed by the skill.
- VNet, Key Vault, databases, and IaC must be handed off to azure-prepare.
How to install
Install the repository and select this skill in the wizard: npx skills add microsoft/skills. Skills are installed to the selected Agent directory, such as .github/skills/. In Copilot CLI, the source also documents /plugin marketplace add microsoft/skills followed by /plugin install azure-skills@skills.
How to use
In a project containing the Python application, prompt: deploy Python to App Service, deploy my FastAPI app to App Service, Flask App Service, or Django App Service. The skill asks only for the app name and derives the resource group, plan, region, and subscription. After deployment it must stop without log tailing, curl, or health probes.
Compared to similar skills
Unlike azure-prepare, which handles broader infrastructure preparation, this skill focuses on Python code deployment. Unlike the deprecated az webapp up, it uses azd deploy or az webapp deploy.