v2.2.0
What changed
CAF-aligned resource naming is now the default. A plain azd provision generates Cloud Adoption Framework-style names such as kv-a1b2c3-dev-eus2-001 (type-workload-environment-region-instance) instead of the previous resourceToken-based names. No manual token input is required.
This is a breaking change to default naming. Existing deployments that upgrade with defaults will generate new names and may create parallel resources instead of updating in place. See "Keeping your current names" below.
Why
Operators asked for CAF-compliant names out of the box without having to define four naming tokens by hand. This release makes CAF the default and fills in safe values for every token, so greenfield environments get standards-aligned names with zero extra configuration.
Naming defaults
All four CAF tokens now have defaults, so no environment variables are required:
CAF_WORKLOAD_NAME: short deterministic hash, stable per subscription, environment, and location.CAF_ENVIRONMENT_NAME: the azd environment name.CAF_REGION_NAME: the azd location mapped to a short CAF region code (for exampleeastus2becomeseus2), with a 5-character fallback for unmapped regions.CAF_INSTANCE:001.
Override any token when a meaningful value is preferred, for example azd env set CAF_WORKLOAD_NAME contosoai. Explicit *Name parameters continue to override generated names.
Length-safe and idempotent
Every generated name is bounded to its Azure limit (storage 24, Key Vault 24, Container Apps environment 32, Cosmos DB 44, Container Registry 50, and so on). Truncation never leaves a trailing hyphen, so bounded names stay valid. Because the tokens are deterministic, redeploying the same environment produces the same names.
Keeping your current names
To preserve names from an existing deployment, pin the previous behavior before provisioning:
azd env set RESOURCE_NAMING_MODE legacy
Also fixed
Removed a duplicate NETWORK_ISOLATION App Configuration key that caused an InvalidTemplate error (defined multiple times) once a Standard-mode deployment reached the App Configuration stage.
Validation
Validated on Azure with a full azd provision in Standard mode (network isolation disabled) in Sweden Central. The deployment completed green end to end, and generated names were confirmed CAF-formatted and within Azure length limits (for example kv-<hash>-<env>-<region>-<instance>, storage compacted to 24 characters, Container Apps environment bounded to 32).