Skip to content

Parameterization

All parameters are defined in main.parameters.json. You can customize values by editing the file directly or by using azd env set for parameters that support environment variable substitution (indicated by ${VARIABLE_NAME} syntax in the default value).

# Example: set a parameter via azd
azd env set NETWORK_ISOLATION true

Tip

Parameters set via azd env set are stored locally in the azd environment and override the defaults in main.parameters.json at provisioning time. This only works for parameters whose default value uses the ${...} syntax.

Environment and location

Parameter Default Env variable Description
environmentName AZURE_ENV_NAME Name prefix for all resources (set automatically by azd init)
location AZURE_LOCATION Primary Azure region for the deployment
aiFoundryLocation AZURE_AI_FOUNDRY_LOCATION Region for AI Foundry resources (if different from primary)
cosmosLocation AZURE_COSMOS_LOCATION Region for Cosmos DB account

Identity and access

Parameter Default Env variable Description
principalId AZURE_PRINCIPAL_ID Object ID of the deploying user or service principal
useUAI USE_UAI Use user-assigned managed identity instead of system-assigned
useCAppAPIKey USE_CAPP_API_KEY Enable API key authentication for Container Apps

Feature toggles

Parameter Default Env variable Description
networkIsolation false NETWORK_ISOLATION Enable Zero Trust network isolation (private endpoints, VNet, Bastion, Jumpbox VM)
useZoneRedundancy false Enable zone redundancy for supported services
useCMK false Enable customer-managed keys for encryption
greenFieldDeployment true Green-field deployment (creates all resources from scratch)

Deploy toggles

Each toggle controls whether a specific service is provisioned. Set to true to deploy or false to skip.

Parameter Default Description
deployAiFoundry true AI Foundry account and project
deployAiFoundrySubnet true Dedicated subnet for AI Foundry agents
deployAppConfig true Azure App Configuration store
deployAppInsights true Application Insights instance
deployCosmosDb true Azure Cosmos DB account and database
deployContainerApps true Container Apps (based on containerAppsList)
deployContainerRegistry true Azure Container Registry
deployContainerEnv true Container Apps Environment
deployNsgs true Network Security Groups
deployMcp true MCP (Model Context Protocol) server
deployGroundingWithBing false Bing Grounding service
deployKeyVault true Azure Key Vault
deployVmKeyVault DEPLOY_VM_KEY_VAULT
deployLogAnalytics true Log Analytics workspace
deploySearchService true Azure AI Search service
deployStorageAccount true Azure Storage account
deployVM true Jumpbox Virtual Machine (used with network isolation)
deploySoftware true Pre-install development tools on the Jumpbox VM

Resource name overrides

By default, resource names are auto-generated from the environmentName prefix. Use these parameters to override specific resource names.

Parameter Default Description
aiFoundryAccountName null AI Foundry account name
aiFoundryProjectName null AI Foundry project name
aiFoundryProjectDisplayName null AI Foundry project display name
aiFoundryProjectDescription null AI Foundry project description
aiFoundryStorageAccountName null Storage account for AI Foundry
aiFoundrySearchServiceName null Search service for AI Foundry
aiFoundryCosmosDbName null Cosmos DB account for AI Foundry
bingSearchName null Bing Search resource name
appConfigName null App Configuration store name
appInsightsName null Application Insights name
containerEnvName null Container Apps Environment name
containerRegistryName null Container Registry name
conversationContainerName null Cosmos DB container for conversations
dataIngestContainerAppName null Data ingestion Container App name
datasourcesContainerName null Cosmos DB container for datasources
dbAccountName null Cosmos DB account name
dbDatabaseName null Cosmos DB database name
frontEndContainerAppName null Front-end Container App name
keyVaultName null Key Vault name
logAnalyticsWorkspaceName null Log Analytics workspace name
searchServiceName null AI Search service name
solutionStorageAccountName null Solution Storage account name

Existing resource IDs

Use these parameters to reuse existing resources instead of creating new ones.

Parameter Default Description
aiSearchResourceId null Resource ID of an existing AI Search service
aiFoundryStorageAccountResourceId null Resource ID of an existing Storage account for AI Foundry
aiFoundryCosmosDBAccountResourceId null Resource ID of an existing Cosmos DB account for AI Foundry

Networking

