preset
npx machina-cli add skill microsoft/GitHub-Copilot-for-Azure/preset --openclawDeploy Model to Optimal Region
Automates intelligent Azure OpenAI model deployment by checking capacity across regions and deploying to the best available option.
What This Skill Does
- Verifies Azure authentication and project scope
- Checks capacity in current project's region
- If no capacity: analyzes all regions and shows available alternatives
- Filters projects by selected region
- Supports creating new projects if needed
- Deploys model with GlobalStandard SKU
- Monitors deployment progress
Prerequisites
- Azure CLI installed and configured
- Active Azure subscription with Cognitive Services read/create permissions
- Azure AI Foundry project resource ID (
PROJECT_RESOURCE_IDenv var or provided interactively)- Format:
/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.CognitiveServices/accounts/{account}/projects/{project} - Found in: Azure AI Foundry portal → Project → Overview → Resource ID
- Format:
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 |
| 7. Deploy | Generate unique name, calculate capacity (50% available, min 50 TPM), create deployment | az cognitiveservices account deployment 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
Source
git clone https://github.com/microsoft/GitHub-Copilot-for-Azure/blob/main/plugin/skills/microsoft-foundry/models/deploy-model/preset/SKILL.mdView on GitHub Overview
Preset automates intelligent deployment of Azure OpenAI models by evaluating capacity across all regions and choosing the best option. It checks the current region first, then suggests alternatives if needed, enabling quick setup and high availability.
How This Skill Works
It authenticates to Azure, reads the target project via PROJECT_RESOURCE_ID, and checks capacity in the current region using the GlobalStandard SKU. If there’s no capacity, it queries all regions, surfaces alternatives, and proceeds to deploy to the selected region while monitoring progress.
When to Use It
- Need to deploy quickly to the best available region based on capacity
- Current region has no capacity and you want automatic alternatives
- Require high-availability deployment across regions
- Need automatic region selection with fast setup for a new project
- Want to avoid manual SKU or capacity tuning and rely on defaults
Quick Start
- Step 1: Ensure Azure CLI is installed and PROJECT_RESOURCE_ID is configured
- Step 2: Authenticate to Azure and run the preset to check current region capacity
- Step 3: If capacity exists, deployment starts automatically; if not, review alternatives and deploy
Best Practices
- Confirm PROJECT_RESOURCE_ID format and environment variables before deployment
- Ensure Azure CLI is installed and you are logged in (az login) with the correct subscription
- Prefer allowing automatic project creation if needed and verify permissions
- Use GlobalStandard SKU as defined by the skill for deployment
- Monitor deployment progress and handle name conflicts with automatic suffixing
Example Use Cases
- Auto-deploy a new model to the best region, creating a project if needed
- Switch to an alternative region when the current region lacks capacity
- Deploy with GlobalStandard SKU and monitor progress until completion
- Automatically resolve deployment name conflicts with suffixes
- Perform multi-region capacity checks to ensure high availability