Skip to content

Commit c7ea810

Browse files
Fix AI Services provisioning order for private endpoint
1 parent c39397b commit c7ea810

2 files changed

Lines changed: 34867 additions & 32 deletions

File tree

infra/main.bicep

Lines changed: 48 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -770,44 +770,12 @@ module aiFoundryAiServices 'br:mcr.microsoft.com/bicep/avm/res/cognitive-service
770770
apiProperties: {
771771
//staticsEnabled: false
772772
}
773-
deployments: [
774-
{
775-
name: aiFoundryAiServicesModelDeployment.name
776-
model: {
777-
format: aiFoundryAiServicesModelDeployment.format
778-
name: aiFoundryAiServicesModelDeployment.name
779-
version: aiFoundryAiServicesModelDeployment.version
780-
}
781-
raiPolicyName: aiFoundryAiServicesModelDeployment.raiPolicyName
782-
sku: {
783-
name: aiFoundryAiServicesModelDeployment.sku.name
784-
capacity: aiFoundryAiServicesModelDeployment.sku.capacity
785-
}
786-
}
787-
]
788773
networkAcls: {
789774
defaultAction: 'Allow'
790775
virtualNetworkRules: []
791776
ipRules: []
792777
}
793778
managedIdentities: { userAssignedResourceIds: [userAssignedIdentity!.outputs.resourceId] } //To create accounts or projects, you must enable a managed identity on your resource
794-
roleAssignments: [
795-
{
796-
roleDefinitionIdOrName: '53ca6127-db72-4b80-b1b0-d745d6d5456d' // Azure AI User
797-
principalId: userAssignedIdentity.outputs.principalId
798-
principalType: 'ServicePrincipal'
799-
}
800-
{
801-
roleDefinitionIdOrName: '64702f94-c441-49e6-a78b-ef80e0188fee' // Azure AI Developer
802-
principalId: userAssignedIdentity.outputs.principalId
803-
principalType: 'ServicePrincipal'
804-
}
805-
{
806-
roleDefinitionIdOrName: '5e0bd9bd-7b93-4f28-af87-19fc36ad61bd' // Cognitive Services OpenAI User
807-
principalId: userAssignedIdentity.outputs.principalId
808-
principalType: 'ServicePrincipal'
809-
}
810-
]
811779
// WAF aligned configuration for Monitoring
812780
diagnosticSettings: enableMonitoring ? [{ workspaceResourceId: logAnalyticsWorkspaceResourceId }] : null
813781
publicNetworkAccess: enablePrivateNetworking ? 'Disabled' : 'Enabled'
@@ -837,6 +805,54 @@ module aiFoundryAiServices 'br:mcr.microsoft.com/bicep/avm/res/cognitive-service
837805
])
838806
: []
839807
}
808+
dependsOn: enablePrivateNetworking
809+
? [
810+
virtualNetwork
811+
avmPrivateDnsZones
812+
]
813+
: []
814+
}
815+
816+
module aiFoundryAiServicesDeployments 'modules/ai-services-deployments.bicep' = if (!useExistingAiFoundryAiProject) {
817+
name: take('module.ai-services-model-deployments.${aiFoundryAiServicesResourceName}', 64)
818+
params: {
819+
name: aiFoundryAiServicesResourceName
820+
deployments: [
821+
{
822+
name: aiFoundryAiServicesModelDeployment.name
823+
model: {
824+
format: aiFoundryAiServicesModelDeployment.format
825+
name: aiFoundryAiServicesModelDeployment.name
826+
version: aiFoundryAiServicesModelDeployment.version
827+
}
828+
raiPolicyName: aiFoundryAiServicesModelDeployment.raiPolicyName
829+
sku: {
830+
name: aiFoundryAiServicesModelDeployment.sku.name
831+
capacity: aiFoundryAiServicesModelDeployment.sku.capacity
832+
}
833+
}
834+
]
835+
roleAssignments: [
836+
{
837+
roleDefinitionIdOrName: '53ca6127-db72-4b80-b1b0-d745d6d5456d' // Azure AI User
838+
principalId: userAssignedIdentity.outputs.principalId
839+
principalType: 'ServicePrincipal'
840+
}
841+
{
842+
roleDefinitionIdOrName: '64702f94-c441-49e6-a78b-ef80e0188fee' // Azure AI Developer
843+
principalId: userAssignedIdentity.outputs.principalId
844+
principalType: 'ServicePrincipal'
845+
}
846+
{
847+
roleDefinitionIdOrName: '5e0bd9bd-7b93-4f28-af87-19fc36ad61bd' // Cognitive Services OpenAI User
848+
principalId: userAssignedIdentity.outputs.principalId
849+
principalType: 'ServicePrincipal'
850+
}
851+
]
852+
}
853+
dependsOn: [
854+
aiFoundryAiServices
855+
]
840856
}
841857

842858
resource existingAiFoundryAiServicesProject 'Microsoft.CognitiveServices/accounts/projects@2025-06-01' existing = if (useExistingAiFoundryAiProject) {

0 commit comments

Comments
 (0)