Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
8e22bff
Update samples to create Foundry in resource group location
deeikele Nov 13, 2026
3068749
allow location override
deeikele Nov 13, 2026
456dd6c
Regenerate private network templates for location override
Copilot Nov 13, 2026
1bb99d2
Sync disable-local-auth ARM template location
Copilot Nov 13, 2026
eaf4a24
Fix remaining region alignment findings
Copilot Nov 13, 2026
b9be901
Update location parameter for Cognitive Services account
deeikele Nov 13, 2026
25e64c6
Change location to use parameters in azuredeploy.json
deeikele Nov 13, 2026
a4b8fcf
Change location parameter for Cognitive Services account
deeikele Nov 13, 2026
f82615f
Update location parameter in azuredeploy.json
deeikele Nov 13, 2026
22acf39
Change location value to use parameters
deeikele Nov 13, 2026
3ab71b4
Change location value to use parameters for region
deeikele Nov 13, 2026
5d7d3ad
Preserve account location in generated template
Copilot Nov 13, 2026
65f389f
Change location value to use parameters for region
deeikele Nov 13, 2026
144e2d6
Change location value to use parameters
deeikele Nov 13, 2026
c4d7fba
Update default region to 'swedencentral'
deeikele Nov 13, 2026
0520edc
Change location value to use parameters
deeikele Nov 13, 2026
8360f53
Change location parameter for Cognitive Services account
deeikele Nov 13, 2026
9cb0d9f
Change location value to use parameters
deeikele Nov 13, 2026
7527fea
Update location parameter in azuredeploy.json
deeikele Nov 13, 2026
bc0d33c
Update location parameter for Cognitive Services account
deeikele Nov 13, 2026
2b6d550
Change location to use parameters in azuredeploy.json
deeikele Nov 13, 2026
d50c816
Change location value to use parameters
deeikele Nov 13, 2026
b97ef2d
Update location property in azuredeploy.json
deeikele Nov 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"_generator": {
"name": "bicep",
"version": "0.39.26.7824",
"templateHash": "4687470877814835157"
"templateHash": "848823311706516415"
}
},
"parameters": {
Expand All @@ -19,7 +19,40 @@
},
"location": {
"type": "string",
"defaultValue": "eastus2"
"defaultValue": "[resourceGroup().location]",
"allowedValues": [
"australiaeast",
"brazilsouth",
"canadacentral",
"canadaeast",
"centralindia",
"centralus",
"eastasia",
"eastus",
"francecentral",
"germanywestcentral",
"italynorth",
"japaneast",
"koreacentral",
"northcentralus",
"northeurope",
"norwayeast",
"qatarcentral",
"southafricanorth",
"southcentralus",
"southindia",
"southeastasia",
"spaincentral",
"swedencentral",
"switzerlandnorth",
"uaenorth",
"uksouth",
"westeurope",
"westus",
"westus3",
"usgovarizona",
"usgovvirginia"
]
}
},
"resources": [
Expand Down
35 changes: 34 additions & 1 deletion infrastructure/infrastructure-setup-bicep/00-basic/main.bicep
Original file line number Diff line number Diff line change
@@ -1,6 +1,39 @@
param aiFoundryName string = 'foundry-name'
param aiProjectName string = '${aiFoundryName}-proj'
param location string = 'eastus2'
@allowed([
'australiaeast'
'brazilsouth'
'canadacentral'
'canadaeast'
'centralindia'
'centralus'
'eastasia'
'eastus'
'francecentral'
'germanywestcentral'
'italynorth'
'japaneast'
'koreacentral'
'northcentralus'
'northeurope'
'norwayeast'
'qatarcentral'
'southafricanorth'
'southcentralus'
'southindia'
'southeastasia'
'spaincentral'
'swedencentral'
'switzerlandnorth'
'uaenorth'
'uksouth'
'westeurope'
'westus'
'westus3'
'usgovarizona'
'usgovvirginia'
])
param location string = any(resourceGroup().location)

/*
An AI Foundry resources is a variant of a CognitiveServices/account resource type
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"_generator": {
"name": "bicep",
"version": "0.46.1.21595",
"templateHash": "2257742962386746331"
"templateHash": "10260295346214143128"
}
},
"parameters": {
Expand Down Expand Up @@ -40,9 +40,42 @@
},
"location": {
"type": "string",
"defaultValue": "eastus2",
"defaultValue": "[resourceGroup().location]",
"allowedValues": [
"australiaeast",
"brazilsouth",
"canadacentral",
"canadaeast",
"centralindia",
"centralus",
"eastasia",
"eastus",
"francecentral",
"germanywestcentral",
"italynorth",
"japaneast",
"koreacentral",
"northcentralus",
"northeurope",
"norwayeast",
"qatarcentral",
"southafricanorth",
"southcentralus",
"southindia",
"southeastasia",
"spaincentral",
"swedencentral",
"switzerlandnorth",
"uaenorth",
"uksouth",
"westeurope",
"westus",
"westus3",
"usgovarizona",
"usgovvirginia"
],
"metadata": {
"description": "Region for the account, project, and model. Defaults to eastus2; can differ from gatewayLocation (e.g. a CI region)."
"description": "Region for the account, project, and model. Defaults to the resource-group location and can differ from gatewayLocation."
}
},
"gatewayLocation": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,41 @@ param projectDescription string = 'AI Gateway tier hub: owns the model behind th
@description('Hub project display name.')
param projectDisplayName string = 'AI Gateway tier hub'

@description('Region for the account, project, and model. Defaults to eastus2; can differ from gatewayLocation (e.g. a CI region).')
param location string = 'eastus2'
@description('Region for the account, project, and model. Defaults to the resource-group location and can differ from gatewayLocation.')
@allowed([
'australiaeast'
'brazilsouth'
'canadacentral'
'canadaeast'
'centralindia'
'centralus'
'eastasia'
'eastus'
'francecentral'
'germanywestcentral'
'italynorth'
'japaneast'
'koreacentral'
'northcentralus'
'northeurope'
'norwayeast'
'qatarcentral'
'southafricanorth'
'southcentralus'
'southindia'
'southeastasia'
'spaincentral'
'swedencentral'
'switzerlandnorth'
'uaenorth'
'uksouth'
'westeurope'
'westus'
'westus3'
'usgovarizona'
'usgovvirginia'
])
param location string = any(resourceGroup().location)

@allowed([
'eastus2'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,51 @@ az deployment group create \

Optional parameters:
- connectedResourceName: Name of the target Azure AI Foundry resource (default: foundry-{aiFoundryName})
- location: Azure region (default: westus)
- location: Target account location (default: deployment resource group location)
- newOrExisting: Whether to create new or use existing Azure AI Foundry resource (default: new)
- authType: Authentication type - ApiKey or AAD (default: ApiKey)
- isSharedToAll: Share connection with all users (default: true)

Example with all parameters:
az deployment group create --name AzDeploy --resource-group myResourceGroup --template-file connection-foundry.bicep --parameters aiFoundryName=myFoundry connectedResourceName=myTargetFoundry location=eastus newOrExisting=existing authType=AAD isSharedToAll=false
az deployment group create --name AzDeploy --resource-group myResourceGroup --template-file connection-foundry.bicep --parameters aiFoundryName=myFoundry connectedResourceName=myTargetFoundry location=westus3 newOrExisting=new authType=AAD isSharedToAll=false

*/
param aiFoundryName string = '<your-account-name>'
param connectedResourceName string = 'foundry-${aiFoundryName}'
param location string = 'westus'
@allowed([
'australiaeast'
'brazilsouth'
'canadacentral'
'canadaeast'
'centralindia'
'centralus'
'eastasia'
'eastus'
'francecentral'
'germanywestcentral'
'italynorth'
'japaneast'
'koreacentral'
'northcentralus'
'northeurope'
'norwayeast'
'qatarcentral'
'southafricanorth'
'southcentralus'
'southindia'
'southeastasia'
'spaincentral'
'swedencentral'
'switzerlandnorth'
'uaenorth'
'uksouth'
'westeurope'
'westus'
'westus3'
'usgovarizona'
'usgovvirginia'
])
param location string = any(resourceGroup().location)

// Whether to create a new Azure AI Foundry resource
@allowed([
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"_generator": {
"name": "bicep",
"version": "0.37.4.10188",
"templateHash": "8574372845632247592"
"templateHash": "10842231687547934134"
}
},
"parameters": {
Expand All @@ -19,7 +19,40 @@
},
"location": {
"type": "string",
"defaultValue": "westus"
"defaultValue": "[resourceGroup().location]",
"allowedValues": [
"australiaeast",
"brazilsouth",
"canadacentral",
"canadaeast",
"centralindia",
"centralus",
"eastasia",
"eastus",
"francecentral",
"germanywestcentral",
"italynorth",
"japaneast",
"koreacentral",
"northcentralus",
"northeurope",
"norwayeast",
"qatarcentral",
"southafricanorth",
"southcentralus",
"southindia",
"southeastasia",
"spaincentral",
"swedencentral",
"switzerlandnorth",
"uaenorth",
"uksouth",
"westeurope",
"westus",
"westus3",
"usgovarizona",
"usgovvirginia"
]
},
"newOrExisting": {
"type": "string",
Expand Down Expand Up @@ -61,19 +94,19 @@
"name": "[format('{0}/{1}', parameters('aiFoundryName'), format('{0}-foundry', parameters('aiFoundryName')))]",
"properties": {
"category": "AIServices",
"target": "[reference(resourceId('Microsoft.CognitiveServices/accounts', parameters('connectedResourceName')), '2025-04-01-preview').endpoint]",
"target": "[if(equals(parameters('newOrExisting'), 'new'), reference(resourceId('Microsoft.CognitiveServices/accounts', parameters('connectedResourceName')), '2025-04-01-preview').endpoint, reference(resourceId('Microsoft.CognitiveServices/accounts', parameters('connectedResourceName')), '2025-04-01-preview').endpoint)]",
"authType": "[parameters('authType')]",
"isSharedToAll": "[parameters('isSharedToAll')]",
"credentials": "[if(equals(parameters('authType'), 'ApiKey'), createObject('key', listKeys(resourceId('Microsoft.CognitiveServices/accounts', parameters('connectedResourceName')), '2025-04-01-preview').key1), createObject())]",
"credentials": "[if(equals(parameters('authType'), 'ApiKey'), createObject('key', if(equals(parameters('newOrExisting'), 'new'), listKeys(resourceId('Microsoft.CognitiveServices/accounts', parameters('connectedResourceName')), '2025-04-01-preview').key1, listKeys(resourceId('Microsoft.CognitiveServices/accounts', parameters('connectedResourceName')), '2025-04-01-preview').key1)), createObject())]",
"metadata": {
"ApiType": "Azure",
"ResourceId": "[resourceId('Microsoft.CognitiveServices/accounts', parameters('connectedResourceName'))]",
"location": "[reference(resourceId('Microsoft.CognitiveServices/accounts', parameters('connectedResourceName')), '2025-04-01-preview', 'full').location]"
"ResourceId": "[if(equals(parameters('newOrExisting'), 'new'), resourceId('Microsoft.CognitiveServices/accounts', parameters('connectedResourceName')), resourceId('Microsoft.CognitiveServices/accounts', parameters('connectedResourceName')))]",
"location": "[if(equals(parameters('newOrExisting'), 'new'), reference(resourceId('Microsoft.CognitiveServices/accounts', parameters('connectedResourceName')), '2025-04-01-preview', 'full').location, reference(resourceId('Microsoft.CognitiveServices/accounts', parameters('connectedResourceName')), '2025-04-01-preview', 'full').location)]"
}
},
"dependsOn": [
"[resourceId('Microsoft.CognitiveServices/accounts', parameters('connectedResourceName'))]"
]
}
]
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Bring Your Own Azure Storage for Speech and Language capabilities (Preview)

Use this template to associate your Azure Storage account to a new Foundry resource. This template allows you to bring an existing Azure Storage account as the storage for your Speech and Language usecases. Learn more about this feature's restrictions via our public documentation.
Use this template to create a Foundry resource and project, then associate an Azure Storage account with the resource for Speech and Language use cases. You can use an existing storage account or create one with the template. Learn more about this feature's restrictions via our public documentation.

## Advanced implementation details
### How is this setup different from an Azure Storage connection in Foundry?
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,44 @@
@description('Name of the Azure AI Foundry account')
param aiFoundryName string

@description('Name of the first project under the Azure AI Foundry account')
param aiProjectName string = '${aiFoundryName}-proj'

@description('Location for the resource')
param location string = resourceGroup().location
@allowed([
'australiaeast'
'brazilsouth'
'canadacentral'
'canadaeast'
'centralindia'
'centralus'
'eastasia'
'eastus'
'francecentral'
'germanywestcentral'
'italynorth'
'japaneast'
'koreacentral'
'northcentralus'
'northeurope'
'norwayeast'
'qatarcentral'
'southafricanorth'
'southcentralus'
'southindia'
'southeastasia'
'spaincentral'
'swedencentral'
'switzerlandnorth'
'uaenorth'
'uksouth'
'westeurope'
'westus'
'westus3'
'usgovarizona'
'usgovvirginia'
])
param location string = any(resourceGroup().location)

// Storage Account Parameters
@description('Azure storage resource ID (leave empty to create a new storage account)')
Expand Down Expand Up @@ -107,6 +143,16 @@ resource aiFoundry 'Microsoft.CognitiveServices/accounts@2025-07-01-preview' = {
}
}

resource aiProject 'Microsoft.CognitiveServices/accounts/projects@2025-06-01' = {
name: aiProjectName
parent: aiFoundry
location: location
identity: {
type: 'SystemAssigned'
}
properties: {}
}

// ====================================================================
// STEP 4: CREATE ROLE ASSIGNMENT FOR AI FOUNDRY'S MANAGED IDENTITY
// ====================================================================
Expand Down
Loading
Loading