@@ -250,18 +250,19 @@ 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- aiLocation : ! empty ( azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .location : solutionLocation
257- aiKind : ! empty ( azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .kind : 'AIServices'
258- aiSkuName : ! empty ( azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .skuName : 'S0'
259- customSubDomainName : ! empty ( azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .customSubDomainName : aiServicesName
260- publicNetworkAccess : ! empty ( azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .publicNetworkAccess : 'Enabled'
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
261261 enableSystemAssignedIdentity : true
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 : []
262+ defaultNetworkAction : existing_aiServicesModule .outputs .defaultNetworkAction
263+ vnetRules : existing_aiServicesModule .outputs .vnetRules
264+ ipRules : existing_aiServicesModule .outputs .ipRules
265+ aiModelDeployments : aiModelDeployments // Pass the model deployments to the module if model not already deployed
265266 }
266267}
267268
@@ -279,24 +280,26 @@ resource cognitiveServicesOpenAIUser 'Microsoft.Authorization/roleDefinitions@20
279280 name : '5e0bd9bd-7b93-4f28-af87-19fc36ad61bd'
280281}
281282
282- module assignOpenAIRoleToAISearch 'deploy_foundry_role_assignment.bicep' = {
283- 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'
284295 scope : resourceGroup (existingAIServiceSubscription , existingAIServiceResourceGroup )
285296 params : {
286297 roleDefinitionId : cognitiveServicesOpenAIUser .id
287298 roleAssignmentName : guid (resourceGroup ().id , aiSearch .id , cognitiveServicesOpenAIUser .id , 'openai-foundry' )
288- aiServicesName : ! empty ( azureExistingAIProjectResourceId ) ? existingAIServicesName : aiServicesName
289- aiProjectName : ! empty ( azureExistingAIProjectResourceId ) ? existingAIProjectName : aiProjectName
299+ aiServicesName : existingAIServicesName
300+ aiProjectName : existingAIProjectName
290301 principalId : aiSearch .identity .principalId
291- aiLocation : !empty (azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .location : solutionLocation
292- aiKind : !empty (azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .kind : 'AIServices'
293- aiSkuName : !empty (azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .skuName : 'S0'
294- customSubDomainName : !empty (azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .customSubDomainName : aiServicesName
295- publicNetworkAccess : !empty (azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .publicNetworkAccess : 'Enabled'
296- enableSystemAssignedIdentity : true
297- defaultNetworkAction : !empty (azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .defaultNetworkAction : 'Allow'
298- vnetRules : !empty (azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .vnetRules : []
299- ipRules : !empty (azureExistingAIProjectResourceId ) ? existing_aiServicesModule .outputs .ipRules : []
302+ enableSystemAssignedIdentity : false
300303 }
301304}
302305
@@ -318,7 +321,7 @@ resource assignSearchIndexDataReaderToExistingAiProject 'Microsoft.Authorization
318321 name : guid (resourceGroup ().id , existingAIProjectName , searchIndexDataReader .id , 'Existing' )
319322 scope : aiSearch
320323 properties : {
321- principalId : assignOpenAIRoleToAISearch .outputs .aiProjectPrincipalId
324+ principalId : assignOpenAIRoleToAISearchExisting .outputs .aiProjectPrincipalId
322325 roleDefinitionId : searchIndexDataReader .id
323326 principalType : 'ServicePrincipal'
324327 }
@@ -342,7 +345,7 @@ resource assignSearchServiceContributorToExistingAiProject 'Microsoft.Authorizat
342345 name : guid (resourceGroup ().id , existingAIProjectName , searchServiceContributor .id , 'Existing' )
343346 scope : aiSearch
344347 properties : {
345- principalId : assignOpenAIRoleToAISearch .outputs .aiProjectPrincipalId
348+ principalId : assignOpenAIRoleToAISearchExisting .outputs .aiProjectPrincipalId
346349 roleDefinitionId : searchServiceContributor .id
347350 principalType : 'ServicePrincipal'
348351 }
0 commit comments