Skip to content

Commit d592c69

Browse files
Merge pull request #518 from microsoft/PSL-US-20831
fix: Model Deployment When Reusing Existing Foundry Service/Projects
2 parents 1cfe257 + 10a7c0d commit d592c69

File tree

3 files changed

+82
-5
lines changed

3 files changed

+82
-5
lines changed

infra/deploy_ai_foundry.bicep

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ module assignOpenAIRoleToAISearch 'deploy_foundry_role_assignment.bicep' = {
239239
aiFoundryName: !empty(azureExistingAIProjectResourceId) ? existingAIFoundryName : aiFoundryName
240240
aiProjectName: !empty(azureExistingAIProjectResourceId) ? existingAIProjectName : aiProjectName
241241
principalId: aiSearch.identity.principalId
242+
aiModelDeployments: aiModelDeployments
242243
}
243244
}
244245

infra/deploy_foundry_role_assignment.bicep

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ param roleDefinitionId string
33
param roleAssignmentName string = ''
44
param aiFoundryName string
55
param aiProjectName string = ''
6+
param aiModelDeployments array = []
67

78
resource aiServices 'Microsoft.CognitiveServices/accounts@2025-04-01-preview' existing = {
89
name: aiFoundryName
@@ -13,6 +14,24 @@ resource aiProject 'Microsoft.CognitiveServices/accounts/projects@2025-04-01-pre
1314
parent: aiServices
1415
}
1516

17+
@batchSize(1)
18+
resource aiServicesDeployments 'Microsoft.CognitiveServices/accounts/deployments@2025-04-01-preview' = [for aiModeldeployment in aiModelDeployments: if (!empty(aiModelDeployments)) {
19+
parent: aiServices
20+
name: aiModeldeployment.name
21+
properties: {
22+
model: {
23+
format: 'OpenAI'
24+
name: aiModeldeployment.model
25+
}
26+
raiPolicyName: aiModeldeployment.raiPolicyName
27+
}
28+
sku:{
29+
name: aiModeldeployment.sku.name
30+
capacity: aiModeldeployment.sku.capacity
31+
}
32+
}]
33+
34+
1635
resource roleAssignmentToFoundry 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
1736
name: roleAssignmentName
1837
scope: aiServices

infra/main.json

Lines changed: 62 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"_generator": {
66
"name": "bicep",
77
"version": "0.36.177.2456",
8-
"templateHash": "8486800252430863693"
8+
"templateHash": "12401520506444829394"
99
}
1010
},
1111
"parameters": {
@@ -639,7 +639,7 @@
639639
"_generator": {
640640
"name": "bicep",
641641
"version": "0.36.177.2456",
642-
"templateHash": "8502710171947922301"
642+
"templateHash": "5405168643980957312"
643643
}
644644
},
645645
"parameters": {
@@ -1403,6 +1403,9 @@
14031403
"aiProjectName": "[if(not(empty(parameters('azureExistingAIProjectResourceId'))), createObject('value', variables('existingAIProjectName')), createObject('value', variables('aiProjectName')))]",
14041404
"principalId": {
14051405
"value": "[reference(resourceId('Microsoft.Search/searchServices', variables('aiSearchName')), '2024-06-01-preview', 'full').identity.principalId]"
1406+
},
1407+
"aiModelDeployments": {
1408+
"value": "[variables('aiModelDeployments')]"
14061409
}
14071410
},
14081411
"template": {
@@ -1412,7 +1415,7 @@
14121415
"_generator": {
14131416
"name": "bicep",
14141417
"version": "0.36.177.2456",
1415-
"templateHash": "11899270249637077405"
1418+
"templateHash": "9006594324715793103"
14161419
}
14171420
},
14181421
"parameters": {
@@ -1433,9 +1436,36 @@
14331436
"aiProjectName": {
14341437
"type": "string",
14351438
"defaultValue": ""
1439+
},
1440+
"aiModelDeployments": {
1441+
"type": "array",
1442+
"defaultValue": []
14361443
}
14371444
},
14381445
"resources": [
1446+
{
1447+
"copy": {
1448+
"name": "aiServicesDeployments",
1449+
"count": "[length(parameters('aiModelDeployments'))]",
1450+
"mode": "serial",
1451+
"batchSize": 1
1452+
},
1453+
"condition": "[not(empty(parameters('aiModelDeployments')))]",
1454+
"type": "Microsoft.CognitiveServices/accounts/deployments",
1455+
"apiVersion": "2025-04-01-preview",
1456+
"name": "[format('{0}/{1}', parameters('aiFoundryName'), parameters('aiModelDeployments')[copyIndex()].name)]",
1457+
"properties": {
1458+
"model": {
1459+
"format": "OpenAI",
1460+
"name": "[parameters('aiModelDeployments')[copyIndex()].model]"
1461+
},
1462+
"raiPolicyName": "[parameters('aiModelDeployments')[copyIndex()].raiPolicyName]"
1463+
},
1464+
"sku": {
1465+
"name": "[parameters('aiModelDeployments')[copyIndex()].sku.name]",
1466+
"capacity": "[parameters('aiModelDeployments')[copyIndex()].sku.capacity]"
1467+
}
1468+
},
14391469
{
14401470
"type": "Microsoft.Authorization/roleAssignments",
14411471
"apiVersion": "2022-04-01",
@@ -1809,7 +1839,7 @@
18091839
"_generator": {
18101840
"name": "bicep",
18111841
"version": "0.36.177.2456",
1812-
"templateHash": "2642619356084894434"
1842+
"templateHash": "4427077770927711325"
18131843
}
18141844
},
18151845
"parameters": {
@@ -2327,7 +2357,7 @@
23272357
"_generator": {
23282358
"name": "bicep",
23292359
"version": "0.36.177.2456",
2330-
"templateHash": "11899270249637077405"
2360+
"templateHash": "9006594324715793103"
23312361
}
23322362
},
23332363
"parameters": {
@@ -2348,9 +2378,36 @@
23482378
"aiProjectName": {
23492379
"type": "string",
23502380
"defaultValue": ""
2381+
},
2382+
"aiModelDeployments": {
2383+
"type": "array",
2384+
"defaultValue": []
23512385
}
23522386
},
23532387
"resources": [
2388+
{
2389+
"copy": {
2390+
"name": "aiServicesDeployments",
2391+
"count": "[length(parameters('aiModelDeployments'))]",
2392+
"mode": "serial",
2393+
"batchSize": 1
2394+
},
2395+
"condition": "[not(empty(parameters('aiModelDeployments')))]",
2396+
"type": "Microsoft.CognitiveServices/accounts/deployments",
2397+
"apiVersion": "2025-04-01-preview",
2398+
"name": "[format('{0}/{1}', parameters('aiFoundryName'), parameters('aiModelDeployments')[copyIndex()].name)]",
2399+
"properties": {
2400+
"model": {
2401+
"format": "OpenAI",
2402+
"name": "[parameters('aiModelDeployments')[copyIndex()].model]"
2403+
},
2404+
"raiPolicyName": "[parameters('aiModelDeployments')[copyIndex()].raiPolicyName]"
2405+
},
2406+
"sku": {
2407+
"name": "[parameters('aiModelDeployments')[copyIndex()].sku.name]",
2408+
"capacity": "[parameters('aiModelDeployments')[copyIndex()].sku.capacity]"
2409+
}
2410+
},
23542411
{
23552412
"type": "Microsoft.Authorization/roleAssignments",
23562413
"apiVersion": "2022-04-01",

0 commit comments

Comments
 (0)