Skip to content

Commit a1f8053

Browse files
Merge pull request #792 from microsoft/dev
chore: Dev to main
2 parents 7e4a07c + f70f4b8 commit a1f8053

2 files changed

Lines changed: 50 additions & 24 deletions

File tree

infra/main.bicep

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -742,8 +742,17 @@ module cognitiveServicesCu 'br/public:avm/res/cognitive-services/account:0.14.1'
742742
// ========== AVM WAF ========== //
743743
// ========== AI Foundry: AI Search ========== //
744744
var aiSearchName = 'srch-${solutionSuffix}'
745-
module searchSearchServices 'br/public:avm/res/search/search-service:0.12.0' = {
746-
name: take('avm.res.search.search-service.${aiSearchName}', 64)
745+
resource searchService 'Microsoft.Search/searchServices@2024-06-01-preview' = {
746+
name: aiSearchName
747+
location: location
748+
sku: {
749+
name: 'standard'
750+
}
751+
}
752+
753+
// Separate module for Search Service to enable managed identity and update other properties, as this reduces deployment time
754+
module searchServiceUpdate 'br/public:avm/res/search/search-service:0.12.0' = {
755+
name: take('avm.res.search.enable-identity.${aiSearchName}', 64)
747756
params: {
748757
// Required parameters
749758
name: aiSearchName
@@ -822,14 +831,17 @@ module searchSearchServices 'br/public:avm/res/search/search-service:0.12.0' = {
822831
]
823832
: []
824833
}
834+
dependsOn: [
835+
searchService
836+
]
825837
}
826838

827839
// ========== Search Service to AI Services Role Assignment ========== //
828840
resource searchServiceToAiServicesRoleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = if (!useExistingAiFoundryAiProject) {
829841
name: guid(aiSearchName, '5e0bd9bd-7b93-4f28-af87-19fc36ad61bd', aiFoundryAiServicesResourceName)
830842
properties: {
831843
roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '5e0bd9bd-7b93-4f28-af87-19fc36ad61bd') // Cognitive Services OpenAI User
832-
principalId: searchSearchServices.outputs.systemAssignedMIPrincipalId!
844+
principalId: searchServiceUpdate.outputs.systemAssignedMIPrincipalId!
833845
principalType: 'ServicePrincipal'
834846
}
835847
}
@@ -843,10 +855,13 @@ resource projectAISearchConnection 'Microsoft.CognitiveServices/accounts/project
843855
isSharedToAll: true
844856
metadata: {
845857
ApiType: 'Azure'
846-
ResourceId: searchSearchServices.outputs.resourceId
847-
location: searchSearchServices.outputs.location
858+
ResourceId: searchService.id
859+
location: searchService.location
848860
}
849861
}
862+
dependsOn: [
863+
aiFoundryAiServices
864+
]
850865
}
851866

852867
module existing_AIProject_SearchConnectionModule 'modules/deploy_aifp_aisearch_connection.bicep' = if (useExistingAiFoundryAiProject) {
@@ -856,8 +871,8 @@ module existing_AIProject_SearchConnectionModule 'modules/deploy_aifp_aisearch_c
856871
existingAIProjectName: aiFoundryAiProjectResourceName
857872
existingAIFoundryName: aiFoundryAiServicesResourceName
858873
aiSearchName: aiSearchName
859-
aiSearchResourceId: searchSearchServices.outputs.resourceId
860-
aiSearchLocation: searchSearchServices.outputs.location
874+
aiSearchResourceId: searchService.id
875+
aiSearchLocation: searchService.location
861876
aiSearchConnectionName: aiSearchName
862877
}
863878
}
@@ -867,7 +882,7 @@ module searchServiceToExistingAiServicesRoleAssignment 'modules/role-assignment.
867882
name: 'searchToExistingAiServices-roleAssignment'
868883
scope: resourceGroup(aiFoundryAiServicesSubscriptionId, aiFoundryAiServicesResourceGroupName)
869884
params: {
870-
principalId: searchSearchServices.outputs.systemAssignedMIPrincipalId!
885+
principalId: searchServiceUpdate.outputs.systemAssignedMIPrincipalId!
871886
roleDefinitionId: '5e0bd9bd-7b93-4f28-af87-19fc36ad61bd' // Cognitive Services OpenAI User
872887
targetResourceName: aiFoundryAiServices.outputs.name
873888
}

