Found in: Azure AI Foundry portal → Project → Overview → Resource ID
Quick Workflow
Fast Path (Current Region Has Capacity)
1. Check authentication → 2. Get project → 3. Check current region capacity
→ 4. Deploy immediately
Alternative Region Path (No Capacity)
1. Check authentication → 2. Get project → 3. Check current region (no capacity)
→ 4. Query all regions → 5. Show alternatives → 6. Select region + project
→ 7. Deploy
Deployment Phases
Phase
Action
Key Commands
1. Verify Auth
Check Azure CLI login and subscription
az account show, az login
2. Get Project
Parse PROJECT_RESOURCE_ID ARM ID, verify exists
az cognitiveservices account show
3. Get Model
List available models, user selects model + version
az cognitiveservices account list-models
4. Check Current Region
Query capacity using GlobalStandard SKU
az rest --method GET .../modelCapacities
5. Multi-Region Query
If no local capacity, query all regions
Same capacity API without location filter
6. Select Region + Project
User picks region; find or create project
az cognitiveservices account list, az cognitiveservices account create
For detailed step-by-step instructions, see workflow reference.
Error Handling
Error
Symptom
Resolution
Auth failure
az account show returns error
Run az login then az account set --subscription <id>
No quota
All regions show 0 capacity
Defer to the quota skill for increase requests and troubleshooting; check existing deployments; try alternative models
Model not found
Empty capacity list
Verify model name with az cognitiveservices account list-models; check case sensitivity
Name conflict
"deployment already exists"
Append suffix to deployment name (handled automatically by generate_deployment_name script)
Region unavailable
Region doesn't support model
Select a different region from the available list
Permission denied
"Forbidden" or "Unauthorized"
Verify Cognitive Services Contributor role: az role assignment list --assignee <user>
Advanced Usage
# Custom capacity
az cognitiveservices account deployment create ... --sku-capacity <value>
# Check deployment status
az cognitiveservices account deployment show --name <acct> --resource-group <rg> --deployment-name <name> --query "{Status:properties.provisioningState}"
# Delete deployment
az cognitiveservices account deployment delete --name <acct> --resource-group <rg> --deployment-name <name>
Notes
SKU: GlobalStandard only — API Version: 2024-10-01 (GA stable)
Related Skills
microsoft-foundry - Parent skill for Azure AI Foundry operations
quota — For quota viewing, increase requests, and troubleshooting quota errors, defer to this skill
azure-quick-review - Review Azure resources for compliance
azure-cost-estimation - Estimate costs for Azure deployments
azure-validate - Validate Azure infrastructure before deployment
1---2name: preset3description: "|"4---56# Deploy Model to Optimal Region78Automates intelligent Azure OpenAI model deployment by checking capacity across regions and deploying to the best available option.910## What This Skill Does11121. Verifies Azure authentication and project scope132. Checks capacity in current project's region143. If no capacity: analyzes all regions and shows available alternatives154. Filters projects by selected region165. Supports creating new projects if needed176. Deploys model with GlobalStandard SKU187. Monitors deployment progress1920## Prerequisites2122- Azure CLI installed and configured23- Active Azure subscription with Cognitive Services read/create permissions24- Azure AI Foundry project resource ID (`PROJECT_RESOURCE_ID` env var or provided interactively)25 - Format: `/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.CognitiveServices/accounts/{account}/projects/{project}`26 - Found in: Azure AI Foundry portal → Project → Overview → Resource ID2728## Quick Workflow2930### Fast Path (Current Region Has Capacity)31```321. Check authentication → 2. Get project → 3. Check current region capacity33→ 4. Deploy immediately34```3536### Alternative Region Path (No Capacity)37```381. Check authentication → 2. Get project → 3. Check current region (no capacity)39→ 4. Query all regions → 5. Show alternatives → 6. Select region + project40→ 7. Deploy41```4243---4445## Deployment Phases4647| Phase | Action | Key Commands |48|-------|--------|-------------|49| 1. Verify Auth | Check Azure CLI login and subscription | `az account show`, `az login` |50| 2. Get Project | Parse `PROJECT_RESOURCE_ID` ARM ID, verify exists | `az cognitiveservices account show` |51| 3. Get Model | List available models, user selects model + version | `az cognitiveservices account list-models` |52| 4. Check Current Region | Query capacity using GlobalStandard SKU | `az rest --method GET .../modelCapacities` |53| 5. Multi-Region Query | If no local capacity, query all regions | Same capacity API without location filter |54| 6. Select Region + Project | User picks region; find or create project | `az cognitiveservices account list`, `az cognitiveservices account create` |55| 7. Deploy | Generate unique name, calculate capacity (50% available, min 50 TPM), create deployment | `az cognitiveservices account deployment create` |5657For detailed step-by-step instructions, see [workflow reference](references/workflow.md).5859---6061## Error Handling6263| Error | Symptom | Resolution |64|-------|---------|------------|65| Auth failure | `az account show` returns error | Run `az login` then `az account set --subscription <id>` |66| No quota | All regions show 0 capacity | Defer to the [quota skill](../../../quota/quota.md) for increase requests and troubleshooting; check existing deployments; try alternative models |67| Model not found | Empty capacity list | Verify model name with `az cognitiveservices account list-models`; check case sensitivity |68| Name conflict | "deployment already exists" | Append suffix to deployment name (handled automatically by `generate_deployment_name` script) |69| Region unavailable | Region doesn't support model | Select a different region from the available list |70| Permission denied | "Forbidden" or "Unauthorized" | Verify Cognitive Services Contributor role: `az role assignment list --assignee <user>` |7172---7374## Advanced Usage7576```bash77# Custom capacity78az cognitiveservices account deployment create ... --sku-capacity <value>7980# Check deployment status81az cognitiveservices account deployment show --name <acct> --resource-group <rg> --deployment-name <name> --query "{Status:properties.provisioningState}"8283# Delete deployment84az cognitiveservices account deployment delete --name <acct> --resource-group <rg> --deployment-name <name>85```8687## Notes8889- **SKU:** GlobalStandard only — **API Version:** 2024-10-01 (GA stable)9091---9293## Related Skills9495- **microsoft-foundry** - Parent skill for Azure AI Foundry operations96- **[quota](../../../quota/quota.md)** — For quota viewing, increase requests, and troubleshooting quota errors, defer to this skill97- **azure-quick-review** - Review Azure resources for compliance98- **azure-cost-estimation** - Estimate costs for Azure deployments99- **azure-validate** - Validate Azure infrastructure before deployment
Run npx skillmds@latest add tryboy869/preset in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
| It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
Tryboy869 (@tryboy869) published this skill. Their other Agent Skills are listed on their SkillMD profile.