Skip to content

Commit f4545ba

Browse files
Merge pull request #133 from dharakumarmsft/dharkumar/fix-workspace-id
Fix workspaceid AI project
2 parents 0d59081 + 7a92e17 commit f4545ba

File tree

10 files changed

+119
-72
lines changed

10 files changed

+119
-72
lines changed

samples/microsoft/infrastructure-setup/41-standard-agent-setup/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22

33
> **NOTE:** This template is now supported
44
5-
## Steps
5+
## Steps
66

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

99
[![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)
10+
1011
1. Create new (or use existing) resource group:
1112

1213
```bash

samples/microsoft/infrastructure-setup/41-standard-agent-setup/azuredeploy.json

Lines changed: 57 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"_generator": {
66
"name": "bicep",
77
"version": "0.35.1.17967",
8-
"templateHash": "18171785632055590935"
8+
"templateHash": "6806602197376483743"
99
}
1010
},
1111
"parameters": {
@@ -845,6 +845,56 @@
845845
"[resourceId('Microsoft.Resources/deployments', format('dependencies-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix')))]"
846846
]
847847
},
848+
{
849+
"type": "Microsoft.Resources/deployments",
850+
"apiVersion": "2022-09-01",
851+
"name": "[format('format-project-workspace-id-{0}-deployment', variables('uniqueSuffix'))]",
852+
"properties": {
853+
"expressionEvaluationOptions": {
854+
"scope": "inner"
855+
},
856+
"mode": "Incremental",
857+
"parameters": {
858+
"projectWorkspaceId": {
859+
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix'))), '2022-09-01').outputs.projectWorkspaceId.value]"
860+
}
861+
},
862+
"template": {
863+
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
864+
"contentVersion": "1.0.0.0",
865+
"metadata": {
866+
"_generator": {
867+
"name": "bicep",
868+
"version": "0.35.1.17967",
869+
"templateHash": "16300646131195898347"
870+
}
871+
},
872+
"parameters": {
873+
"projectWorkspaceId": {
874+
"type": "string"
875+
}
876+
},
877+
"variables": {
878+
"part1": "[substring(parameters('projectWorkspaceId'), 0, 8)]",
879+
"part2": "[substring(parameters('projectWorkspaceId'), 8, 4)]",
880+
"part3": "[substring(parameters('projectWorkspaceId'), 12, 4)]",
881+
"part4": "[substring(parameters('projectWorkspaceId'), 16, 4)]",
882+
"part5": "[substring(parameters('projectWorkspaceId'), 20, 12)]",
883+
"formattedGuid": "[format('{0}-{1}-{2}-{3}-{4}', variables('part1'), variables('part2'), variables('part3'), variables('part4'), variables('part5'))]"
884+
},
885+
"resources": [],
886+
"outputs": {
887+
"projectWorkspaceIdGuid": {
888+
"type": "string",
889+
"value": "[variables('formattedGuid')]"
890+
}
891+
}
892+
}
893+
},
894+
"dependsOn": [
895+
"[resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix')))]"
896+
]
897+
},
848898
{
849899
"type": "Microsoft.Resources/deployments",
850900
"apiVersion": "2022-09-01",
@@ -857,9 +907,6 @@
857907
},
858908
"mode": "Incremental",
859909
"parameters": {
860-
"accountPrincipalId": {
861-
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix'))), '2022-09-01').outputs.accountPrincipalId.value]"
862-
},
863910
"azureStorageName": {
864911
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('dependencies-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix'))), '2022-09-01').outputs.azureStorageName.value]"
865912
},
@@ -874,13 +921,10 @@
874921
"_generator": {
875922
"name": "bicep",
876923
"version": "0.35.1.17967",
877-
"templateHash": "139550385861845890"
924+
"templateHash": "1220843070959354080"
878925
}
879926
},
880927
"parameters": {
881-
"accountPrincipalId": {
882-
"type": "string"
883-
},
884928
"azureStorageName": {
885929
"type": "string"
886930
},
@@ -904,7 +948,6 @@
904948
}
905949
},
906950
"dependsOn": [
907-
"[resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix')))]",
908951
"[resourceId('Microsoft.Resources/deployments', format('dependencies-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix')))]",
909952
"[resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix')))]"
910953
]
@@ -1178,7 +1221,7 @@
11781221
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('dependencies-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix'))), '2022-09-01').outputs.azureStorageName.value]"
11791222
},
11801223
"workspaceId": {
1181-
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix'))), '2022-09-01').outputs.projectWorkspaceId.value]"
1224+
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('format-project-workspace-id-{0}-deployment', variables('uniqueSuffix'))), '2022-09-01').outputs.projectWorkspaceIdGuid.value]"
11821225
}
11831226
},
11841227
"template": {
@@ -1234,7 +1277,8 @@
12341277
"dependsOn": [
12351278
"[resourceId('Microsoft.Resources/deployments', format('capabilityHost-configuration-{0}-deployment', variables('uniqueSuffix')))]",
12361279
"[resourceId('Microsoft.Resources/deployments', format('dependencies-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix')))]",
1237-
"[resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix')))]"
1280+
"[resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix')))]",
1281+
"[resourceId('Microsoft.Resources/deployments', format('format-project-workspace-id-{0}-deployment', variables('uniqueSuffix')))]"
12381282
]
12391283
},
12401284
{
@@ -1253,7 +1297,7 @@
12531297
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('dependencies-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix'))), '2022-09-01').outputs.cosmosDBName.value]"
12541298
},
12551299
"projectWorkspaceId": {
1256-
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix'))), '2022-09-01').outputs.projectWorkspaceId.value]"
1300+
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('format-project-workspace-id-{0}-deployment', variables('uniqueSuffix'))), '2022-09-01').outputs.projectWorkspaceIdGuid.value]"
12571301
},
12581302
"projectPrincipalId": {
12591303
"value": "[reference(resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix'))), '2022-09-01').outputs.projectPrincipalId.value]"
@@ -1333,6 +1377,7 @@
13331377
"[resourceId('Microsoft.Resources/deployments', format('capabilityHost-configuration-{0}-deployment', variables('uniqueSuffix')))]",
13341378
"[resourceId('Microsoft.Resources/deployments', format('dependencies-{0}-{1}-deployment', variables('accountName'), variables('uniqueSuffix')))]",
13351379
"[resourceId('Microsoft.Resources/deployments', format('ai-{0}-{1}-deployment', variables('projectName'), variables('uniqueSuffix')))]",
1380+
"[resourceId('Microsoft.Resources/deployments', format('format-project-workspace-id-{0}-deployment', variables('uniqueSuffix')))]",
13361381
"[extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', variables('azureStorageSubscriptionId'), variables('azureStorageResourceGroupName')), 'Microsoft.Resources/deployments', format('storage-containers-{0}-deployment', variables('uniqueSuffix')))]"
13371382
]
13381383
}

samples/microsoft/infrastructure-setup/41-standard-agent-setup/main.bicep

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Standard agent setup
1+
// Standard agent setup
22
@description('The region to deploy your AI Services resource and project')
33
param location string = 'eastus'
44

@@ -117,7 +117,6 @@ module aiAccount 'modules-standard/ai-account-identity.bicep' = {
117117
params: {
118118
accountName: accountName
119119
location: location
120-
121120
modelName: modelName
122121
modelFormat: modelFormat
123122
modelVersion: modelVersion
@@ -151,22 +150,25 @@ module aiProject 'modules-standard/ai-project-identity.bicep' = {
151150
azureStorageName: aiDependencies.outputs.azureStorageName
152151
azureStorageSubscriptionId: aiDependencies.outputs.azureStorageSubscriptionId
153152
azureStorageResourceGroupName: aiDependencies.outputs.azureStorageResourceGroupName
154-
153+
155154
accountName: aiAccount.outputs.accountName
156155
}
157156
}
158157

159-
// var projectFullName = '${aiAccount.outputs.accountName}/${aiProject.outputs.projectName}'
160-
158+
module formatProjectWorkspaceId 'modules-standard/format-project-workspace-id.bicep' = {
159+
name: 'format-project-workspace-id-${uniqueSuffix}-deployment'
160+
params: {
161+
projectWorkspaceId: aiProject.outputs.projectWorkspaceId
162+
}
163+
}
161164

162165
/*
163166
Assigns the project SMI the storage blob data contributor role on the storage account
164167
*/
165168
module storageAccountRoleAssignment 'modules-standard/azure-storage-account-role-assignment.bicep' = {
166169
name: 'storage-${azureStorageName}-${uniqueSuffix}-deployment'
167170
scope: resourceGroup(azureStorageSubscriptionId, azureStorageResourceGroupName)
168-
params: {
169-
accountPrincipalId: aiAccount.outputs.accountPrincipalId
171+
params: {
170172
azureStorageName: aiDependencies.outputs.azureStorageName
171173
projectPrincipalId: aiProject.outputs.projectPrincipalId
172174
}
@@ -203,7 +205,7 @@ module addProjectCapabilityHost 'modules-standard/add-project-capability-host.bi
203205
params: {
204206
accountName: aiAccount.outputs.accountName
205207
projectName: aiProject.outputs.projectName
206-
cosmosDBConnection: aiProject.outputs.cosmosDBConnection
208+
cosmosDBConnection: aiProject.outputs.cosmosDBConnection
207209
azureStorageConnection: aiProject.outputs.azureStorageConnection
208210
aiSearchConnection: aiProject.outputs.aiSearchConnection
209211

@@ -219,10 +221,10 @@ module addProjectCapabilityHost 'modules-standard/add-project-capability-host.bi
219221
module storageContainersRoleAssignment 'modules-standard/blob-storage-container-role-assignments.bicep' = {
220222
name: 'storage-containers-${uniqueSuffix}-deployment'
221223
scope: resourceGroup(azureStorageSubscriptionId, azureStorageResourceGroupName)
222-
params: {
224+
params: {
223225
aiProjectPrincipalId: aiProject.outputs.projectPrincipalId
224226
storageName: aiDependencies.outputs.azureStorageName
225-
workspaceId: aiProject.outputs.projectWorkspaceId
227+
workspaceId: formatProjectWorkspaceId.outputs.projectWorkspaceIdGuid
226228
}
227229
dependsOn: [
228230
addProjectCapabilityHost
@@ -234,9 +236,9 @@ module cosmosContainerRoleAssignments 'modules-standard/cosmos-container-role-as
234236
scope: resourceGroup(cosmosDBSubscriptionId, cosmosDBResourceGroupName)
235237
params: {
236238
cosmosAccountName: aiDependencies.outputs.cosmosDBName
237-
projectWorkspaceId: aiProject.outputs.projectWorkspaceId
239+
projectWorkspaceId: formatProjectWorkspaceId.outputs.projectWorkspaceIdGuid
238240
projectPrincipalId: aiProject.outputs.projectPrincipalId
239-
241+
240242
}
241243
dependsOn: [
242244
addProjectCapabilityHost, storageContainersRoleAssignment

samples/microsoft/infrastructure-setup/41-standard-agent-setup/modules-standard/add-project-capability-host.bicep

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
param cosmosDBConnection string
2-
param azureStorageConnection string
1+
param cosmosDBConnection string
2+
param azureStorageConnection string
33
param aiSearchConnection string
44
param projectName string
55
param accountName string
@@ -11,29 +11,25 @@ var storageConnections = ['${azureStorageConnection}']
1111
var vectorStoreConnections = ['${aiSearchConnection}']
1212

1313

14-
#disable-next-line BCP081
1514
resource account 'Microsoft.CognitiveServices/accounts@2025-04-01-preview' existing = {
1615
name: accountName
1716
}
18-
#disable-next-line BCP081
17+
1918
resource project 'Microsoft.CognitiveServices/accounts/projects@2025-04-01-preview' existing = {
2019
name: projectName
2120
parent: account
2221
}
2322

24-
25-
#disable-next-line BCP081
26-
resource accountCapabilityHost 'Microsoft.CognitiveServices/accounts/capabilityHosts@2025-04-01-preview' = {
23+
resource accountCapabilityHost 'Microsoft.CognitiveServices/accounts/capabilityHosts@2025-04-01-preview' = {
2724
name: accountCapHost
2825
parent: account
2926
properties: {
3027
capabilityHostKind: 'Agents'
31-
28+
3229
}
3330
}
3431

3532

36-
#disable-next-line BCP081
3733
resource projectCapabilityHost 'Microsoft.CognitiveServices/accounts/projects/capabilityHosts@2025-04-01-preview' = {
3834
name: projectCapHost
3935
parent: project
Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11

22
param accountName string
33
param location string
4-
param modelName string
5-
param modelFormat string
6-
param modelVersion string
7-
param modelSkuName string
8-
param modelCapacity int
4+
param modelName string
5+
param modelFormat string
6+
param modelVersion string
7+
param modelSkuName string
8+
param modelCapacity int
99

10-
#disable-next-line BCP081
1110
resource account 'Microsoft.CognitiveServices/accounts@2025-04-01-preview' = {
1211
name: accountName
1312
location: location
@@ -33,25 +32,23 @@ resource account 'Microsoft.CognitiveServices/accounts@2025-04-01-preview' = {
3332
}
3433
}
3534

36-
// #disable-next-line BCP081
37-
// resource modelDeployment 'Microsoft.CognitiveServices/accounts/deployments@2025-04-01-preview'= {
38-
// parent: account
39-
// name: modelName
40-
// sku : {
41-
// capacity: modelCapacity
42-
// name: modelSkuName
43-
// }
44-
// properties: {
45-
// model:{
46-
// name: modelName
47-
// format: modelFormat
48-
// version: modelVersion
49-
// }
50-
// }
51-
// }
35+
resource modelDeployment 'Microsoft.CognitiveServices/accounts/deployments@2025-04-01-preview'= {
36+
parent: account
37+
name: modelName
38+
sku : {
39+
capacity: modelCapacity
40+
name: modelSkuName
41+
}
42+
properties: {
43+
model:{
44+
name: modelName
45+
format: modelFormat
46+
version: modelVersion
47+
}
48+
}
49+
}
5250

5351
output accountName string = account.name
5452
output accountID string = account.id
5553
output accountTarget string = account.properties.endpoint
5654
output accountPrincipalId string = account.identity.principalId
57-

samples/microsoft/infrastructure-setup/41-standard-agent-setup/modules-standard/ai-project-identity.bicep

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
param accountName string
22
param location string
33
param projectName string
4-
param projectDescription string
4+
param projectDescription string
55
param displayName string
66

77
param aiSearchName string
@@ -12,7 +12,7 @@ param cosmosDBName string
1212
param cosmosDBSubscriptionId string
1313
param cosmosDBResourceGroupName string
1414

15-
param azureStorageName string
15+
param azureStorageName string
1616
param azureStorageSubscriptionId string
1717
param azureStorageResourceGroupName string
1818

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

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

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

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

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

81-
#disable-next-line BCP081
8277
resource project_connection_azureai_search 'connections@2025-04-01-preview' = {
8378
name: aiSearchName
8479
properties: {
@@ -98,9 +93,11 @@ resource project 'Microsoft.CognitiveServices/accounts/projects@2025-04-01-previ
9893
output projectName string = project.name
9994
output projectId string = project.id
10095
output projectPrincipalId string = project.identity.principalId
96+
97+
#disable-next-line BCP053
10198
output projectWorkspaceId string = project.properties.internalId
10299

103-
// return the BYO connection names
100+
// BYO connection names
104101
output cosmosDBConnection string = cosmosDBName
105102
output azureStorageConnection string = azureStorageName
106103
output aiSearchConnection string = aiSearchName

0 commit comments

Comments
 (0)