Skip to content

Commit fecb564

Browse files
replaced avm module with bicep module for search service initial provision
1 parent 2c136e7 commit fecb564

2 files changed

Lines changed: 115 additions & 2303 deletions

File tree

infra/main.bicep

Lines changed: 16 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -742,87 +742,16 @@ 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 searchService 'br/public:avm/res/search/search-service:0.12.0' = {
746-
name: take('avm.res.search.search-service.${aiSearchName}', 64)
747-
params: {
748-
// Required parameters
749-
name: aiSearchName
750-
enableTelemetry: enableTelemetry
751-
diagnosticSettings: enableMonitoring ? [
752-
{
753-
workspaceResourceId: logAnalyticsWorkspaceResourceId
754-
}
755-
] : null
756-
disableLocalAuth: true
757-
hostingMode: 'Default'
758-
networkRuleSet: {
759-
bypass: 'AzureServices'
760-
ipRules: []
761-
}
762-
roleAssignments: [
763-
{
764-
roleDefinitionIdOrName: '7ca78c08-252a-4471-8644-bb5ff32d4ba0'
765-
principalId: userAssignedIdentity.outputs.principalId
766-
principalType: 'ServicePrincipal'
767-
}
768-
{
769-
roleDefinitionIdOrName: '5e0bd9bd-7b93-4f28-af87-19fc36ad61bd'
770-
principalId: userAssignedIdentity.outputs.principalId
771-
principalType: 'ServicePrincipal'
772-
}
773-
{
774-
roleDefinitionIdOrName: '8ebe5a00-799e-43f5-93ac-243d3dce84a7' //'Search Index Data Contributor'
775-
principalId: userAssignedIdentity.outputs.principalId
776-
principalType: 'ServicePrincipal'
777-
}
778-
{
779-
roleDefinitionIdOrName: '1407120a-92aa-4202-b7e9-c0e197c71c8f'
780-
principalId: userAssignedIdentity.outputs.principalId
781-
principalType: 'ServicePrincipal'
782-
}
783-
{
784-
roleDefinitionIdOrName: '1407120a-92aa-4202-b7e9-c0e197c71c8f'
785-
principalId: backendUserAssignedIdentity.outputs.principalId
786-
principalType: 'ServicePrincipal'
787-
}
788-
{
789-
roleDefinitionIdOrName: '1407120a-92aa-4202-b7e9-c0e197c71c8f' // Search Index Data Reader
790-
principalId: !useExistingAiFoundryAiProject ? aiFoundryAiServices.outputs.aiProjectInfo.aiprojectSystemAssignedMIPrincipalId : existingAiFoundryAiServicesProject!.identity.principalId
791-
principalType: 'ServicePrincipal'
792-
}
793-
{
794-
roleDefinitionIdOrName: '7ca78c08-252a-4471-8644-bb5ff32d4ba0' // Search Service Contributor
795-
principalId: !useExistingAiFoundryAiProject ? aiFoundryAiServices.outputs.aiProjectInfo.aiprojectSystemAssignedMIPrincipalId : existingAiFoundryAiServicesProject!.identity.principalId
796-
principalType: 'ServicePrincipal'
797-
}
798-
]
799-
partitionCount: 1
800-
replicaCount: 1
801-
sku: 'standard'
802-
semanticSearch: 'free'
803-
// Use the deployment tags provided to the template
804-
tags: tags
805-
publicNetworkAccess: 'Enabled' //enablePrivateNetworking ? 'Disabled' : 'Enabled'
806-
privateEndpoints: false //enablePrivateNetworking
807-
? [
808-
{
809-
name: 'pep-${aiSearchName}'
810-
customNetworkInterfaceName: 'nic-${aiSearchName}'
811-
privateDnsZoneGroup: {
812-
privateDnsZoneGroupConfigs: [
813-
{ privateDnsZoneResourceId: avmPrivateDnsZones[dnsZoneIndex.search]!.outputs.resourceId }
814-
]
815-
}
816-
service: 'searchService'
817-
subnetResourceId: virtualNetwork!.outputs.pepsSubnetResourceId
818-
}
819-
]
820-
: []
745+
resource searchService 'Microsoft.Search/searchServices@2024-06-01-preview' = {
746+
name: aiSearchName
747+
location: location
748+
sku: {
749+
name: 'standard'
821750
}
822751
}
823752

824-
// Separate module for Search Service to enable managed identity, as this reduces deployment time
825-
module searchServiceEnableIdentity 'br/public:avm/res/search/search-service:0.12.0' = {
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' = {
826755
name: take('avm.res.search.enable-identity.${aiSearchName}', 64)
827756
params: {
828757
// Required parameters
@@ -912,7 +841,7 @@ resource searchServiceToAiServicesRoleAssignment 'Microsoft.Authorization/roleAs
912841
name: guid(aiSearchName, '5e0bd9bd-7b93-4f28-af87-19fc36ad61bd', aiFoundryAiServicesResourceName)
913842
properties: {
914843
roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '5e0bd9bd-7b93-4f28-af87-19fc36ad61bd') // Cognitive Services OpenAI User
915-
principalId: searchServiceEnableIdentity.outputs.systemAssignedMIPrincipalId!
844+
principalId: searchServiceUpdate.outputs.systemAssignedMIPrincipalId!
916845
principalType: 'ServicePrincipal'
917846
}
918847
}
@@ -926,10 +855,13 @@ resource projectAISearchConnection 'Microsoft.CognitiveServices/accounts/project
926855
isSharedToAll: true
927856
metadata: {
928857
ApiType: 'Azure'
929-
ResourceId: searchService.outputs.resourceId
930-
location: searchService.outputs.location
858+
ResourceId: searchService.id
859+
location: searchService.location
931860
}
932861
}
862+
dependsOn: [
863+
aiFoundryAiServices
864+
]
933865
}
934866

935867
module existing_AIProject_SearchConnectionModule 'modules/deploy_aifp_aisearch_connection.bicep' = if (useExistingAiFoundryAiProject) {
@@ -939,8 +871,8 @@ module existing_AIProject_SearchConnectionModule 'modules/deploy_aifp_aisearch_c
939871
existingAIProjectName: aiFoundryAiProjectResourceName
940872
existingAIFoundryName: aiFoundryAiServicesResourceName
941873
aiSearchName: aiSearchName
942-
aiSearchResourceId: searchService.outputs.resourceId
943-
aiSearchLocation: searchService.outputs.location
874+
aiSearchResourceId: searchService.id
875+
aiSearchLocation: searchService.location
944876
aiSearchConnectionName: aiSearchName
945877
}
946878
}
@@ -950,7 +882,7 @@ module searchServiceToExistingAiServicesRoleAssignment 'modules/role-assignment.
950882
name: 'searchToExistingAiServices-roleAssignment'
951883
scope: resourceGroup(aiFoundryAiServicesSubscriptionId, aiFoundryAiServicesResourceGroupName)
952884
params: {
953-
principalId: searchServiceEnableIdentity.outputs.systemAssignedMIPrincipalId!
885+
principalId: searchServiceUpdate.outputs.systemAssignedMIPrincipalId!
954886
roleDefinitionId: '5e0bd9bd-7b93-4f28-af87-19fc36ad61bd' // Cognitive Services OpenAI User
955887
targetResourceName: aiFoundryAiServices.outputs.name
956888
}

0 commit comments

Comments
 (0)