@@ -964,100 +964,13 @@ module avmPrivateDnsZones 'br/public:avm/res/network/private-dns-zone:0.7.1' = [
964964// ========== AI Foundry: AI Services ========== //
965965// WAF best practices for Open AI: https://learn.microsoft.com/en-us/azure/well-architected/service-guides/azure-openai
966966
967- // //TODO: update to AVM module when AI Projects and AI Projects RBAC are supported
968- // module aiFoundryAiServices 'modules/ai-services.bicep' = if (aiFoundryAIservicesEnabled) {
969- // name: take('avm.res.cognitive-services.account.${aiFoundryAiServicesResourceName}', 64)
970- // params: {
971- // name: aiFoundryAiServicesResourceName
972- // location: azureAiServiceLocation
973- // tags: tags
974- // existingFoundryProjectResourceId: existingFoundryProjectResourceId
975- // projectName: aiFoundryAiServicesAiProjectResourceName
976- // projectDescription: 'AI Foundry Project'
977- // sku: 'S0'
978- // kind: 'AIServices'
979- // disableLocalAuth: true
980- // customSubDomainName: aiFoundryAiServicesResourceName
981- // apiProperties: {
982- // //staticsEnabled: false
983- // }
984- // networkAcls: {
985- // defaultAction: 'Allow'
986- // virtualNetworkRules: []
987- // ipRules: []
988- // }
989- // managedIdentities: { userAssignedResourceIds: [userAssignedIdentity!.outputs.resourceId] } //To create accounts or projects, you must enable a managed identity on your resource
990- // roleAssignments: [
991- // {
992- // roleDefinitionIdOrName: '53ca6127-db72-4b80-b1b0-d745d6d5456d' // Azure AI User
993- // principalId: userAssignedIdentity.outputs.principalId
994- // principalType: 'ServicePrincipal'
995- // }
996- // {
997- // roleDefinitionIdOrName: '64702f94-c441-49e6-a78b-ef80e0188fee' // Azure AI Developer
998- // principalId: userAssignedIdentity.outputs.principalId
999- // principalType: 'ServicePrincipal'
1000- // }
1001- // {
1002- // roleDefinitionIdOrName: '5e0bd9bd-7b93-4f28-af87-19fc36ad61bd' // Cognitive Services OpenAI User
1003- // principalId: userAssignedIdentity.outputs.principalId
1004- // principalType: 'ServicePrincipal'
1005- // }
1006- // ]
1007- // // WAF aligned configuration for Monitoring
1008- // diagnosticSettings: enableMonitoring ? [{ workspaceResourceId: logAnalyticsWorkspaceResourceId }] : null
1009- // publicNetworkAccess: enablePrivateNetworking ? 'Disabled' : 'Enabled'
1010- // privateEndpoints: (enablePrivateNetworking && empty(existingFoundryProjectResourceId))
1011- // ? ([
1012- // {
1013- // name: 'pep-${aiFoundryAiServicesResourceName}'
1014- // customNetworkInterfaceName: 'nic-${aiFoundryAiServicesResourceName}'
1015- // subnetResourceId: virtualNetwork!.outputs.subnetResourceIds[0]
1016- // privateDnsZoneGroup: {
1017- // privateDnsZoneGroupConfigs: [
1018- // {
1019- // name: 'ai-services-dns-zone-cognitiveservices'
1020- // privateDnsZoneResourceId: avmPrivateDnsZones[dnsZoneIndex.cognitiveServices]!.outputs.resourceId
1021- // }
1022- // {
1023- // name: 'ai-services-dns-zone-openai'
1024- // privateDnsZoneResourceId: avmPrivateDnsZones[dnsZoneIndex.openAI]!.outputs.resourceId
1025- // }
1026- // {
1027- // name: 'ai-services-dns-zone-aiservices'
1028- // privateDnsZoneResourceId: avmPrivateDnsZones[dnsZoneIndex.aiServices]!.outputs.resourceId
1029- // }
1030- // ]
1031- // }
1032- // }
1033- // ])
1034- // : []
1035- // deployments: [
1036- // {
1037- // name: aiFoundryAiServicesModelDeployment.name
1038- // model: {
1039- // format: aiFoundryAiServicesModelDeployment.format
1040- // name: aiFoundryAiServicesModelDeployment.name
1041- // version: aiFoundryAiServicesModelDeployment.version
1042- // }
1043- // raiPolicyName: aiFoundryAiServicesModelDeployment.raiPolicyName
1044- // sku: {
1045- // name: aiFoundryAiServicesModelDeployment.sku.name
1046- // capacity: aiFoundryAiServicesModelDeployment.sku.capacity
1047- // }
1048- // }
1049- // ]
1050- // }
1051- // }
1052-
1053- // resource id: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.CognitiveServices/accounts/<ai-services-name>/projects/<project-name>
1054967var useExistingAiFoundryAiProject = !empty (existingAiFoundryAiProjectResourceId )
1055968var aiFoundryAiServicesResourceName = useExistingAiFoundryAiProject
1056969 ? split (existingAiFoundryAiProjectResourceId , '/' )[8 ]
1057970 : 'aif-${solutionSuffix }'
1058971var aiFoundryAiProjectResourceName = useExistingAiFoundryAiProject
1059972 ? split (existingAiFoundryAiProjectResourceId , '/' )[10 ]
1060- : 'proj-${solutionSuffix }'
973+ : 'proj-${solutionSuffix }' // AI Project resource id: /subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.CognitiveServices/accounts/<ai-services-name>/projects/<project-name>
1061974var aiFoundryAiServicesModelDeployment = {
1062975 format : 'OpenAI'
1063976 name : gptModelName
0 commit comments