Skip to content

v2.2.0

Choose a tag to compare

@placerda placerda released this 01 Jul 02:29
2c52f40

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 example eastus2 becomes eus2), 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).