Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
227 changes: 227 additions & 0 deletions Deployment/abbreviations.json
Original file line number Diff line number Diff line change
@@ -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-"
}
}
33 changes: 17 additions & 16 deletions Deployment/main.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -2,54 +2,55 @@
// Licensed under the MIT license.
@description('The Data Center where the model is deployed.')
param modeldatacenter string
var abbrs = loadJsonContent('./abbreviations.json')

targetScope = 'subscription'
var resourceprefix = padLeft(take(uniqueString(deployment().name), 5), 5, '0')
var resourceprefix_name = 'kmgs'

// Create a resource group
resource gs_resourcegroup 'Microsoft.Resources/resourceGroups@2021-04-01' = {
name: 'rg-${resourceprefix_name}${resourceprefix}'
name: '${abbrs.managementGovernance.resourceGroup}${resourceprefix_name}${resourceprefix}'
location: deployment().location
}

// Create a storage account
module gs_storageaccount 'bicep/azurestorageaccount.bicep' = {
name: 'blob${resourceprefix_name}${resourceprefix}'
name: '${abbrs.storage.storageAccount}${resourceprefix_name}${resourceprefix}'
scope: gs_resourcegroup
params: {
storageAccountName: 'blob${resourceprefix}'
storageAccountName: '${abbrs.storage.storageAccount}${resourceprefix}'
location: deployment().location
}
}

// Create a Azure Search Service
module gs_azsearch 'bicep/azuresearch.bicep' = {
name: 'search-${resourceprefix_name}${resourceprefix}'
name: '${abbrs.ai.aiSearch}${resourceprefix_name}${resourceprefix}'
scope: gs_resourcegroup
params: {
searchServiceName: 'search-${resourceprefix}'
searchServiceName: '${abbrs.ai.aiSearch}${resourceprefix}'
location: deployment().location
}
}


// Create Container Registry
module gs_containerregistry 'bicep/azurecontainerregistry.bicep' = {
name: 'acr${resourceprefix_name}${resourceprefix}'
name: '${abbrs.containers.containerRegistry}${resourceprefix_name}${resourceprefix}'
scope: gs_resourcegroup
params: {
acrName: 'acr${resourceprefix_name}${resourceprefix}'
acrName: '${abbrs.containers.containerRegistry}${resourceprefix_name}${resourceprefix}'
location: deployment().location
}
}

// Create AKS Cluster
module gs_aks 'bicep/azurekubernetesservice.bicep' = {
name: 'aks-${resourceprefix_name}${resourceprefix}'
name: '${abbrs.compute.arcEnabledKubernetesCluster}${resourceprefix_name}${resourceprefix}'
scope: gs_resourcegroup
params: {
aksName: 'aks-${resourceprefix_name}${resourceprefix}'
aksName: '${abbrs.compute.arcEnabledKubernetesCluster}${resourceprefix_name}${resourceprefix}'
location: deployment().location
}
dependsOn: [
Expand All @@ -74,20 +75,20 @@ module gs_aks 'bicep/azurekubernetesservice.bicep' = {

// Create Azure Cognitive Service
module gs_azcognitiveservice 'bicep/azurecognitiveservice.bicep' = {
name: 'cognitiveservice-${resourceprefix_name}${resourceprefix}'
name: '${abbrs.ai.documentIntelligence}${resourceprefix_name}${resourceprefix}'
scope: gs_resourcegroup
params: {
cognitiveServiceName: 'cognitiveservice-${resourceprefix_name}${resourceprefix}'
cognitiveServiceName: '${abbrs.ai.documentIntelligence}${resourceprefix_name}${resourceprefix}'
location: 'eastus'
}
}

// Create Azure Open AI Service
module gs_openaiservice 'bicep/azureopenaiservice.bicep' = {
name: 'openaiservice-${resourceprefix_name}${resourceprefix}'
name: '${abbrs.ai.openAIService}${resourceprefix_name}${resourceprefix}'
scope: gs_resourcegroup
params: {
openAIServiceName: 'openaiservice-${resourceprefix_name}${resourceprefix}'
openAIServiceName: '${abbrs.ai.openAIService}${resourceprefix_name}${resourceprefix}'
// GPT-4-32K model & GPT-4o available Data center information.
// https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models#gpt-4
location: modeldatacenter
Expand Down Expand Up @@ -138,10 +139,10 @@ module gs_openaiservicemodels_text_embedding 'bicep/azureopenaiservicemodel.bice

// Create Azure Cosmos DB Mongo
module gs_cosmosdb 'bicep/azurecosmosdb.bicep' = {
name: 'cosmosdb-${resourceprefix_name}${resourceprefix}'
name: '${abbrs.databases.cosmosDBDatabase}${resourceprefix_name}${resourceprefix}'
scope: gs_resourcegroup
params: {
cosmosDbAccountName: 'cosmosdb-${resourceprefix_name}${resourceprefix}'
cosmosDbAccountName: '${abbrs.databases.cosmosDBDatabase}${resourceprefix_name}${resourceprefix}'
location: deployment().location
}
}
Expand All @@ -157,7 +158,7 @@ module gs_appconfig 'bicep/azureappconfigservice.bicep' = {
}

// return all resource names as a output
output gs_resourcegroup_name string = 'rg-${resourceprefix_name}${resourceprefix}'
output gs_resourcegroup_name string = '${abbrs.managementGovernance.resourceGroup}${resourceprefix_name}${resourceprefix}'
output gs_solution_prefix string = '${resourceprefix_name}${resourceprefix}'
output gs_storageaccount_name string = gs_storageaccount.outputs.storageAccountName
output gs_azsearch_name string = gs_azsearch.outputs.searchServiceName
Expand Down