diff --git a/infra/abbreviations.json b/infra/abbreviations.json new file mode 100644 index 00000000..d28fd825 --- /dev/null +++ b/infra/abbreviations.json @@ -0,0 +1,227 @@ +{ + "ai": { + "aiSearch": "srch-", + "aiServices": "aisa-", + "aiVideoIndexer": "avi-", + "machineLearningWorkspace": "mlw-", + "openAIService": "oai-", + "botService": "bot-", + "computerVision": "cv-", + "contentModerator": "cm-", + "contentSafety": "cs-", + "customVisionPrediction": "cstv-", + "customVisionTraining": "cstvt-", + "documentIntelligence": "di-", + "faceApi": "face-", + "healthInsights": "hi-", + "immersiveReader": "ir-", + "languageService": "lang-", + "speechService": "spch-", + "translator": "trsl-", + "aiHub": "aih-", + "aiHubProject": "aihp-" + }, + "analytics": { + "analysisServicesServer": "as", + "databricksWorkspace": "dbw-", + "dataExplorerCluster": "dec", + "dataExplorerClusterDatabase": "dedb", + "dataFactory": "adf-", + "digitalTwin": "dt-", + "streamAnalytics": "asa-", + "synapseAnalyticsPrivateLinkHub": "synplh-", + "synapseAnalyticsSQLDedicatedPool": "syndp", + "synapseAnalyticsSparkPool": "synsp", + "synapseAnalyticsWorkspaces": "synw", + "dataLakeStoreAccount": "dls", + "dataLakeAnalyticsAccount": "dla", + "eventHubsNamespace": "evhns-", + "eventHub": "evh-", + "eventGridDomain": "evgd-", + "eventGridSubscriptions": "evgs-", + "eventGridTopic": "evgt-", + "eventGridSystemTopic": "egst-", + "hdInsightHadoopCluster": "hadoop-", + "hdInsightHBaseCluster": "hbase-", + "hdInsightKafkaCluster": "kafka-", + "hdInsightSparkCluster": "spark-", + "hdInsightStormCluster": "storm-", + "hdInsightMLServicesCluster": "mls-", + "iotHub": "iot-", + "provisioningServices": "provs-", + "provisioningServicesCertificate": "pcert-", + "powerBIEmbedded": "pbi-", + "timeSeriesInsightsEnvironment": "tsi-" + }, + "compute": { + "appServiceEnvironment": "ase-", + "appServicePlan": "asp-", + "loadTesting": "lt-", + "availabilitySet": "avail-", + "arcEnabledServer": "arcs-", + "arcEnabledKubernetesCluster": "arck", + "batchAccounts": "ba-", + "cloudService": "cld-", + "communicationServices": "acs-", + "diskEncryptionSet": "des", + "functionApp": "func-", + "gallery": "gal", + "hostingEnvironment": "host-", + "imageTemplate": "it-", + "managedDiskOS": "osdisk", + "managedDiskData": "disk", + "notificationHubs": "ntf-", + "notificationHubsNamespace": "ntfns-", + "proximityPlacementGroup": "ppg-", + "restorePointCollection": "rpc-", + "snapshot": "snap-", + "staticWebApp": "stapp-", + "virtualMachine": "vm", + "virtualMachineScaleSet": "vmss-", + "virtualMachineMaintenanceConfiguration": "mc-", + "virtualMachineStorageAccount": "stvm", + "webApp": "app-" + }, + "containers": { + "aksCluster": "aks-", + "aksSystemNodePool": "npsystem-", + "aksUserNodePool": "np-", + "containerApp": "ca-", + "containerAppsEnvironment": "cae-", + "containerRegistry": "cr", + "containerInstance": "ci", + "serviceFabricCluster": "sf-", + "serviceFabricManagedCluster": "sfmc-" + }, + "databases": { + "cosmosDBDatabase": "cosmos-", + "cosmosDBApacheCassandra": "coscas-", + "cosmosDBMongoDB": "cosmon-", + "cosmosDBNoSQL": "cosno-", + "cosmosDBTable": "costab-", + "cosmosDBGremlin": "cosgrm-", + "cosmosDBPostgreSQL": "cospos-", + "cacheForRedis": "redis-", + "sqlDatabaseServer": "sql-", + "sqlDatabase": "sqldb-", + "sqlElasticJobAgent": "sqlja-", + "sqlElasticPool": "sqlep-", + "mariaDBServer": "maria-", + "mariaDBDatabase": "mariadb-", + "mySQLDatabase": "mysql-", + "postgreSQLDatabase": "psql-", + "sqlServerStretchDatabase": "sqlstrdb-", + "sqlManagedInstance": "sqlmi-" + }, + "developerTools": { + "appConfigurationStore": "appcs-", + "mapsAccount": "map-", + "signalR": "sigr", + "webPubSub": "wps-" + }, + "devOps": { + "managedGrafana": "amg-" + }, + "integration": { + "apiManagementService": "apim-", + "integrationAccount": "ia-", + "logicApp": "logic-", + "serviceBusNamespace": "sbns-", + "serviceBusQueue": "sbq-", + "serviceBusTopic": "sbt-", + "serviceBusTopicSubscription": "sbts-" + }, + "managementGovernance": { + "automationAccount": "aa-", + "applicationInsights": "appi-", + "monitorActionGroup": "ag-", + "monitorDataCollectionRules": "dcr-", + "monitorAlertProcessingRule": "apr-", + "blueprint": "bp-", + "blueprintAssignment": "bpa-", + "dataCollectionEndpoint": "dce-", + "logAnalyticsWorkspace": "log-", + "logAnalyticsQueryPacks": "pack-", + "managementGroup": "mg-", + "purviewInstance": "pview-", + "resourceGroup": "rg-", + "templateSpecsName": "ts-" + }, + "migration": { + "migrateProject": "migr-", + "databaseMigrationService": "dms-", + "recoveryServicesVault": "rsv-" + }, + "networking": { + "applicationGateway": "agw-", + "applicationSecurityGroup": "asg-", + "cdnProfile": "cdnp-", + "cdnEndpoint": "cdne-", + "connections": "con-", + "dnsForwardingRuleset": "dnsfrs-", + "dnsPrivateResolver": "dnspr-", + "dnsPrivateResolverInboundEndpoint": "in-", + "dnsPrivateResolverOutboundEndpoint": "out-", + "firewall": "afw-", + "firewallPolicy": "afwp-", + "expressRouteCircuit": "erc-", + "expressRouteGateway": "ergw-", + "frontDoorProfile": "afd-", + "frontDoorEndpoint": "fde-", + "frontDoorFirewallPolicy": "fdfp-", + "ipGroups": "ipg-", + "loadBalancerInternal": "lbi-", + "loadBalancerExternal": "lbe-", + "loadBalancerRule": "rule-", + "localNetworkGateway": "lgw-", + "natGateway": "ng-", + "networkInterface": "nic-", + "networkSecurityGroup": "nsg-", + "networkSecurityGroupSecurityRules": "nsgsr-", + "networkWatcher": "nw-", + "privateLink": "pl-", + "privateEndpoint": "pep-", + "publicIPAddress": "pip-", + "publicIPAddressPrefix": "ippre-", + "routeFilter": "rf-", + "routeServer": "rtserv-", + "routeTable": "rt-", + "serviceEndpointPolicy": "se-", + "trafficManagerProfile": "traf-", + "userDefinedRoute": "udr-", + "virtualNetwork": "vnet-", + "virtualNetworkGateway": "vgw-", + "virtualNetworkManager": "vnm-", + "virtualNetworkPeering": "peer-", + "virtualNetworkSubnet": "snet-", + "virtualWAN": "vwan-", + "virtualWANHub": "vhub-" + }, + "security": { + "bastion": "bas-", + "keyVault": "kv-", + "keyVaultManagedHSM": "kvmhsm-", + "managedIdentity": "id-", + "sshKey": "sshkey-", + "vpnGateway": "vpng-", + "vpnConnection": "vcn-", + "vpnSite": "vst-", + "webApplicationFirewallPolicy": "waf", + "webApplicationFirewallPolicyRuleGroup": "wafrg" + }, + "storage": { + "storSimple": "ssimp", + "backupVault": "bvault-", + "backupVaultPolicy": "bkpol-", + "fileShare": "share-", + "storageAccount": "st", + "storageSyncService": "sss-" + }, + "virtualDesktop": { + "labServicesPlan": "lp-", + "virtualDesktopHostPool": "vdpool-", + "virtualDesktopApplicationGroup": "vdag-", + "virtualDesktopWorkspace": "vdws-", + "virtualDesktopScalingPlan": "vdscaling-" + } +} \ No newline at end of file diff --git a/infra/deploy_ai_foundry.bicep b/infra/deploy_ai_foundry.bicep index 81ca9ca0..b0376db1 100644 --- a/infra/deploy_ai_foundry.bicep +++ b/infra/deploy_ai_foundry.bicep @@ -9,23 +9,24 @@ param gptDeploymentCapacity int param embeddingModel string param embeddingDeploymentCapacity int param managedIdentityObjectId string +var abbrs = loadJsonContent('./abbreviations.json') -var storageName = 'st${solutionName}hub' +var storageName = '${abbrs.storage.storageAccount}${solutionName}-hub' var storageSkuName = 'Standard_LRS' -var aiServicesName = 'ais-${solutionName}' +var aiServicesName = '${abbrs.ai.aiServices}${solutionName}' // var aiServicesName_m = '${solutionName}-aiservices_m' // var location_m = solutionLocation -var applicationInsightsName = 'appi-${solutionName}' -var containerRegistryName = 'cr-${solutionName}' -var keyvaultName = 'kv-${solutionName}' +var applicationInsightsName = '${abbrs.managementGovernance.applicationInsights}${solutionName}' +var containerRegistryName = '${abbrs.containers.containerRegistry}${solutionName}' +var keyvaultName = '${abbrs.security.keyVault}${solutionName}' var location = solutionLocation //'eastus2' -var aiHubName = 'hub-${solutionName}' +var aiHubName = '${abbrs.ai.aiHub}${solutionName}-hub' var aiHubFriendlyName = aiHubName var aiHubDescription = 'AI Hub' -var aiProjectName = 'proj-${solutionName}' +var aiProjectName = '${abbrs.ai.aiHubProject}${solutionName}' var aiProjectFriendlyName = aiProjectName -var aiSearchName = 'srch-${solutionName}' -var workspaceName = 'log-${solutionName}-hub' +var aiSearchName = '${abbrs.ai.aiSearch}${solutionName}' +var workspaceName = '${abbrs.managementGovernance.logAnalyticsWorkspace}${solutionName}' var aiModelDeployments = [ { name: gptModelName @@ -142,7 +143,7 @@ resource aiServices 'Microsoft.CognitiveServices/accounts@2021-10-01' = { properties: { customSubDomainName: aiServicesName apiProperties: { - statisticsEnabled: false + //statisticsEnabled: false } } } diff --git a/infra/deploy_app_service.bicep b/infra/deploy_app_service.bicep index b92377b1..548bad40 100644 --- a/infra/deploy_app_service.bicep +++ b/infra/deploy_app_service.bicep @@ -10,9 +10,10 @@ param solutionName string // param solutionLocation string // param identity string +var abbrs = loadJsonContent('./abbreviations.json') @description('Name of App Service plan') -param HostingPlanName string = 'asp-${ solutionName }' +var HostingPlanName = '${abbrs.compute.appServicePlan}${solutionName}' @description('The pricing tier for the App Service plan') @allowed( @@ -23,7 +24,7 @@ param HostingPlanName string = 'asp-${ solutionName }' param HostingPlanSku string = 'B1' @description('Name of Web App') -param WebsiteName string = 'app-${ solutionName }' +var WebsiteName = '${abbrs.compute.webApp}${solutionName}' // @description('Name of Application Insights') // param ApplicationInsightsName string = '${ solutionName }-app-insights' diff --git a/infra/deploy_cosmos_db.bicep b/infra/deploy_cosmos_db.bicep index 1d87fcb6..8967ad63 100644 --- a/infra/deploy_cosmos_db.bicep +++ b/infra/deploy_cosmos_db.bicep @@ -4,8 +4,9 @@ param solutionName string param solutionLocation string param keyVaultName string +var abbrs = loadJsonContent('./abbreviations.json') -var accountName = 'cosmos-${ solutionName }' +var accountName = '${abbrs.databases.cosmosDBDatabase}${solutionName}' var databaseName = 'db_conversation_history' var collectionName = 'conversations' diff --git a/infra/deploy_keyvault.bicep b/infra/deploy_keyvault.bicep index c30c6312..af87478f 100644 --- a/infra/deploy_keyvault.bicep +++ b/infra/deploy_keyvault.bicep @@ -4,8 +4,9 @@ param solutionName string param solutionLocation string param managedIdentityObjectId string +var abbrs = loadJsonContent('./abbreviations.json') -var keyvaultName = 'kv-${solutionName}' +var keyvaultName = '${abbrs.security.keyVault}${solutionName}' resource keyVault 'Microsoft.KeyVault/vaults@2022-07-01' = { name: keyvaultName diff --git a/infra/deploy_managed_identity.bicep b/infra/deploy_managed_identity.bicep index 3452330b..e04298d7 100644 --- a/infra/deploy_managed_identity.bicep +++ b/infra/deploy_managed_identity.bicep @@ -1,5 +1,6 @@ // ========== Managed Identity ========== // targetScope = 'resourceGroup' +var abbrs = loadJsonContent('./abbreviations.json') @minLength(3) @maxLength(15) @@ -10,7 +11,7 @@ param solutionName string param solutionLocation string @description('Name') -param miName string = 'id-${ solutionName }' +var miName = '${abbrs.security.managedIdentity}${solutionName}' resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31' = { name: miName diff --git a/infra/deploy_storage_account.bicep b/infra/deploy_storage_account.bicep index 2db349c2..f468a994 100644 --- a/infra/deploy_storage_account.bicep +++ b/infra/deploy_storage_account.bicep @@ -1,6 +1,6 @@ // ========== Storage Account ========== // targetScope = 'resourceGroup' - +var abbrs = loadJsonContent('./abbreviations.json') @minLength(3) @maxLength(15) @description('Solution Name') @@ -10,7 +10,7 @@ param solutionName string param solutionLocation string @description('Name') -param saName string = 'st${ solutionName }' +var saName = '${abbrs.storage.storageAccount}${ solutionName }' param keyVaultName string param managedIdentityObjectId string diff --git a/infra/main.bicep b/infra/main.bicep index 2870d37c..18e1fcab 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -48,7 +48,7 @@ param gptDeploymentCapacity int = 30 ]) param embeddingModel string = 'text-embedding-ada-002' - +var abbrs = loadJsonContent('./abbreviations.json') @minValue(10) @description('Capacity of the Embedding Model deployment') param embeddingDeploymentCapacity int = 80 @@ -62,8 +62,8 @@ var resourceGroupLocation = resourceGroup().location var solutionLocation = resourceGroupLocation var baseUrl = 'https://raw.githubusercontent.com/microsoft/document-generation-solution-accelerator/main/' -var ApplicationInsightsName = 'appi-${solutionPrefix}' -var WorkspaceName = 'log-${solutionPrefix}' +var ApplicationInsightsName ='${abbrs.managementGovernance.applicationInsights}${solutionPrefix}' +var WorkspaceName = '${abbrs.managementGovernance.logAnalyticsWorkspace}${solutionPrefix}' // ========== Managed Identity ========== // module managedIdentityModule 'deploy_managed_identity.bicep' = {