infra/main.json

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"_generator": {
77
"name": "bicep",
88
"version": "0.40.2.10011",
9-
"templateHash": "13633343500956336860"
9+
"templateHash": "11209346631275672110"
1010
}
1111
},
1212
"parameters": {
@@ -465,18 +465,27 @@
465465
"resourceGroup": "[variables('aiFoundryAiServicesResourceGroupName')]",
466466
"name": "[format('{0}/{1}', variables('aiFoundryAiServicesResourceName'), variables('aiFoundryAiProjectResourceName'))]"
467467
},
468+
"searchService": {
469+
"type": "Microsoft.Search/searchServices",
470+
"apiVersion": "2024-06-01-preview",
471+
"name": "[variables('aiSearchName')]",
472+
"location": "[parameters('location')]",
473+
"sku": {
474+
"name": "standard"
475+
}
476+
},
468477
"searchServiceToAiServicesRoleAssignment": {
469478
"condition": "[not(variables('useExistingAiFoundryAiProject'))]",
470479
"type": "Microsoft.Authorization/roleAssignments",
471480
"apiVersion": "2022-04-01",
472481
"name": "[guid(variables('aiSearchName'), '5e0bd9bd-7b93-4f28-af87-19fc36ad61bd', variables('aiFoundryAiServicesResourceName'))]",
473482
"properties": {
474483
"roleDefinitionId": "[subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '5e0bd9bd-7b93-4f28-af87-19fc36ad61bd')]",
475-
"principalId": "[reference('searchSearchServices').outputs.systemAssignedMIPrincipalId.value]",
484+
"principalId": "[reference('searchServiceUpdate').outputs.systemAssignedMIPrincipalId.value]",
476485
"principalType": "ServicePrincipal"
477486
},
478487
"dependsOn": [
479-
"searchSearchServices"
488+
"searchServiceUpdate"
480489
]
481490
},
482491
"projectAISearchConnection": {
@@ -491,12 +500,13 @@
491500
"isSharedToAll": true,
492501
"metadata": {
493502
"ApiType": "Azure",
494-
"ResourceId": "[reference('searchSearchServices').outputs.resourceId.value]",
495-
"location": "[reference('searchSearchServices').outputs.location.value]"
503+
"ResourceId": "[resourceId('Microsoft.Search/searchServices', variables('aiSearchName'))]",
504+
"location": "[reference('searchService', '2024-06-01-preview', 'full').location]"
496505
}
497506
},
498507
"dependsOn": [
499-
"searchSearchServices"
508+
"aiFoundryAiServices",
509+
"searchService"
500510
]
501511
},
502512
"logAnalyticsWorkspace": {
@@ -27516,9 +27526,9 @@
2751627526
}
2751727527
},
2751827528
"dependsOn": [
27529+
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').aiServices)]",
2751927530
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').cognitiveServices)]",
2752027531
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').openAI)]",
27521-
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').aiServices)]",
2752227532
"backendUserAssignedIdentity",
2752327533
"logAnalyticsWorkspace",
2752427534
"userAssignedIdentity",
@@ -30041,18 +30051,18 @@
3004130051
}
3004230052
},
3004330053
"dependsOn": [
30044-
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').aiServices)]",
3004530054
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').cognitiveServices)]",
3004630055
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').openAI)]",
30056+
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').aiServices)]",
3004730057
"logAnalyticsWorkspace",
3004830058
"userAssignedIdentity",
3004930059
"virtualNetwork"
3005030060
]
3005130061
},
30052-
"searchSearchServices": {
30062+
"searchServiceUpdate": {
3005330063
"type": "Microsoft.Resources/deployments",
3005430064
"apiVersion": "2025-04-01",
30055-
"name": "[take(format('avm.res.search.search-service.{0}', variables('aiSearchName')), 64)]",
30065+
"name": "[take(format('avm.res.search.enable-identity.{0}', variables('aiSearchName')), 64)]",
3005630066
"properties": {
3005730067
"expressionEvaluationOptions": {
3005830068
"scope": "inner"
@@ -32180,6 +32190,7 @@
3218032190
"backendUserAssignedIdentity",
3218132191
"existingAiFoundryAiServicesProject",
3218232192
"logAnalyticsWorkspace",
32193+
"searchService",
3218332194
"userAssignedIdentity",
3218432195
"virtualNetwork"
3218532196
]
@@ -32207,10 +32218,10 @@
3220732218
"value": "[variables('aiSearchName')]"
3220832219
},
3220932220
"aiSearchResourceId": {
32210-
"value": "[reference('searchSearchServices').outputs.resourceId.value]"
32221+
"value": "[resourceId('Microsoft.Search/searchServices', variables('aiSearchName'))]"
3221132222
},
3221232223
"aiSearchLocation": {
32213-
"value": "[reference('searchSearchServices').outputs.location.value]"
32224+
"value": "[reference('searchService', '2024-06-01-preview', 'full').location]"
3221432225
},
3221532226
"aiSearchConnectionName": {
3221632227
"value": "[variables('aiSearchName')]"
@@ -32285,7 +32296,7 @@
3228532296
}
3228632297
},
3228732298
"dependsOn": [
32288-
"searchSearchServices"
32299+
"searchService"
3228932300
]
3229032301
},
3229132302
"searchServiceToExistingAiServicesRoleAssignment": {
@@ -32302,7 +32313,7 @@
3230232313
"mode": "Incremental",
3230332314
"parameters": {
3230432315
"principalId": {
32305-
"value": "[reference('searchSearchServices').outputs.systemAssignedMIPrincipalId.value]"
32316+
"value": "[reference('searchServiceUpdate').outputs.systemAssignedMIPrincipalId.value]"
3230632317
},
3230732318
"roleDefinitionId": {
3230832319
"value": "5e0bd9bd-7b93-4f28-af87-19fc36ad61bd"
@@ -32363,7 +32374,7 @@
3236332374
},
3236432375
"dependsOn": [
3236532376
"aiFoundryAiServices",
32366-
"searchSearchServices"
32377+
"searchServiceUpdate"
3236732378
]
3236832379
},
3236932380
"storageAccount": {
@@ -40353,8 +40364,8 @@
4035340364
},
4035440365
"dependsOn": [
4035540366
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageQueue)]",
40356-
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageDfs)]",
4035740367
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageFile)]",
40368+
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageDfs)]",
4035840369
"[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').storageBlob)]",
4035940370
"userAssignedIdentity",
4036040371
"virtualNetwork"

0 commit comments

Comments
 (0)