Parameter Default Env variable Description
useExistingVNet false USE_EXISTING_VNET Use an existing VNet instead of creating a new one
deploySubnets DEPLOY_SUBNETS Create subnets in the existing VNet
sideBySideDeploy SIDE_BY_SIDE Enable side-by-side deployment in the same VNet
existingVnetResourceId EXISTING_VNET_RESOURCE_ID Resource ID of the existing VNet to use

Virtual Machine

Parameter Default Description
vmAdminPassword Auto-generated Admin password for the Jumpbox VM
vmSize Standard_D8s_v5 VM size for the Jumpbox

Tags

Parameter Default Description
deploymentTags {} Custom tags applied to all deployed resources

Complex objects

Model deployments

The modelDeploymentList parameter defines which AI models to deploy in the Foundry account.

"modelDeploymentList": {
  "value": [
    {
      "name": "chat",
      "model": {
        "format": "OpenAI",
        "name": "gpt-5-nano",
        "version": "2025-08-07"
      },
      "sku": {
        "name": "GlobalStandard",
        "capacity": 40
      },
      "canonical_name": "CHAT_DEPLOYMENT_NAME",
      "apiVersion": "2025-12-01-preview"
    },
    {
      "name": "text-embedding",
      "model": {
        "format": "OpenAI",
        "name": "text-embedding-3-large",
        "version": "1"
      },
      "sku": {
        "name": "Standard",
        "capacity": 40
      },
      "canonical_name": "EMBEDDING_DEPLOYMENT_NAME",
      "apiVersion": "2025-12-01-preview"
    }
  ]
}
Field Description
name Deployment name used in API calls
model.format Model provider format (e.g., OpenAI)
model.name Model identifier
model.version Model version string
sku.name SKU tier (GlobalStandard, Standard, etc.)
sku.capacity Throughput capacity in thousands of tokens per minute
canonical_name Environment variable name exported to App Configuration
apiVersion Azure API version for the model deployment

Workload profiles

The workloadProfiles parameter defines the Container Apps Environment workload profiles.

"workloadProfiles": {
  "value": [
    {
      "name": "Consumption",
      "workloadProfileType": "Consumption"
    },
    {
      "workloadProfileType": "D4",
      "name": "main",
      "minimumCount": 0,
      "maximumCount": 1
    }
  ]
}
Field Description
name Profile name referenced by container apps
workloadProfileType Profile type (Consumption, D4, D8, etc.)
minimumCount Minimum number of instances (dedicated profiles only)
maximumCount Maximum number of instances (dedicated profiles only)

Storage account containers

The storageAccountContainersList parameter defines blob containers to create in the solution storage account.

"storageAccountContainersList": {
  "value": [
    {
      "name": "documents",
      "canonical_name": "DOCUMENTS_STORAGE_CONTAINER"
    }
  ]
}

Database containers

The databaseContainersList parameter defines containers to create in the Cosmos DB database.

"databaseContainersList": {
  "value": [
    {
      "name": "conversations",
      "canonical_name": "CONVERSATIONS_DATABASE_CONTAINER"
    }
  ]
}

Container apps

The containerAppsList parameter defines the container apps to deploy and their RBAC roles.

"containerAppsList": {
  "value": [
    {
      "name": null,
      "external": true,
      "target_port": 8080,
      "service_name": "orchestrator",
      "profile_name": "main",
      "min_replicas": 1,
      "max_replicas": 1,
      "canonical_name": "ORCHESTRATOR_APP",
      "roles": [
        "AppConfigurationDataReader",
        "CognitiveServicesUser",
        "CognitiveServicesOpenAIUser",
        "AcrPull",
        "CosmosDBBuiltInDataContributor",
        "SearchIndexDataReader",
        "StorageBlobDataReader",
        "KeyVaultSecretsUser"
      ]
    }
  ]
}
Field Description
name Container App name (auto-generated from service_name if null)
external Whether the app is externally accessible
target_port Port the container listens on
service_name Logical service name
profile_name Workload profile to use (must match a workloadProfiles entry)
min_replicas / max_replicas Replica scaling bounds
canonical_name Environment variable name exported to App Configuration
roles List of RBAC roles assigned to the container app's managed identity

See Permissions for the resulting role assignments with the default configuration.

© 2026 Azure AI Landing Zones