Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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 @@ -2,11 +2,12 @@

> **NOTE:** This template is now supported

## Steps
## Steps

See Instructions: https://microsoft-my.sharepoint.com/:w:/p/fosteramanda/ES-0A2WpCgVLrK3SH_7gT9YBBb8SZk639kKmU1AIpoeDJg?e=npAZWP

[![Deploy To Azure](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/1-CONTRIBUTION-GUIDE/images/deploytoazure.svg?sanitize=true)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fazure-ai-foundry%2Ffoundry-samples%2Frefs%2Fheads%2Fmain%2Fsamples%2Fmicrosoft%2Finfrastructure-setup%2F41-standard-agent-setup%2Fazuredeploy.json)

1. Create new (or use existing) resource group:

```bash
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"_generator": {
"name": "bicep",
"version": "0.35.1.17967",
"templateHash": "18171785632055590935"
"templateHash": "6806602197376483743"
}
},
"parameters": {
Expand Down Expand Up @@ -845,6 +845,56 @@
"[resourceId('Microsoft.Resources/deployments', format('dependencies-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix')))]"
]
},
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2022-09-01",
"name": "[format('format-project-workspace-id-{0}-deployment', variables('uniqueSuffix'))]",
"properties": {
"expressionEvaluationOptions": {
"scope": "inner"
},
"mode": "Incremental",
"parameters": {
"projectWorkspaceId": {
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix'))), '2022-09-01').outputs.projectWorkspaceId.value]"
}
},
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.35.1.17967",
"templateHash": "16300646131195898347"
}
},
"parameters": {
"projectWorkspaceId": {
"type": "string"
}
},
"variables": {
"part1": "[substring(parameters('projectWorkspaceId'), 0, 8)]",
"part2": "[substring(parameters('projectWorkspaceId'), 8, 4)]",
"part3": "[substring(parameters('projectWorkspaceId'), 12, 4)]",
"part4": "[substring(parameters('projectWorkspaceId'), 16, 4)]",
"part5": "[substring(parameters('projectWorkspaceId'), 20, 12)]",
"formattedGuid": "[format('{0}-{1}-{2}-{3}-{4}', variables('part1'), variables('part2'), variables('part3'), variables('part4'), variables('part5'))]"
},
"resources": [],
"outputs": {
"projectWorkspaceIdGuid": {
"type": "string",
"value": "[variables('formattedGuid')]"
}
}
}
},
"dependsOn": [
"[resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix')))]"
]
},
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2022-09-01",
Expand All @@ -857,9 +907,6 @@
},
"mode": "Incremental",
"parameters": {
"accountPrincipalId": {
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix'))), '2022-09-01').outputs.accountPrincipalId.value]"
},
"azureStorageName": {
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('dependencies-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix'))), '2022-09-01').outputs.azureStorageName.value]"
},
Expand All @@ -874,13 +921,10 @@
"_generator": {
"name": "bicep",
"version": "0.35.1.17967",
"templateHash": "139550385861845890"
"templateHash": "1220843070959354080"
}
},
"parameters": {
"accountPrincipalId": {
"type": "string"
},
"azureStorageName": {
"type": "string"
},
Expand All @@ -904,7 +948,6 @@
}
},
"dependsOn": [
"[resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix')))]",
"[resourceId('Microsoft.Resources/deployments', format('dependencies-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix')))]",
"[resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix')))]"
]
Expand Down Expand Up @@ -1178,7 +1221,7 @@
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('dependencies-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix'))), '2022-09-01').outputs.azureStorageName.value]"
},
"workspaceId": {
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix'))), '2022-09-01').outputs.projectWorkspaceId.value]"
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('format-project-workspace-id-{0}-deployment', variables('uniqueSuffix'))), '2022-09-01').outputs.projectWorkspaceIdGuid.value]"
}
},
"template": {
Expand Down Expand Up @@ -1234,7 +1277,8 @@
"dependsOn": [
"[resourceId('Microsoft.Resources/deployments', format('capabilityHost-configuration-{0}-deployment', variables('uniqueSuffix')))]",
"[resourceId('Microsoft.Resources/deployments', format('dependencies-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix')))]",
"[resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix')))]"
"[resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix')))]",
"[resourceId('Microsoft.Resources/deployments', format('format-project-workspace-id-{0}-deployment', variables('uniqueSuffix')))]"
]
},
{
Expand All @@ -1253,7 +1297,7 @@
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('dependencies-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix'))), '2022-09-01').outputs.cosmosDBName.value]"
},
"projectWorkspaceId": {
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix'))), '2022-09-01').outputs.projectWorkspaceId.value]"
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('format-project-workspace-id-{0}-deployment', variables('uniqueSuffix'))), '2022-09-01').outputs.projectWorkspaceIdGuid.value]"
},
"projectPrincipalId": {
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix'))), '2022-09-01').outputs.projectPrincipalId.value]"
Expand Down Expand Up @@ -1333,6 +1377,7 @@
"[resourceId('Microsoft.Resources/deployments', format('capabilityHost-configuration-{0}-deployment', variables('uniqueSuffix')))]",
"[resourceId('Microsoft.Resources/deployments', format('dependencies-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix')))]",
"[resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix')))]",
"[resourceId('Microsoft.Resources/deployments', format('format-project-workspace-id-{0}-deployment', variables('uniqueSuffix')))]",
"[extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', variables('azureStorageSubscriptionId'), variables('azureStorageResourceGroupName')), 'Microsoft.Resources/deployments', format('storage-containers-{0}-deployment', variables('uniqueSuffix')))]"
]
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Standard agent setup
// Standard agent setup
@description('The region to deploy your AI Services resource and project')
param location string = 'eastus'

Expand Down Expand Up @@ -117,7 +117,6 @@ module aiAccount 'modules-standard/ai-account-identity.bicep' = {
params: {
accountName: accountName
location: location

modelName: modelName
modelFormat: modelFormat
modelVersion: modelVersion
Expand Down Expand Up @@ -151,22 +150,25 @@ module aiProject 'modules-standard/ai-project-identity.bicep' = {
azureStorageName: aiDependencies.outputs.azureStorageName
azureStorageSubscriptionId: aiDependencies.outputs.azureStorageSubscriptionId
azureStorageResourceGroupName: aiDependencies.outputs.azureStorageResourceGroupName

accountName: aiAccount.outputs.accountName
}
}

// var projectFullName = '${aiAccount.outputs.accountName}/${aiProject.outputs.projectName}'

module formatProjectWorkspaceId 'modules-standard/format-project-workspace-id.bicep' = {
name: 'format-project-workspace-id-${uniqueSuffix}-deployment'
params: {
projectWorkspaceId: aiProject.outputs.projectWorkspaceId
}
}

/*
Assigns the project SMI the storage blob data contributor role on the storage account
*/
module storageAccountRoleAssignment 'modules-standard/azure-storage-account-role-assignment.bicep' = {
name: 'storage-${azureStorageName}-${uniqueSuffix}-deployment'
scope: resourceGroup(azureStorageSubscriptionId, azureStorageResourceGroupName)
params: {
accountPrincipalId: aiAccount.outputs.accountPrincipalId
params: {
azureStorageName: aiDependencies.outputs.azureStorageName
projectPrincipalId: aiProject.outputs.projectPrincipalId
}
Expand Down Expand Up @@ -203,7 +205,7 @@ module addProjectCapabilityHost 'modules-standard/add-project-capability-host.bi
params: {
accountName: aiAccount.outputs.accountName
projectName: aiProject.outputs.projectName
cosmosDBConnection: aiProject.outputs.cosmosDBConnection
cosmosDBConnection: aiProject.outputs.cosmosDBConnection
azureStorageConnection: aiProject.outputs.azureStorageConnection
aiSearchConnection: aiProject.outputs.aiSearchConnection

Expand All @@ -219,10 +221,10 @@ module addProjectCapabilityHost 'modules-standard/add-project-capability-host.bi
module storageContainersRoleAssignment 'modules-standard/blob-storage-container-role-assignments.bicep' = {
name: 'storage-containers-${uniqueSuffix}-deployment'
scope: resourceGroup(azureStorageSubscriptionId, azureStorageResourceGroupName)
params: {
params: {
aiProjectPrincipalId: aiProject.outputs.projectPrincipalId
storageName: aiDependencies.outputs.azureStorageName
workspaceId: aiProject.outputs.projectWorkspaceId
workspaceId: formatProjectWorkspaceId.outputs.projectWorkspaceIdGuid
}
dependsOn: [
addProjectCapabilityHost
Expand All @@ -234,9 +236,9 @@ module cosmosContainerRoleAssignments 'modules-standard/cosmos-container-role-as
scope: resourceGroup(cosmosDBSubscriptionId, cosmosDBResourceGroupName)
params: {
cosmosAccountName: aiDependencies.outputs.cosmosDBName
projectWorkspaceId: aiProject.outputs.projectWorkspaceId
projectWorkspaceId: formatProjectWorkspaceId.outputs.projectWorkspaceIdGuid
projectPrincipalId: aiProject.outputs.projectPrincipalId

}
dependsOn: [
addProjectCapabilityHost, storageContainersRoleAssignment
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
param cosmosDBConnection string
param azureStorageConnection string
param cosmosDBConnection string
param azureStorageConnection string
param aiSearchConnection string
param projectName string
param accountName string
Expand All @@ -11,29 +11,25 @@ var storageConnections = ['${azureStorageConnection}']
var vectorStoreConnections = ['${aiSearchConnection}']


#disable-next-line BCP081
resource account 'Microsoft.CognitiveServices/accounts@2025-04-01-preview' existing = {
name: accountName
}
#disable-next-line BCP081

resource project 'Microsoft.CognitiveServices/accounts/projects@2025-04-01-preview' existing = {
name: projectName
parent: account
}


#disable-next-line BCP081
resource accountCapabilityHost 'Microsoft.CognitiveServices/accounts/capabilityHosts@2025-04-01-preview' = {
resource accountCapabilityHost 'Microsoft.CognitiveServices/accounts/capabilityHosts@2025-04-01-preview' = {
name: accountCapHost
parent: account
properties: {
capabilityHostKind: 'Agents'

}
}


#disable-next-line BCP081
resource projectCapabilityHost 'Microsoft.CognitiveServices/accounts/projects/capabilityHosts@2025-04-01-preview' = {
name: projectCapHost
parent: project
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@

param accountName string
param location string
param modelName string
param modelFormat string
param modelVersion string
param modelSkuName string
param modelCapacity int
param modelName string
param modelFormat string
param modelVersion string
param modelSkuName string
param modelCapacity int

#disable-next-line BCP081
resource account 'Microsoft.CognitiveServices/accounts@2025-04-01-preview' = {
name: accountName
location: location
Expand All @@ -33,25 +32,23 @@ resource account 'Microsoft.CognitiveServices/accounts@2025-04-01-preview' = {
}
}

// #disable-next-line BCP081
// resource modelDeployment 'Microsoft.CognitiveServices/accounts/deployments@2025-04-01-preview'= {
// parent: account
// name: modelName
// sku : {
// capacity: modelCapacity
// name: modelSkuName
// }
// properties: {
// model:{
// name: modelName
// format: modelFormat
// version: modelVersion
// }
// }
// }
resource modelDeployment 'Microsoft.CognitiveServices/accounts/deployments@2025-04-01-preview'= {
parent: account
name: modelName
sku : {
capacity: modelCapacity
name: modelSkuName
}
properties: {
model:{
name: modelName
format: modelFormat
version: modelVersion
}
}
}

output accountName string = account.name
output accountID string = account.id
output accountTarget string = account.properties.endpoint
output accountPrincipalId string = account.identity.principalId

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
param accountName string
param location string
param projectName string
param projectDescription string
param projectDescription string
param displayName string

param aiSearchName string
Expand All @@ -12,7 +12,7 @@ param cosmosDBName string
param cosmosDBSubscriptionId string
param cosmosDBResourceGroupName string

param azureStorageName string
param azureStorageName string
param azureStorageSubscriptionId string
param azureStorageResourceGroupName string

Expand All @@ -29,13 +29,11 @@ resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' existing
scope: resourceGroup(azureStorageSubscriptionId, azureStorageResourceGroupName)
}

#disable-next-line BCP081
resource account 'Microsoft.CognitiveServices/accounts@2025-04-01-preview' existing = {
name: accountName
scope: resourceGroup()
}

#disable-next-line BCP081
resource project 'Microsoft.CognitiveServices/accounts/projects@2025-04-01-preview' = {
parent: account
name: projectName
Expand All @@ -48,7 +46,6 @@ resource project 'Microsoft.CognitiveServices/accounts/projects@2025-04-01-previ
displayName: displayName
}

#disable-next-line BCP081
resource project_connection_cosmosdb_account 'connections@2025-04-01-preview' = {
name: cosmosDBName
properties: {
Expand All @@ -63,7 +60,6 @@ resource project 'Microsoft.CognitiveServices/accounts/projects@2025-04-01-previ
}
}

#disable-next-line BCP081
resource project_connection_azure_storage 'connections@2025-04-01-preview' = {
name: azureStorageName
properties: {
Expand All @@ -78,7 +74,6 @@ resource project 'Microsoft.CognitiveServices/accounts/projects@2025-04-01-previ
}
}

#disable-next-line BCP081
resource project_connection_azureai_search 'connections@2025-04-01-preview' = {
name: aiSearchName
properties: {
Expand All @@ -98,9 +93,11 @@ resource project 'Microsoft.CognitiveServices/accounts/projects@2025-04-01-previ
output projectName string = project.name
output projectId string = project.id
output projectPrincipalId string = project.identity.principalId

#disable-next-line BCP053
output projectWorkspaceId string = project.properties.internalId

// return the BYO connection names
// BYO connection names
output cosmosDBConnection string = cosmosDBName
output azureStorageConnection string = azureStorageName
output aiSearchConnection string = aiSearchName
Loading
Loading