Customize Model Deployment
Interactive guided workflow for deploying Azure OpenAI models with full customization control over version, SKU, capacity, content filtering, and advanced options.
Quick Reference
| Property |
Description |
| Flow |
Interactive step-by-step guided deployment |
| Customization |
Version, SKU, Capacity, RAI Policy, Advanced Options |
| SKU Support |
GlobalStandard, Standard, ProvisionedManaged, DataZoneStandard |
| Best For |
Precise control over deployment configuration |
| Authentication |
Azure CLI (az login) |
| Tools |
Azure CLI, MCP tools (optional) |
When to Use This Skill
Use this skill when you need precise control over deployment configuration:
- ✅ Choose specific model version (not just latest)
- ✅ Select deployment SKU (GlobalStandard vs Standard vs PTU)
- ✅ Set exact capacity within available range
- ✅ Configure content filtering (RAI policy selection)
- ✅ Enable advanced features (dynamic quota, priority processing, spillover)
- ✅ PTU deployments (Provisioned Throughput Units)
Alternative: Use preset for quick deployment to the best available region with automatic configuration.
Comparison: customize vs preset
| Feature |
customize |
preset |
| Focus |
Full customization control |
Optimal region selection |
| Version Selection |
User chooses from available |
Uses latest automatically |
| SKU Selection |
User chooses (GlobalStandard/Standard/PTU) |
GlobalStandard only |
| Capacity |
User specifies exact value |
Auto-calculated (50% of available) |
| RAI Policy |
User selects from options |
Default policy only |
| Region |
Current region first, falls back to all regions if no capacity |
Checks capacity across all regions upfront |
| Use Case |
Precise deployment requirements |
Quick deployment to best region |
Prerequisites
- Azure subscription with Cognitive Services Contributor or Owner role
- Azure AI Foundry project resource ID (format:
/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.CognitiveServices/accounts/{account}/projects/{project})
- Azure CLI installed and authenticated (
az login)
- Optional: Set
PROJECT_RESOURCE_ID environment variable
Workflow Overview
Complete Flow (14 Phases)
1. Verify Authentication
2. Get Project Resource ID
3. Verify Project Exists
4. Get Model Name (if not provided)
5. List Model Versions → User Selects
6. List SKUs for Version → User Selects
7. Get Capacity Range → User Configures
7b. If no capacity: Cross-Region Fallback → Query all regions → User selects region/project
8. List RAI Policies → User Selects
9. Configure Advanced Options (if applicable)
10. Configure Version Upgrade Policy
11. Generate Deployment Name
12. Review Configuration
13. Execute Deployment & Monitor
Fast Path (Defaults)
If user accepts all defaults (latest version, GlobalStandard SKU, recommended capacity, default RAI policy, standard upgrade policy), deployment completes in ~5 interactions.
Phase Summaries
⚠️ MUST READ: Before executing any phase, load references/customize-workflow.md for the full scripts and implementation details. The summaries below describe what each phase does — the reference file contains the how (CLI commands, quota patterns, capacity formulas, cross-region fallback logic).
| Phase |
Action |
Key Details |
| 1. Verify Auth |
Check az account show; prompt az login if needed |
Verify correct subscription is active |
| 2. Get Project ID |
Read PROJECT_RESOURCE_ID env var or prompt user |
ARM resource ID format required |
| 3. Verify Project |
Parse resource ID, call az cognitiveservices account show |
Extracts subscription, RG, account, project, region |
| 4. Get Model |
List models via az cognitiveservices account list-models |
User selects from available or enters custom name |
| 5. Select Version |
Query versions for chosen model |
Recommend latest; user picks from list |
| 6. Select SKU |
Query model catalog + subscription quota, show only deployable SKUs |
⚠️ Never hardcode SKU lists — always query live data |
| 7. Configure Capacity |
Query capacity API, validate min/max/step, user enters value |
Cross-region fallback if no capacity in current region |
| 8. Select RAI Policy |
Present content filter options |
Default: Microsoft.DefaultV2 |
| 9. Advanced Options |
Dynamic quota (GlobalStandard), priority processing (PTU), spillover |
SKU-dependent availability |
| 10. Upgrade Policy |
Choose: OnceNewDefaultVersionAvailable / OnceCurrentVersionExpired / NoAutoUpgrade |
Default: auto-upgrade on new default |
| 11. Deployment Name |
Auto-generate unique name, allow custom override |
Validates format: ^[\w.-]{2,64}$ |
| 12. Review |
Display full config summary, confirm before proceeding |
User approves or cancels |
| 13. Deploy & Monitor |
az cognitiveservices account deployment create, poll status |
Timeout after 5 min; show endpoint + portal link |
Error Handling
Common Issues and Resolutions
| Error |
Cause |
Resolution |
| Model not found |
Invalid model name |
List available models with az cognitiveservices account list-models |
| Version not available |
Version not supported for SKU |
Select different version or SKU |
| Insufficient quota |
Capacity > available quota |
Skill auto-searches all regions; fails only if no region has quota |
| SKU not supported |
SKU not available in region |
Cross-region fallback searches other regions automatically |
| Capacity out of range |
Invalid capacity value |
PREVENTED: Skill validates min/max/step at input (Phase 7) |
| Deployment name exists |
Name conflict |
Auto-incremented name generation |
| Authentication failed |
Not logged in |
Run az login |
| Permission denied |
Insufficient permissions |
Assign Cognitive Services Contributor role |
| Capacity query fails |
API/permissions/network error |
DEPLOYMENT BLOCKED: Will not proceed without valid quota data |
Troubleshooting Commands
# Check deployment status
az cognitiveservices account deployment show --name <account> --resource-group <rg> --deployment-name <name>
# List all deployments
az cognitiveservices account deployment list --name <account> --resource-group <rg> -o table
# Check quota usage
az cognitiveservices usage list --name <account> --resource-group <rg>
# Delete failed deployment
az cognitiveservices account deployment delete --name <account> --resource-group <rg> --deployment-name <name>
Selection Guides & Advanced Topics
For SKU comparison tables, PTU sizing formulas, and advanced option details, load references/customize-guides.md.
SKU selection: GlobalStandard (production/HA) → Standard (dev/test) → ProvisionedManaged (high-volume/guaranteed throughput) → DataZoneStandard (data residency).
Capacity: TPM-based SKUs range from 1K (dev) to 100K+ (large production). PTU-based use formula: (Input TPM × 0.001) + (Output TPM × 0.002) + (Requests/min × 0.1).
Advanced options: Dynamic quota (GlobalStandard only), priority processing (PTU only, extra cost), spillover (overflow to backup deployment).
Related Skills
- preset - Quick deployment to best region with automatic configuration
- microsoft-foundry - Parent skill for all Azure AI Foundry operations
- quota — For quota viewing, increase requests, and troubleshooting quota errors, defer to this skill instead of duplicating guidance
- rbac - Manage permissions and access control
Notes
- Set
PROJECT_RESOURCE_ID environment variable to skip prompt
- Not all SKUs available in all regions; capacity varies by subscription/region/model
- Custom RAI policies can be configured in Azure Portal
- Automatic version upgrades occur during maintenance windows
- Use Azure Monitor and Application Insights for production deployments
1---2name: customize-33description: Interactive guided deployment flow for Azure OpenAI models with full customization control. Step-by-step selection of model version, SKU (GlobalStandard/Standard/ProvisionedManaged), capacity, RAI policy (content filter), and advanced options (dynamic quota, priority processing, spillover). USE FOR: custom deployment, customize model deployment, choose version, select SKU, set capacity, configure content filter, RAI policy, deployment options, detailed deployment, advanced deployment, PTU deployment, provisioned throughput. DO NOT USE FOR: quick deployment to optimal region (use preset).4---5
6# Customize Model Deployment
7
8Interactive guided workflow for deploying Azure OpenAI models with full customization control over version, SKU, capacity, content filtering, and advanced options.
9
10## Quick Reference
11
12| Property | Description |
13|----------|-------------|
14| **Flow** | Interactive step-by-step guided deployment |
15| **Customization** | Version, SKU, Capacity, RAI Policy, Advanced Options |
16| **SKU Support** | GlobalStandard, Standard, ProvisionedManaged, DataZoneStandard |
17| **Best For** | Precise control over deployment configuration |
18| **Authentication** | Azure CLI (`az login`) |
19| **Tools** | Azure CLI, MCP tools (optional) |
20
21## When to Use This Skill
22
23Use this skill when you need **precise control** over deployment configuration:
24
25- ✅ **Choose specific model version** (not just latest)
26- ✅ **Select deployment SKU** (GlobalStandard vs Standard vs PTU)
27- ✅ **Set exact capacity** within available range
28- ✅ **Configure content filtering** (RAI policy selection)
29- ✅ **Enable advanced features** (dynamic quota, priority processing, spillover)
30- ✅ **PTU deployments** (Provisioned Throughput Units)
31
32**Alternative:** Use `preset` for quick deployment to the best available region with automatic configuration.
33
34### Comparison: customize vs preset
35
36| Feature | customize | preset |
37|---------|---------------------|----------------------------|
38| **Focus** | Full customization control | Optimal region selection |
39| **Version Selection** | User chooses from available | Uses latest automatically |
40| **SKU Selection** | User chooses (GlobalStandard/Standard/PTU) | GlobalStandard only |
41| **Capacity** | User specifies exact value | Auto-calculated (50% of available) |
42| **RAI Policy** | User selects from options | Default policy only |
43| **Region** | Current region first, falls back to all regions if no capacity | Checks capacity across all regions upfront |
44| **Use Case** | Precise deployment requirements | Quick deployment to best region |
45
46## Prerequisites
47
48- Azure subscription with Cognitive Services Contributor or Owner role
49- Azure AI Foundry project resource ID (format: `/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.CognitiveServices/accounts/{account}/projects/{project}`)
50- Azure CLI installed and authenticated (`az login`)
51- Optional: Set `PROJECT_RESOURCE_ID` environment variable
52
53## Workflow Overview
54
55### Complete Flow (14 Phases)
56
57```
581. Verify Authentication
592. Get Project Resource ID
603. Verify Project Exists
614. Get Model Name (if not provided)
625. List Model Versions → User Selects
636. List SKUs for Version → User Selects
647. Get Capacity Range → User Configures
65 7b. If no capacity: Cross-Region Fallback → Query all regions → User selects region/project
668. List RAI Policies → User Selects
679. Configure Advanced Options (if applicable)
6810. Configure Version Upgrade Policy
6911. Generate Deployment Name
7012. Review Configuration
7113. Execute Deployment & Monitor
72```
73
74### Fast Path (Defaults)
75
76If user accepts all defaults (latest version, GlobalStandard SKU, recommended capacity, default RAI policy, standard upgrade policy), deployment completes in ~5 interactions.
77
78---
79
80## Phase Summaries
81
82> ⚠️ **MUST READ:** Before executing any phase, load [references/customize-workflow.md](references/customize-workflow.md) for the full scripts and implementation details. The summaries below describe *what* each phase does — the reference file contains the *how* (CLI commands, quota patterns, capacity formulas, cross-region fallback logic).
83
84| Phase | Action | Key Details |
85|-------|--------|-------------|
86| **1. Verify Auth** | Check `az account show`; prompt `az login` if needed | Verify correct subscription is active |
87| **2. Get Project ID** | Read `PROJECT_RESOURCE_ID` env var or prompt user | ARM resource ID format required |
88| **3. Verify Project** | Parse resource ID, call `az cognitiveservices account show` | Extracts subscription, RG, account, project, region |
89| **4. Get Model** | List models via `az cognitiveservices account list-models` | User selects from available or enters custom name |
90| **5. Select Version** | Query versions for chosen model | Recommend latest; user picks from list |
91| **6. Select SKU** | Query model catalog + subscription quota, show only deployable SKUs | ⚠️ Never hardcode SKU lists — always query live data |
92| **7. Configure Capacity** | Query capacity API, validate min/max/step, user enters value | Cross-region fallback if no capacity in current region |
93| **8. Select RAI Policy** | Present content filter options | Default: `Microsoft.DefaultV2` |
94| **9. Advanced Options** | Dynamic quota (GlobalStandard), priority processing (PTU), spillover | SKU-dependent availability |
95| **10. Upgrade Policy** | Choose: OnceNewDefaultVersionAvailable / OnceCurrentVersionExpired / NoAutoUpgrade | Default: auto-upgrade on new default |
96| **11. Deployment Name** | Auto-generate unique name, allow custom override | Validates format: `^[\w.-]{2,64}$` |
97| **12. Review** | Display full config summary, confirm before proceeding | User approves or cancels |
98| **13. Deploy & Monitor** | `az cognitiveservices account deployment create`, poll status | Timeout after 5 min; show endpoint + portal link |
99
100
101---
102
103## Error Handling
104
105### Common Issues and Resolutions
106
107| Error | Cause | Resolution |
108|-------|-------|------------|
109| **Model not found** | Invalid model name | List available models with `az cognitiveservices account list-models` |
110| **Version not available** | Version not supported for SKU | Select different version or SKU |
111| **Insufficient quota** | Capacity > available quota | Skill auto-searches all regions; fails only if no region has quota |
112| **SKU not supported** | SKU not available in region | Cross-region fallback searches other regions automatically |
113| **Capacity out of range** | Invalid capacity value | **PREVENTED**: Skill validates min/max/step at input (Phase 7) |
114| **Deployment name exists** | Name conflict | Auto-incremented name generation |
115| **Authentication failed** | Not logged in | Run `az login` |
116| **Permission denied** | Insufficient permissions | Assign Cognitive Services Contributor role |
117| **Capacity query fails** | API/permissions/network error | **DEPLOYMENT BLOCKED**: Will not proceed without valid quota data |
118
119### Troubleshooting Commands
120
121```bash
122# Check deployment status
123az cognitiveservices account deployment show --name <account> --resource-group <rg> --deployment-name <name>
124
125# List all deployments
126az cognitiveservices account deployment list --name <account> --resource-group <rg> -o table
127
128# Check quota usage
129az cognitiveservices usage list --name <account> --resource-group <rg>
130
131# Delete failed deployment
132az cognitiveservices account deployment delete --name <account> --resource-group <rg> --deployment-name <name>
133```
134
135---
136
137## Selection Guides & Advanced Topics
138
139> For SKU comparison tables, PTU sizing formulas, and advanced option details, load [references/customize-guides.md](references/customize-guides.md).
140
141**SKU selection:** GlobalStandard (production/HA) → Standard (dev/test) → ProvisionedManaged (high-volume/guaranteed throughput) → DataZoneStandard (data residency).
142
143**Capacity:** TPM-based SKUs range from 1K (dev) to 100K+ (large production). PTU-based use formula: `(Input TPM × 0.001) + (Output TPM × 0.002) + (Requests/min × 0.1)`.
144
145**Advanced options:** Dynamic quota (GlobalStandard only), priority processing (PTU only, extra cost), spillover (overflow to backup deployment).
146
147---
148
149## Related Skills
150
151- **preset** - Quick deployment to best region with automatic configuration
152- **microsoft-foundry** - Parent skill for all Azure AI Foundry operations
153- **[quota](../../../quota/quota.md)** — For quota viewing, increase requests, and troubleshooting quota errors, defer to this skill instead of duplicating guidance
154- **rbac** - Manage permissions and access control
155
156---
157
158## Notes
159
160- Set `PROJECT_RESOURCE_ID` environment variable to skip prompt
161- Not all SKUs available in all regions; capacity varies by subscription/region/model
162- Custom RAI policies can be configured in Azure Portal
163- Automatic version upgrades occur during maintenance windows
164- Use Azure Monitor and Application Insights for production deployments