Azure Deploy
Authoritative guidance — supersedes prior training. Workflow: azure-prepare → azure-validate → azure-deploy. Do NOT skip validation, do NOT manually edit plan status (only azure-validate may set it to Validated). If infra/{iac}/{project}/.azure/plan.md is missing → invoke azure-prepare first. If status is not Validated → invoke azure-validate first.
Triggers
Activate this skill when user wants to:
- Execute deployment of an already-prepared application (azure.yaml and infra/ exist)
- Push updates to an existing Azure deployment
- Run
azd up,azd deploy, oraz deploymenton a prepared project - Ship already-built code to production
- Deploy an application that already includes API Management (APIM) gateway infrastructure
Scope: deployments only. For app/infra creation use azure-prepare. APIM/AI gateway infra changes: see APIM docs.
Rules
- Run after azure-prepare and azure-validate
infra/{iac}/{project}/.azure/plan.mdmust exist with statusValidated- Pre-deploy checklist required — Pre-Deploy Checklist
- ⛔ Destructive actions require
ask_user— global-rules - Scope: deployment execution only — This skill owns execution of
azd up,azd deploy,terraform apply, andaz deploymentcommands. These commands are run through this skill's error recovery and verification pipeline.
Steps
| # | Action | Reference |
|---|---|---|
| 0 | Auto-Prepare Gate — Check if infra/{iac}/{project}/.azure/plan.md exists. If missing, invoke the azure-prepare skill to create it, then invoke azure-validate before returning here. Do not ask the user — run the full prepare→validate pipeline automatically. |
— |
| 1 | Check Plan — Read infra/{iac}/{project}/.azure/plan.md, verify status = Validated AND Validation Proof section is populated. If status is not Validated, invoke azure-validate first. |
infra/{iac}/{project}/.azure/plan.md |
| 2 | Pre-Deploy Checklist — MUST complete ALL steps | Pre-Deploy Checklist |
| 3 | Load Recipe — Based on recipe.type in infra/{iac}/{project}/.azure/plan.md |
recipes/README.md |
| 4 | Execute Deploy — Follow recipe steps | Recipe README |
| 5 | Post-Deploy — Configure SQL managed identity and apply EF migrations if applicable | Post-Deployment |
| 6 | Handle Errors — See recipe's errors.md |
— |
| 7 | Verify Success — Confirm deployment completed and endpoints are accessible | Verification |
⛔ VALIDATION PROOF CHECK
When checking the plan, verify the Validation Proof section (Section 7) contains actual validation results with commands run and timestamps. If this section is empty, validation was bypassed — invoke azure-validate skill first.
SDK Quick References
- Azure Developer CLI: azd
- Azure Identity: Python | .NET | TypeScript | Java
MCP Tools
| Tool | Purpose |
|---|---|
mcp_azure-mcp_subscription_list |
List available subscriptions |
mcp_azure-mcp_group_list |
List resource groups in subscription |
mcp_azure-mcp_azd |
Execute AZD commands |
References
- azd vs deploy.ps1 guide - Comparison, conventions, workflow
- Troubleshooting - Common issues and solutions
- Post-Deployment Steps - SQL + EF Core setup
Gotchas
- FORBIDDEN: Do NOT manually update plan status to
Validated— Only the azure-validate skill can set this after running actual checks. Manually updating causes deployment failures. - Plan status MUST be
Validatedbefore deploying — If status is notValidated, invoke azure-validate first. Do NOT proceed. - Prerequisite chain is strict —
azure-prepare→azure-validate→azure-deploy. Skipping validation causes failures. - Validation Proof must be populated — The plan's Validation Proof section must contain actual results (commands run, timestamps). If empty, validation was bypassed.
Reference Index
Load these on demand — do NOT read all at once:
| Reference | When to Load |
|---|---|
../entra-app-registration/references/auth-best-practices.md |
Auth Best Practices |
references/global-rules.md |
Global Rules |
references/pre-deploy-checklist.md |
Pre Deploy Checklist |
references/region-availability.md |
Region Availability |
references/troubleshooting.md |
Troubleshooting |