Deployment Guide Skill
Use this skill to orient users to the azd deployment setup, the hook flow, and how to validate regional/model availability.
Key Files & Locations
azure.yaml— azd config, services, and hooks (preprovision/postprovision/postdown)devops/scripts/azd/preprovision.sh— preflight checks, remote state setup, tfvars/provider configdevops/scripts/azd/postprovision.sh— post-provision tasks (App Config, local env, etc.)devops/scripts/azd/postdown.sh— post-azd downcleanup (optional state delete + purge reminder)devops/scripts/azd/helpers/preflight-checks.sh— region + quota checksinfra/terraform/— Terraform modules + paramsinfra/terraform/params/main.tfvars.*.json— environment-specific TF vars (including model_deployments)
Logical Flow (azd)
azd uppreprovisionhook:- Runs preflight checks (tools/auth/providers/region/quota)
- Resolves
AZURE_LOCATION - Configures Terraform backend (remote state or local)
- Generates
main.tfvars.jsonand provider config
- Terraform apply (infra create)
postprovisionhook:- App Config updates
- Local
.env.localgeneration - Data provisioning / phone config (interactive)
azd deploy(service build/push/deploy perazure.yaml)azd down→postdownhook (optional remote state cleanup + purge reminder)
Troubleshooting & Docs
Direct users to:
docs/getting-started/quickstart.md— first-timeazd updocs/deployment/README.md— advanced deployment and flagsdocs/operations/troubleshooting.mdandTROUBLESHOOTING.md— common errorsdocs/getting-started/README.md— region availability matrix
Regional Availability & Model Checks
Use these Azure CLI commands to validate region/model availability:
# List regions
az account list-locations -o table
# Check Azure OpenAI service availability in a region
az cognitiveservices account list-skus --kind OpenAI --location <region> -o table
# Check Cognitive Services availability (Speech, etc.)
az cognitiveservices account list-skus --kind SpeechServices --location <region> -o table
# Check OpenAI quota usage for a region (requires jq)
az cognitiveservices usage list -l <region> -o json \
| jq -r '.[] | select(.name.value | startswith("OpenAI.")) | "\(.name.value)\t\(.currentValue)/\(.limit)"'
# List deployments in a specific Azure OpenAI resource
az cognitiveservices account deployment list -g <resource-group> -n <openai-account> -o table
Also point to devops/scripts/azd/helpers/preflight-checks.sh for the exact checks used by azd.
Custom Model Deployment Overrides
There are two layers to adjust:
-
Provisioning (what gets created): edit
model_deploymentsin:infra/terraform/params/main.tfvars.*.json(env-specific)- or
infra/terraform/terraform.tfvars.example(reference)
-
Runtime selection (what the app uses): set the deployment name:
AZURE_OPENAI_CHAT_DEPLOYMENT_ID(preferred for app runtime)- App Config key:
azure/openai/deployment-id
Example:
azd env set AZURE_OPENAI_CHAT_DEPLOYMENT_ID "<your-deployment-name>"
azd deploy
For agent-specific overrides, update deployment_id in:
apps/artagent/backend/registries/agentstore/*/agent.yaml.
