@@ -250,18 +250,18 @@ module assignFoundryRoleToMIExisting 'deploy_foundry_role_assignment.bicep' = if
250250 params : {
251251 roleDefinitionId : aiUser .id
252252 roleAssignmentName : guid (resourceGroup ().id , managedIdentityObjectId , aiUser .id , 'foundry' )
253- aiServicesName : ! empty ( azureExistingAIProjectResourceId ) ? existingAIServicesName : aiServicesName
254- aiProjectName : ! empty ( azureExistingAIProjectResourceId ) ? existingAIProjectName : aiProjectName
253+ aiServicesName : existingAIServicesName
254+ aiProjectName : existingAIProjectName
255255 principalId : managedIdentityObjectId
256- // Use the existing AI project resource ID to determine the location and other properties
257- aiLocation : ! empty ( azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .location : solutionLocation
258- aiKind : ! empty ( azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .kind : 'AIServices'
259- aiSkuName : ! empty ( azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .skuName : 'S0'
260- customSubDomainName : ! empty ( azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .customSubDomainName : aiServicesName
261- publicNetworkAccess : ! empty ( azureExistingAIProjectResourceId ) ? existing_aiServicesModule . outputs . publicNetworkAccess : 'Enabled'
262- defaultNetworkAction : ! empty ( azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .defaultNetworkAction : 'Allow'
263- vnetRules : ! empty ( azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .vnetRules : []
264- ipRules : ! empty ( azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .ipRules : []
256+ aiLocation : existing_aiServicesModule . outputs . location
257+ aiKind : existing_aiServicesModule .outputs .kind
258+ aiSkuName : existing_aiServicesModule .outputs .skuName
259+ customSubDomainName : existing_aiServicesModule .outputs .customSubDomainName
260+ publicNetworkAccess : existing_aiServicesModule .outputs .publicNetworkAccess
261+ enableSystemAssignedIdentity : true
262+ defaultNetworkAction : existing_aiServicesModule .outputs .defaultNetworkAction
263+ vnetRules : existing_aiServicesModule .outputs .vnetRules
264+ ipRules : existing_aiServicesModule .outputs .ipRules
265265 aiModelDeployments : aiModelDeployments // Pass the model deployments to the module if model not already deployed
266266 }
267267}
@@ -280,28 +280,27 @@ resource cognitiveServicesOpenAIUser 'Microsoft.Authorization/roleDefinitions@20
280280 name : '5e0bd9bd-7b93-4f28-af87-19fc36ad61bd'
281281}
282282
283- module assignOpenAIRoleToAISearch 'deploy_foundry_role_assignment.bicep' = {
284- name : 'assignOpenAIRoleToAISearch'
283+ resource assignOpenAIRoleToAISearch 'Microsoft.Authorization/roleAssignments@2022-04-01' = if (empty (azureExistingAIProjectResourceId )) {
284+ name : guid (resourceGroup ().id , aiServices .id , cognitiveServicesOpenAIUser .id )
285+ scope : aiServices
286+ properties : {
287+ principalId : aiSearch .identity .principalId
288+ roleDefinitionId : cognitiveServicesOpenAIUser .id
289+ principalType : 'ServicePrincipal'
290+ }
291+ }
292+
293+ module assignOpenAIRoleToAISearchExisting 'deploy_foundry_role_assignment.bicep' = if (!empty (azureExistingAIProjectResourceId )) {
294+ name : 'assignOpenAIRoleToAISearchExisting'
285295 scope : resourceGroup (existingAIServiceSubscription , existingAIServiceResourceGroup )
286296 params : {
287297 roleDefinitionId : cognitiveServicesOpenAIUser .id
288298 roleAssignmentName : guid (resourceGroup ().id , aiSearch .id , cognitiveServicesOpenAIUser .id , 'openai-foundry' )
289- aiServicesName : ! empty ( azureExistingAIProjectResourceId ) ? existingAIServicesName : aiServicesName
290- aiProjectName : ! empty ( azureExistingAIProjectResourceId ) ? existingAIProjectName : aiProjectName
299+ aiServicesName : existingAIServicesName
300+ aiProjectName : existingAIProjectName
291301 principalId : aiSearch .identity .principalId
292- // Use the existing AI project resource ID to determine the location and other properties
293- aiLocation : !empty (azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .location : solutionLocation
294- aiKind : !empty (azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .kind : 'AIServices'
295- aiSkuName : !empty (azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .skuName : 'S0'
296- customSubDomainName : !empty (azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .customSubDomainName : aiServicesName
297- publicNetworkAccess : !empty (azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .publicNetworkAccess : 'Enabled'
298- defaultNetworkAction : !empty (azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .defaultNetworkAction : 'Allow'
299- vnetRules : !empty (azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .vnetRules : []
300- ipRules : !empty (azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .ipRules : []
302+ enableSystemAssignedIdentity : false
301303 }
302- dependsOn : [
303- assignFoundryRoleToMIExisting
304- ]
305304}
306305
307306resource searchIndexDataReader 'Microsoft.Authorization/roleDefinitions@2022-04-01' existing = {
@@ -322,7 +321,7 @@ resource assignSearchIndexDataReaderToExistingAiProject 'Microsoft.Authorization
322321 name : guid (resourceGroup ().id , existingAIProjectName , searchIndexDataReader .id , 'Existing' )
323322 scope : aiSearch
324323 properties : {
325- principalId : assignOpenAIRoleToAISearch .outputs .aiProjectPrincipalId
324+ principalId : assignOpenAIRoleToAISearchExisting .outputs .aiProjectPrincipalId
326325 roleDefinitionId : searchIndexDataReader .id
327326 principalType : 'ServicePrincipal'
328327 }
@@ -346,7 +345,7 @@ resource assignSearchServiceContributorToExistingAiProject 'Microsoft.Authorizat
346345 name : guid (resourceGroup ().id , existingAIProjectName , searchServiceContributor .id , 'Existing' )
347346 scope : aiSearch
348347 properties : {
349- principalId : assignOpenAIRoleToAISearch .outputs .aiProjectPrincipalId
348+ principalId : assignOpenAIRoleToAISearchExisting .outputs .aiProjectPrincipalId
350349 roleDefinitionId : searchServiceContributor .id
351350 principalType : 'ServicePrincipal'
352351 }
0 commit comments