v3.1.0
User and operator impact
Fresh deployments now consume AI Landing Zone v2.2.0, which flips the default resourceNamingMode from legacy to caf and derives every CAF token automatically (workload from a subscription/env/location hash, environment from AZURE_ENV_NAME, region from a built-in abbreviation map). Fresh Basic and Zero Trust provisions therefore produce Cloud Adoption Framework-aligned resource names out of the box (for example cosmos-<hash>-<env>-<region>-001), without requiring operators to set CAF_WORKLOAD_NAME, CAF_ENVIRONMENT_NAME, or CAF_REGION_NAME. Operators who still want the pre-v2.2.0 naming scheme can opt back in by setting RESOURCE_NAMING_MODE=legacy before azd provision.
Changed
- AI Landing Zone Bicep module pin bumped to
v2.2.0:manifest.json,.gitmodules, and theinfrasubmodule HEAD are aligned on the CAF-default landing-zone release. This supersedes the interimv2.1.6pin. main.parameters.jsonaligned with thev2.2.0CAF-default contract:resourceNamingModenow defaults tocaf, andcafWorkloadName,cafEnvironmentName, andcafRegionNamedefault to empty strings so the landing-zone bicep resolves them fromAZURE_ENV_NAME,AZURE_LOCATION, and a subscription-scoped hash. Operators can still override every token via the same\environment variables.
Fixed
- Azure AI Foundry can be provisioned in a different region than the primary deployment:
main.bicepnow exposes anaiFoundryLocationparameter (wired fromAZURE_AI_FOUNDRY_LOCATION) and routes both the AI Foundry account module and its capability host through it, so deployments withAZURE_LOCATION=<primary>andAZURE_AI_FOUNDRY_LOCATION=<foundry-region>no longer force the AI Foundry account into the primary region. scripts/postProvision.ps1is now CAF-naming aware: introduced an_resolveResourcehelper that queriesaz resource listper resource type (AI Foundry, Storage, Cosmos, Search, Key Vault, ACR, Container Apps Environment, Log Analytics, App Insights) and falls back to the legacy<prefix>-<resourceToken>derivation. Foundry project name is discovered viaaz cognitiveservices account list-projects; Cosmos DB name viaaz cosmosdb sql database list. Without this fix, post-provision failed withResourceNotFoundunder the newresourceNamingMode=cafdefault. Legacy environments continue to work via the fallback.
Component versions
| Component | Version |
|---|---|
| gpt-rag-ui | v2.3.13 |
| gpt-rag-orchestrator | v3.0.4 |
| gpt-rag-ingestion | v2.4.14 |
| infra / AI Landing Zone | v2.2.0 |
Validation
- Fresh Basic (non-Zero-Trust) provision + deploy in Australia East with AI Foundry in East US 2,
RETRIEVAL_BACKEND=foundry_iq, andFOUNDRY_IQ_PATTERN=searchIndex. - Post-provision resolver picked up all CAF-named resources; AI Foundry blocklist and RAI policy were created against the CAF-named account; AppConfig was populated with 103 keys; AI Search indexes plus the Foundry IQ knowledge source and knowledge base were created.
azd deploy --allsucceeded; all three container apps becameHealthyon--0000001with 100% traffic.- Frontend was fronted by Container Apps Easy Auth (
RedirectToLoginPage, v2 issuer). az bicep build --file infra/main.bicepexited 0.