Last active
July 30, 2026 07:32
-
-
Save amgdy/27ed76ae9eb5a0f60eb295df6282b3d6 to your computer and use it in GitHub Desktop.
Azure inventory — every resource CLASSIFIED into a service category
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // ===================================================================== | |
| // Azure inventory — every resource CLASSIFIED into its OFFICIAL Azure | |
| // product category (azure.microsoft.com/products). Full catalog coverage. | |
| // - `family` = official product category | |
| // - `serviceName` = official product name (kind-aware for AI) | |
| // - `size` = the right sizing meter per category | |
| // 'Other / Uncategorized' catches anything unmapped (gap-check bucket). | |
| // AKS/ARO expand to one row per node pool. | |
| // Run: az graph query -q "$(cat azure-inventory-classified.kql)" --first 1000 -o table | |
| // ===================================================================== | |
| resources | |
| | extend skuName = coalesce(tostring(sku.name), tostring(properties.sku.name)) | |
| | extend skuTier = coalesce(tostring(sku.tier), tostring(properties.sku.tier), tostring(properties.tier)) | |
| | extend skuFamily = coalesce(tostring(sku.family), tostring(properties.sku.family)) | |
| | extend skuCapacity = coalesce(tostring(sku.capacity), tostring(properties.sku.capacity)) | |
| | extend _pools = iff(type =~ 'microsoft.containerservice/managedclusters' and coalesce(array_length(properties.agentPoolProfiles),0) > 0, properties.agentPoolProfiles, dynamic([{}])) | |
| | mv-expand pool = _pools | |
| | extend nodePool = tostring(pool.name) | |
| | extend _roles = iff(type =~ 'microsoft.hdinsight/clusters' and coalesce(array_length(properties.computeProfile.roles),0) > 0, properties.computeProfile.roles, dynamic([{}])) | |
| | mv-expand role = _roles | |
| | extend tier = skuTier | |
| | extend computeSize = case( | |
| type =~ 'microsoft.compute/virtualmachines', tostring(properties.hardwareProfile.vmSize), | |
| type =~ 'microsoft.compute/virtualmachinescalesets', tostring(sku.name), | |
| type =~ 'microsoft.containerservice/managedclusters', tostring(pool.vmSize), | |
| type =~ 'microsoft.azurefleet/fleets', tostring(properties.vmSizesProfile[0].name), | |
| type =~ 'microsoft.virtualmachineimages/imagetemplates', tostring(properties.vmProfile.vmSize), | |
| type =~ 'microsoft.hdinsight/clusters', tostring(role.hardwareProfile.vmSize), | |
| '') | |
| | extend osType = case( | |
| type =~ 'microsoft.compute/virtualmachines', tostring(properties.storageProfile.osDisk.osType), | |
| type =~ 'microsoft.compute/virtualmachinescalesets', tostring(properties.virtualMachineProfile.storageProfile.osDisk.osType), | |
| type =~ 'microsoft.containerservice/managedclusters', tostring(pool.osType), | |
| type =~ 'microsoft.compute/disks', tostring(properties.osType), | |
| '') | |
| | extend size = case( | |
| // Storage | |
| type in~ ('microsoft.compute/disks','microsoft.compute/snapshots'), strcat(tostring(properties.diskSizeGB),' GB'), | |
| type =~ 'microsoft.storage/storageaccounts', strcat(tostring(kind),' / ', tostring(properties.accessTier)), | |
| type =~ 'microsoft.netapp/netappaccounts/capacitypools', strcat(tostring(properties.size/1073741824),' GiB'), | |
| type =~ 'microsoft.elasticsan/elasticsans', strcat(tostring(properties.baseSizeTiB),'+',tostring(properties.extendedCapacitySizeTiB),' TiB'), | |
| // Databases | |
| type =~ 'microsoft.sql/managedinstances', strcat('vCores=', tostring(properties.vCores),' storGB=', tostring(properties.storageSizeInGB)), | |
| type in~ ('microsoft.sql/servers/databases','microsoft.sql/servers/elasticpools') and skuTier in~ ('GeneralPurpose','BusinessCritical','Hyperscale'), strcat(skuCapacity,' vCores'), | |
| type in~ ('microsoft.sql/servers/databases','microsoft.sql/servers/elasticpools'), strcat(skuCapacity,' DTU'), | |
| type =~ 'microsoft.dbforpostgresql/flexibleservers', strcat('storGB=', tostring(properties.storage.storageSizeGB)), | |
| type =~ 'microsoft.dbformysql/flexibleservers', strcat('storGB=', tostring(properties.storage.storageSizeGB)), | |
| type =~ 'microsoft.cache/redis', strcat(tostring(properties.sku.family), tostring(properties.sku.capacity)), | |
| type =~ 'microsoft.documentdb/databaseaccounts', tostring(properties.databaseAccountOfferType), | |
| // Compute / Web | |
| type =~ 'microsoft.compute/virtualmachinescalesets', strcat(skuCapacity,' instances'), | |
| type =~ 'microsoft.web/serverfarms', strcat(skuName,' x',skuCapacity), | |
| type =~ 'microsoft.azurefleet/fleets', strcat('target=', tostring(coalesce(toint(properties.spotPriorityProfile.capacity),0) + coalesce(toint(properties.regularPriorityProfile.capacity),0)),' VMs'), | |
| // Containers | |
| type =~ 'microsoft.app/containerapps', strcat(tostring(properties.template.containers[0].resources.cpu),' vCPU / ', tostring(properties.template.containers[0].resources.memory)), | |
| type in~ ('microsoft.containerservice/managedclusters','microsoft.redhatopenshift/openshiftclusters'), strcat('nodes=', tostring(pool['count']),' (', tostring(sku.tier),')'), | |
| // AI + Analytics | |
| type =~ 'microsoft.search/searchservices', strcat(tostring(properties.partitionCount),'P x ', tostring(properties.replicaCount),'R'), | |
| type =~ 'microsoft.kusto/clusters', strcat(skuName,' x',skuCapacity,' instances'), | |
| type =~ 'microsoft.synapse/workspaces/sqlpools', skuName, | |
| // Integration & Messaging (sku.capacity = units) | |
| type =~ 'microsoft.servicebus/namespaces', iff(isnotempty(skuCapacity), strcat(skuName,' x',skuCapacity,' MU'), skuName), | |
| type =~ 'microsoft.eventhub/namespaces', iff(isnotempty(skuCapacity), strcat(skuName,' x',skuCapacity,' TU/PU'), skuName), | |
| type =~ 'microsoft.apimanagement/service', iff(isnotempty(skuCapacity), strcat(skuName,' x',skuCapacity,' units'), skuName), | |
| type in~ ('microsoft.eventgrid/topics','microsoft.eventgrid/systemtopics','microsoft.eventgrid/domains'), 'pay-per-operation', | |
| // IoT / Networking / Web comms | |
| type =~ 'microsoft.devices/iothubs', strcat(skuName,' x',skuCapacity,' units'), | |
| type =~ 'microsoft.network/expressroutecircuits', strcat(tostring(properties.serviceProviderProperties.bandwidthInMbps),' Mbps'), | |
| type =~ 'microsoft.network/applicationgateways', tostring(coalesce(toint(properties.sku.capacity), toint(properties.autoscaleConfiguration.maxCapacity))), | |
| type in~ ('microsoft.signalrservice/signalr','microsoft.signalrservice/webpubsub'), strcat(skuName,' x',skuCapacity,' units'), | |
| // Provisioned config knobs (usage/consumption itself lives in Cost Management) | |
| type =~ 'microsoft.cognitiveservices/accounts/deployments', strcat(tostring(properties.model.name),' ', tostring(properties.model.version),' (', skuName,' x', skuCapacity,')'), | |
| type =~ 'microsoft.operationalinsights/workspaces', strcat('retention=', tostring(properties.retentionInDays),'d cap=', tostring(properties.workspaceCapping.dailyQuotaGb),'GB'), | |
| type =~ 'microsoft.streamanalytics/streamingjobs', strcat(coalesce(tostring(properties.transformation.properties.streamingUnits), tostring(properties.sku.capacity)),' SU'), | |
| type =~ 'microsoft.documentdb/cassandraclusters/datacenters', strcat(tostring(properties.sku),' x', tostring(properties.nodeCount),' nodes'), | |
| type =~ 'microsoft.machinelearningservices/workspaces/computes', strcat(tostring(properties.properties.vmSize),' (', tostring(properties.properties.scaleSettings.maxNodeCount),' max nodes)'), | |
| type =~ 'microsoft.batch/batchaccounts/pools', strcat(tostring(properties.vmSize),' x', tostring(properties.scaleSettings.fixedScale.targetDedicatedNodes),' dedicated'), | |
| type =~ 'microsoft.datafactory/factories/integrationruntimes', strcat(tostring(properties.typeProperties.computeProperties.nodeSize),' x', tostring(properties.typeProperties.computeProperties.numberOfNodes)), | |
| type =~ 'microsoft.eventhub/namespaces/eventhubs', strcat(tostring(properties.partitionCount),' partitions'), | |
| type =~ 'microsoft.netapp/netappaccounts/capacitypools/volumes', strcat(tostring(properties.usageThreshold/1073741824),' GiB / ', tostring(properties.serviceLevel)), | |
| type =~ 'microsoft.servicefabric/managedclusters/nodetypes', strcat(tostring(properties.vmSize),' x', tostring(properties.vmInstanceCount)), | |
| type =~ 'microsoft.appplatform/spring/apps/deployments', strcat(tostring(properties.deploymentSettings.resourceRequests.cpu),' vCPU / ', tostring(properties.deploymentSettings.resourceRequests.memory),' x', tostring(sku.capacity)), | |
| type =~ 'microsoft.synapse/workspaces/bigdatapools', strcat(tostring(properties.nodeSize),' x', tostring(properties.nodeCount),' nodes'), | |
| type =~ 'microsoft.hdinsight/clusters', strcat(tostring(role.name),': ', tostring(role.hardwareProfile.vmSize),' x', tostring(role.targetInstanceCount)), | |
| type in~ ('microsoft.documentdb/databaseaccounts/sqldatabases','microsoft.documentdb/databaseaccounts/sqldatabases/containers','microsoft.documentdb/databaseaccounts/mongodbdatabases','microsoft.documentdb/databaseaccounts/mongodbdatabases/collections','microsoft.documentdb/databaseaccounts/cassandrakeyspaces','microsoft.documentdb/databaseaccounts/cassandrakeyspaces/tables','microsoft.documentdb/databaseaccounts/gremlindatabases','microsoft.documentdb/databaseaccounts/gremlindatabases/graphs','microsoft.documentdb/databaseaccounts/tables'), | |
| iff(isnotempty(tostring(properties.options.autoscaleSettings.maxThroughput)), strcat(tostring(properties.options.autoscaleSettings.maxThroughput),' RU/s (auto)'), | |
| iff(isnotempty(tostring(properties.options.throughput)), strcat(tostring(properties.options.throughput),' RU/s'), | |
| iff(isnotempty(tostring(properties.resource.autoscaleSettings.maxThroughput)),strcat(tostring(properties.resource.autoscaleSettings.maxThroughput),' RU/s (auto)'), | |
| iff(isnotempty(tostring(properties.resource.throughput)), strcat(tostring(properties.resource.throughput),' RU/s'), 'shared / serverless')))), | |
| // Generic fallback | |
| isnotempty(skuCapacity), strcat('cap=', skuCapacity), | |
| '') | |
| // ================= OFFICIAL CATEGORY CLASSIFIER ================= | |
| | extend family = case( | |
| type in~ ('microsoft.cognitiveservices/accounts','microsoft.cognitiveservices/accounts/projects','microsoft.search/searchservices','microsoft.machinelearningservices/workspaces','microsoft.machinelearningservices/workspaces/onlineendpoints','microsoft.machinelearningservices/registries','microsoft.bing/accounts','microsoft.videoindexer/accounts','microsoft.botservice/botservices'), 'AI + machine learning', | |
| type in~ ('microsoft.synapse/workspaces','microsoft.synapse/workspaces/sqlpools','microsoft.synapse/workspaces/bigdatapools','microsoft.kusto/clusters','microsoft.streamanalytics/streamingjobs','microsoft.datafactory/factories','microsoft.hdinsight/clusters','microsoft.datalakestore/accounts','microsoft.datalakeanalytics/accounts','microsoft.fabric/capacities','microsoft.powerbidedicated/capacities','microsoft.analysisservices/servers','microsoft.purview/accounts','microsoft.databricks/workspaces','microsoft.eventhub/namespaces'), 'Analytics', | |
| type in~ ('microsoft.compute/virtualmachines','microsoft.compute/virtualmachinescalesets','microsoft.batch/batchaccounts','microsoft.compute/hostgroups/hosts','microsoft.compute/cloudservices','microsoft.avs/privateclouds','microsoft.compute/virtualmachines/extensions','microsoft.compute/sshpublickeys','microsoft.compute/availabilitysets','microsoft.compute/images','microsoft.compute/galleries'), 'Compute', | |
| type in~ ('microsoft.containerservice/managedclusters','microsoft.redhatopenshift/openshiftclusters','microsoft.app/containerapps','microsoft.app/managedenvironments','microsoft.app/sessionpools','microsoft.containerinstance/containergroups','microsoft.containerregistry/registries','microsoft.servicefabric/clusters','microsoft.servicefabric/managedclusters'), 'Containers', | |
| type in~ ('microsoft.sql/servers','microsoft.sql/servers/databases','microsoft.sql/servers/elasticpools','microsoft.sql/managedinstances','microsoft.sqlvirtualmachine/sqlvirtualmachines','microsoft.dbforpostgresql/flexibleservers','microsoft.dbforpostgresql/servergroupsv2','microsoft.dbformysql/flexibleservers','microsoft.dbformariadb/servers','microsoft.documentdb/databaseaccounts','microsoft.documentdb/mongoclusters','microsoft.cache/redis','microsoft.cache/redisenterprise'), 'Databases', | |
| type in~ ('microsoft.devcenter/devcenters','microsoft.devcenter/devcenters/devboxdefinitions','microsoft.devcenter/projects','microsoft.devcenter/projects/pools','microsoft.devcenter/networkconnections','microsoft.devopsinfrastructure/pools','microsoft.loadtestservice/loadtests','microsoft.dashboard/grafana','microsoft.labservices/labs','microsoft.devtestlab/schedules'), 'Developer tools', | |
| type in~ ('microsoft.kubernetesconfiguration/privatelinkscopes','microsoft.kubernetesconfiguration/extensions'), 'Hybrid + multicloud', | |
| type in~ ('microsoft.managedidentity/userassignedidentities'), 'Identity', | |
| type in~ ('microsoft.apimanagement/service','microsoft.eventgrid/topics','microsoft.eventgrid/systemtopics','microsoft.eventgrid/domains','microsoft.eventgrid/namespaces','microsoft.logic/workflows','microsoft.servicebus/namespaces','microsoft.relay/namespaces','microsoft.notificationhubs/namespaces','microsoft.appconfiguration/configurationstores','microsoft.web/connections'), 'Integration', | |
| type in~ ('microsoft.devices/iothubs','microsoft.devices/provisioningservices','microsoft.iotcentral/iotapps','microsoft.digitaltwins/digitaltwinsinstances','microsoft.timeseriesinsights/environments'), 'Internet of Things', | |
| type in~ ('microsoft.operationalinsights/workspaces','microsoft.operationsmanagement/solutions','microsoft.insights/components','microsoft.insights/webtests','microsoft.insights/metricalerts','microsoft.insights/scheduledqueryrules','microsoft.insights/actiongroups','microsoft.insights/autoscalesettings','microsoft.insights/datacollectionrules','microsoft.insights/datacollectionendpoints','microsoft.alertsmanagement/smartdetectoralertrules','microsoft.automation/automationaccounts','microsoft.automation/automationaccounts/runbooks','microsoft.recoveryservices/vaults','microsoft.dataprotection/backupvaults','microsoft.monitor/accounts','microsoft.chaos/experiments'), 'Management and governance', | |
| type in~ ('microsoft.media/mediaservices'), 'Media', | |
| type in~ ('microsoft.network/publicipaddresses','microsoft.network/publicipprefixes','microsoft.network/loadbalancers','microsoft.network/applicationgateways','microsoft.network/azurefirewalls','microsoft.network/frontdoorwebapplicationfirewallpolicies','microsoft.network/applicationgatewaywebapplicationfirewallpolicies','microsoft.network/bastionhosts','microsoft.network/natgateways','microsoft.network/virtualnetworkgateways','microsoft.network/expressroutecircuits','microsoft.network/expressrouteports','microsoft.network/virtualhubs','microsoft.network/vpngateways','microsoft.network/p2svpngateways','microsoft.network/frontdoors','microsoft.cdn/profiles','microsoft.network/ddosprotectionplans','microsoft.network/trafficmanagerprofiles','microsoft.network/dnszones','microsoft.network/privatednszones','microsoft.network/dnsresolvers','microsoft.network/privateendpoints','microsoft.network/privatelinkservices','microsoft.network/networkvirtualappliances','microsoft.servicenetworking/trafficcontrollers','microsoft.network/virtualnetworks','microsoft.network/networkinterfaces','microsoft.network/networksecuritygroups','microsoft.network/routetables','microsoft.network/privatednszones/virtualnetworklinks','microsoft.network/networkwatchers','microsoft.network/networksecurityperimeters','microsoft.network/ipgroups','github.network/networksettings'), 'Networking', | |
| type in~ ('microsoft.keyvault/vaults','microsoft.keyvault/managedhsms','microsoft.security/securityconnectors'), 'Security', | |
| type in~ ('microsoft.compute/disks','microsoft.compute/snapshots','microsoft.storage/storageaccounts','microsoft.netapp/netappaccounts/capacitypools','microsoft.elasticsan/elasticsans','microsoft.storagesync/storagesyncservices','microsoft.storagecache/caches','microsoft.storagecache/amlfilesystems'), 'Storage', | |
| type in~ ('microsoft.desktopvirtualization/hostpools'), 'Virtual desktop infrastructure', | |
| type in~ ('microsoft.web/serverfarms','microsoft.web/sites','microsoft.web/staticsites','microsoft.web/hostingenvironments','microsoft.appplatform/spring','microsoft.signalrservice/signalr','microsoft.signalrservice/webpubsub','microsoft.communication/communicationservices','microsoft.communication/emailservices'), 'Web', | |
| type =~ 'microsoft.healthbot/healthbots', 'AI + machine learning', | |
| type in~ ('microsoft.datashare/accounts','microsoft.datacatalog/catalogs'), 'Analytics', | |
| type in~ ('microsoft.azurefleet/fleets','microsoft.quantum/workspaces','microsoft.virtualmachineimages/imagetemplates'), 'Compute', | |
| type in~ ('microsoft.containerservice/fleets','microsoft.containerstorage/pools'), 'Containers', | |
| type in~ ('microsoft.datamigration/sqlmigrationservices','microsoft.datamigration/services','microsoft.documentdb/cassandraclusters','microsoft.confidentialledger/ledgers'), 'Databases', | |
| type in~ ('microsoft.devtestlab/labs','microsoft.azureplaywrightservice/accounts','microsoft.codesigning/codesigningaccounts'), 'Developer tools', | |
| type in~ ('microsoft.azurestackhci/clusters','microsoft.databoxedge/databoxedgedevices','microsoft.storagemover/storagemovers'), 'Hybrid + multicloud', | |
| type =~ 'microsoft.aad/domainservices', 'Identity', | |
| type =~ 'microsoft.healthcareapis/workspaces', 'Integration', | |
| type =~ 'microsoft.maps/accounts', 'Internet of Things', | |
| type =~ 'microsoft.cognitiveservices/accounts/deployments', 'AI + machine learning', | |
| type =~ 'microsoft.documentdb/cassandraclusters/datacenters', 'Databases', | |
| type =~ 'microsoft.machinelearningservices/workspaces/computes', 'AI + machine learning', | |
| type =~ 'microsoft.batch/batchaccounts/pools', 'Compute', | |
| type in~ ('microsoft.datafactory/factories/integrationruntimes','microsoft.eventhub/namespaces/eventhubs'), 'Analytics', | |
| type =~ 'microsoft.netapp/netappaccounts/capacitypools/volumes', 'Storage', | |
| type in~ ('microsoft.containerregistry/registries/replications','microsoft.servicefabric/managedclusters/nodetypes'), 'Containers', | |
| type =~ 'microsoft.appplatform/spring/apps/deployments', 'Web', | |
| type in~ ('microsoft.documentdb/databaseaccounts/sqldatabases','microsoft.documentdb/databaseaccounts/sqldatabases/containers','microsoft.documentdb/databaseaccounts/mongodbdatabases','microsoft.documentdb/databaseaccounts/mongodbdatabases/collections','microsoft.documentdb/databaseaccounts/cassandrakeyspaces','microsoft.documentdb/databaseaccounts/cassandrakeyspaces/tables','microsoft.documentdb/databaseaccounts/gremlindatabases','microsoft.documentdb/databaseaccounts/gremlindatabases/graphs','microsoft.documentdb/databaseaccounts/tables'), 'Databases', | |
| 'Other / Uncategorized') | |
| // ================= OFFICIAL SERVICE NAME ================= | |
| | extend serviceName = case( | |
| type =~ 'microsoft.compute/virtualmachines', 'Virtual Machines', | |
| type =~ 'microsoft.compute/virtualmachinescalesets', 'Virtual Machine Scale Sets', | |
| type =~ 'microsoft.containerservice/managedclusters', 'Azure Kubernetes Service (AKS)', | |
| type =~ 'microsoft.redhatopenshift/openshiftclusters', 'Azure Red Hat OpenShift', | |
| type =~ 'microsoft.batch/batchaccounts', 'Batch', | |
| type =~ 'microsoft.compute/hostgroups/hosts', 'Azure Dedicated Host', | |
| type =~ 'microsoft.compute/cloudservices', 'Cloud Services', | |
| type =~ 'microsoft.avs/privateclouds', 'Azure VMware Solution', | |
| type =~ 'microsoft.servicefabric/clusters', 'Service Fabric Cluster', | |
| type =~ 'microsoft.servicefabric/managedclusters', 'Service Fabric Managed Cluster', | |
| type =~ 'microsoft.desktopvirtualization/hostpools', 'Azure Virtual Desktop', | |
| type =~ 'microsoft.labservices/labs', 'Azure Lab Services', | |
| type =~ 'microsoft.compute/disks', 'Managed Disks', | |
| type =~ 'microsoft.compute/snapshots', 'Disk Snapshot', | |
| type =~ 'microsoft.compute/galleries', 'Azure Compute Gallery', | |
| type =~ 'microsoft.compute/images', 'VM Image', | |
| type =~ 'microsoft.compute/availabilitysets', 'Availability Set', | |
| type =~ 'microsoft.compute/virtualmachines/extensions', 'VM Extension', | |
| type =~ 'microsoft.compute/sshpublickeys', 'SSH Public Key', | |
| type =~ 'microsoft.storage/storageaccounts', 'Storage Account', | |
| type =~ 'microsoft.netapp/netappaccounts/capacitypools','Azure NetApp Files', | |
| type =~ 'microsoft.elasticsan/elasticsans', 'Azure Elastic SAN', | |
| type =~ 'microsoft.storagesync/storagesyncservices', 'Azure File Sync', | |
| type =~ 'microsoft.storagecache/caches', 'Azure HPC Cache', | |
| type =~ 'microsoft.storagecache/amlfilesystems', 'Azure Managed Lustre', | |
| type =~ 'microsoft.sql/servers', 'Azure SQL (logical server)', | |
| type =~ 'microsoft.sql/servers/databases', 'Azure SQL Database', | |
| type =~ 'microsoft.sql/servers/elasticpools', 'Azure SQL Elastic Pool', | |
| type =~ 'microsoft.sql/managedinstances', 'Azure SQL Managed Instance', | |
| type =~ 'microsoft.sqlvirtualmachine/sqlvirtualmachines','SQL Server on Azure Virtual Machines', | |
| type =~ 'microsoft.dbforpostgresql/flexibleservers', 'Azure Database for PostgreSQL', | |
| type =~ 'microsoft.dbforpostgresql/servergroupsv2', 'Azure Cosmos DB for PostgreSQL', | |
| type =~ 'microsoft.dbformysql/flexibleservers', 'Azure Database for MySQL', | |
| type =~ 'microsoft.dbformariadb/servers', 'Azure Database for MariaDB', | |
| type =~ 'microsoft.documentdb/databaseaccounts', 'Azure Cosmos DB', | |
| type =~ 'microsoft.documentdb/mongoclusters', 'Azure Cosmos DB for MongoDB (vCore)', | |
| type =~ 'microsoft.cache/redis', 'Azure Cache for Redis', | |
| type =~ 'microsoft.cache/redisenterprise', 'Azure Managed Redis', | |
| type =~ 'microsoft.web/serverfarms', 'App Service Plan', | |
| type =~ 'microsoft.web/sites', 'App Service / Azure Functions', | |
| type =~ 'microsoft.web/staticsites', 'Static Web Apps', | |
| type =~ 'microsoft.web/hostingenvironments', 'App Service Environment', | |
| type =~ 'microsoft.appplatform/spring', 'Azure Spring Apps', | |
| type =~ 'microsoft.signalrservice/signalr', 'Azure SignalR Service', | |
| type =~ 'microsoft.signalrservice/webpubsub', 'Azure Web PubSub', | |
| type =~ 'microsoft.communication/communicationservices','Azure Communication Services', | |
| type =~ 'microsoft.communication/emailservices', 'Email Communication Service', | |
| type =~ 'microsoft.app/containerapps', 'Azure Container Apps', | |
| type =~ 'microsoft.app/managedenvironments', 'Container Apps Environment', | |
| type =~ 'microsoft.app/sessionpools', 'Container Apps Session Pool', | |
| type =~ 'microsoft.containerregistry/registries', 'Azure Container Registry', | |
| type =~ 'microsoft.containerinstance/containergroups', 'Azure Container Instances', | |
| // AI + Machine Learning (kind-aware) | |
| type =~ 'microsoft.cognitiveservices/accounts' and kind =~ 'AIServices', 'Foundry Account', | |
| type =~ 'microsoft.cognitiveservices/accounts' and kind =~ 'OpenAI', 'Azure OpenAI', | |
| type =~ 'microsoft.cognitiveservices/accounts/projects', 'Foundry Project', | |
| type =~ 'microsoft.cognitiveservices/accounts' and kind =~ 'FormRecognizer', 'Azure AI Document Intelligence', | |
| type =~ 'microsoft.cognitiveservices/accounts' and kind =~ 'ComputerVision', 'Azure AI Vision', | |
| type =~ 'microsoft.cognitiveservices/accounts' and kind =~ 'CustomVision.Training', 'Azure AI Custom Vision (Training)', | |
| type =~ 'microsoft.cognitiveservices/accounts' and kind =~ 'CustomVision.Prediction', 'Azure AI Custom Vision (Prediction)', | |
| type =~ 'microsoft.cognitiveservices/accounts' and kind =~ 'SpeechServices', 'Azure AI Speech', | |
| type =~ 'microsoft.cognitiveservices/accounts' and kind in~ ('TextAnalytics','Language'), 'Azure AI Language', | |
| type =~ 'microsoft.cognitiveservices/accounts' and kind =~ 'TextTranslation', 'Azure AI Translator', | |
| type =~ 'microsoft.cognitiveservices/accounts' and kind =~ 'Face', 'Azure AI Face', | |
| type =~ 'microsoft.cognitiveservices/accounts' and kind =~ 'ContentSafety', 'Azure AI Content Safety', | |
| type =~ 'microsoft.cognitiveservices/accounts' and kind =~ 'CognitiveServices', 'Azure AI services (multi-service)', | |
| type =~ 'microsoft.cognitiveservices/accounts', strcat('Azure AI - ', tostring(kind)), | |
| type =~ 'microsoft.machinelearningservices/workspaces' and kind =~ 'Hub', 'Foundry Hub (hub-based)', | |
| type =~ 'microsoft.machinelearningservices/workspaces' and kind =~ 'Project', 'Foundry Project (hub-based)', | |
| type =~ 'microsoft.machinelearningservices/workspaces', 'Azure Machine Learning', | |
| type =~ 'microsoft.machinelearningservices/workspaces/onlineendpoints', 'ML Online Endpoint', | |
| type =~ 'microsoft.machinelearningservices/registries', 'ML Registry', | |
| type =~ 'microsoft.search/searchservices', 'Azure AI Search', | |
| type =~ 'microsoft.bing/accounts', 'Grounding with Bing Search', | |
| type =~ 'microsoft.videoindexer/accounts', 'Azure AI Video Indexer', | |
| type =~ 'microsoft.botservice/botservices', 'Azure AI Bot Service', | |
| // Analytics | |
| type =~ 'microsoft.databricks/workspaces', 'Azure Databricks', | |
| type =~ 'microsoft.eventhub/namespaces', 'Event Hubs', | |
| type =~ 'microsoft.synapse/workspaces', 'Azure Synapse Analytics', | |
| type =~ 'microsoft.synapse/workspaces/sqlpools', 'Synapse SQL Pool', | |
| type =~ 'microsoft.synapse/workspaces/bigdatapools', 'Synapse Spark Pool', | |
| type =~ 'microsoft.kusto/clusters', 'Azure Data Explorer', | |
| type =~ 'microsoft.streamanalytics/streamingjobs', 'Azure Stream Analytics', | |
| type =~ 'microsoft.datafactory/factories', 'Azure Data Factory', | |
| type =~ 'microsoft.hdinsight/clusters', 'HDInsight', | |
| type =~ 'microsoft.datalakestore/accounts', 'Azure Data Lake Storage Gen1', | |
| type =~ 'microsoft.datalakeanalytics/accounts', 'Data Lake Analytics', | |
| type =~ 'microsoft.fabric/capacities', 'Microsoft Fabric', | |
| type =~ 'microsoft.powerbidedicated/capacities', 'Power BI Embedded', | |
| type =~ 'microsoft.analysisservices/servers', 'Azure Analysis Services', | |
| type =~ 'microsoft.purview/accounts', 'Microsoft Purview', | |
| // Integration | |
| type =~ 'microsoft.servicebus/namespaces', 'Service Bus', | |
| type =~ 'microsoft.eventgrid/topics', 'Event Grid Topic', | |
| type =~ 'microsoft.eventgrid/systemtopics', 'Event Grid System Topic', | |
| type =~ 'microsoft.eventgrid/domains', 'Event Grid Domain', | |
| type =~ 'microsoft.eventgrid/namespaces', 'Event Grid Namespace', | |
| type =~ 'microsoft.apimanagement/service', 'API Management', | |
| type =~ 'microsoft.logic/workflows', 'Logic Apps', | |
| type =~ 'microsoft.relay/namespaces', 'Azure Relay', | |
| type =~ 'microsoft.notificationhubs/namespaces', 'Notification Hubs', | |
| type =~ 'microsoft.appconfiguration/configurationstores','App Configuration', | |
| type =~ 'microsoft.web/connections', 'API Connection', | |
| // Internet of Things | |
| type =~ 'microsoft.devices/iothubs', 'Azure IoT Hub', | |
| type =~ 'microsoft.devices/provisioningservices', 'IoT Hub Device Provisioning Service', | |
| type =~ 'microsoft.iotcentral/iotapps', 'Azure IoT Central', | |
| type =~ 'microsoft.digitaltwins/digitaltwinsinstances', 'Azure Digital Twins', | |
| type =~ 'microsoft.timeseriesinsights/environments', 'Time Series Insights', | |
| // Networking | |
| type =~ 'microsoft.network/publicipaddresses', 'Public IP Address', | |
| type =~ 'microsoft.network/publicipprefixes', 'Public IP Prefix', | |
| type =~ 'microsoft.network/loadbalancers', 'Load Balancer', | |
| type =~ 'microsoft.network/applicationgateways', 'Application Gateway', | |
| type =~ 'microsoft.network/azurefirewalls', 'Azure Firewall', | |
| type =~ 'microsoft.network/frontdoorwebapplicationfirewallpolicies', 'Front Door WAF Policy', | |
| type =~ 'microsoft.network/applicationgatewaywebapplicationfirewallpolicies','Application Gateway WAF Policy', | |
| type =~ 'microsoft.network/bastionhosts', 'Azure Bastion', | |
| type =~ 'microsoft.network/natgateways', 'NAT Gateway', | |
| type =~ 'microsoft.network/virtualnetworkgateways', 'VPN / ExpressRoute Gateway', | |
| type =~ 'microsoft.network/expressroutecircuits', 'Azure ExpressRoute', | |
| type =~ 'microsoft.network/expressrouteports', 'ExpressRoute Direct Port', | |
| type =~ 'microsoft.network/virtualhubs', 'Virtual WAN Hub', | |
| type =~ 'microsoft.network/vpngateways', 'VPN Gateway (vWAN)', | |
| type =~ 'microsoft.network/p2svpngateways', 'Point-to-Site VPN Gateway', | |
| type =~ 'microsoft.network/frontdoors', 'Azure Front Door (classic)', | |
| type =~ 'microsoft.cdn/profiles', 'Azure Front Door / CDN', | |
| type =~ 'microsoft.network/ddosprotectionplans', 'Azure DDoS Protection', | |
| type =~ 'microsoft.network/trafficmanagerprofiles', 'Traffic Manager', | |
| type =~ 'microsoft.network/dnszones', 'Azure DNS Zone', | |
| type =~ 'microsoft.network/privatednszones', 'Private DNS Zone', | |
| type =~ 'microsoft.network/dnsresolvers', 'DNS Private Resolver', | |
| type =~ 'microsoft.network/privateendpoints', 'Private Endpoint', | |
| type =~ 'microsoft.network/privatelinkservices', 'Private Link Service', | |
| type =~ 'microsoft.network/networkvirtualappliances', 'Network Virtual Appliance', | |
| type =~ 'microsoft.servicenetworking/trafficcontrollers','Application Gateway for Containers', | |
| type =~ 'microsoft.network/virtualnetworks', 'Virtual Network', | |
| type =~ 'microsoft.network/networkinterfaces', 'Network Interface', | |
| type =~ 'microsoft.network/networksecuritygroups', 'Network Security Group', | |
| type =~ 'microsoft.network/routetables', 'Route Table', | |
| type =~ 'microsoft.network/privatednszones/virtualnetworklinks', 'Private DNS Zone VNet Link', | |
| type =~ 'microsoft.network/networkwatchers', 'Network Watcher', | |
| type =~ 'microsoft.network/networksecurityperimeters', 'Network Security Perimeter', | |
| type =~ 'microsoft.network/ipgroups', 'IP Group', | |
| type =~ 'github.network/networksettings', 'GitHub Network Settings', | |
| // Security | |
| type =~ 'microsoft.keyvault/vaults', 'Azure Key Vault', | |
| type =~ 'microsoft.keyvault/managedhsms', 'Azure Key Vault Managed HSM', | |
| type =~ 'microsoft.security/securityconnectors', 'Microsoft Defender for Cloud', | |
| // Identity | |
| type =~ 'microsoft.managedidentity/userassignedidentities', 'Managed Identity', | |
| // Hybrid + multicloud | |
| type =~ 'microsoft.kubernetesconfiguration/privatelinkscopes', 'Azure Arc Private Link Scope', | |
| type =~ 'microsoft.kubernetesconfiguration/extensions', 'Azure Arc Cluster Extension', | |
| // Management and governance | |
| type =~ 'microsoft.operationalinsights/workspaces', 'Log Analytics Workspace', | |
| type =~ 'microsoft.operationsmanagement/solutions', 'Log Analytics Solution', | |
| type =~ 'microsoft.insights/components', 'Application Insights', | |
| type =~ 'microsoft.insights/webtests', 'Availability Test', | |
| type =~ 'microsoft.insights/metricalerts', 'Metric Alert Rule', | |
| type =~ 'microsoft.insights/scheduledqueryrules', 'Log Search Alert Rule', | |
| type =~ 'microsoft.insights/actiongroups', 'Action Group', | |
| type =~ 'microsoft.insights/autoscalesettings', 'Autoscale Setting', | |
| type =~ 'microsoft.insights/datacollectionrules', 'Data Collection Rule', | |
| type =~ 'microsoft.insights/datacollectionendpoints', 'Data Collection Endpoint', | |
| type =~ 'microsoft.alertsmanagement/smartdetectoralertrules', 'Smart Detection Alert Rule', | |
| type =~ 'microsoft.automation/automationaccounts', 'Azure Automation', | |
| type =~ 'microsoft.automation/automationaccounts/runbooks', 'Automation Runbook', | |
| type =~ 'microsoft.recoveryservices/vaults', 'Azure Backup / Site Recovery', | |
| type =~ 'microsoft.dataprotection/backupvaults', 'Backup Vault', | |
| type =~ 'microsoft.monitor/accounts', 'Azure Monitor Workspace', | |
| type =~ 'microsoft.chaos/experiments', 'Azure Chaos Studio', | |
| // Developer tools | |
| type =~ 'microsoft.devcenter/devcenters', 'Microsoft Dev Box (Dev Center)', | |
| type =~ 'microsoft.devcenter/devcenters/devboxdefinitions', 'Dev Box Definition', | |
| type =~ 'microsoft.devcenter/projects', 'Dev Center Project', | |
| type =~ 'microsoft.devcenter/projects/pools', 'Dev Box Pool', | |
| type =~ 'microsoft.devcenter/networkconnections', 'Dev Center Network Connection', | |
| type =~ 'microsoft.devopsinfrastructure/pools', 'Managed DevOps Pools', | |
| type =~ 'microsoft.loadtestservice/loadtests', 'Azure Load Testing', | |
| type =~ 'microsoft.dashboard/grafana', 'Azure Managed Grafana', | |
| type =~ 'microsoft.devtestlab/schedules', 'DevTest Labs Schedule', | |
| // Media | |
| type =~ 'microsoft.media/mediaservices', 'Azure Media Services', | |
| type =~ 'microsoft.healthbot/healthbots', 'Azure Health Bot', | |
| type =~ 'microsoft.datashare/accounts', 'Azure Data Share', | |
| type =~ 'microsoft.datacatalog/catalogs', 'Azure Data Catalog', | |
| type =~ 'microsoft.azurefleet/fleets', 'Azure Compute Fleet', | |
| type =~ 'microsoft.quantum/workspaces', 'Azure Quantum', | |
| type =~ 'microsoft.virtualmachineimages/imagetemplates', 'Azure VM Image Builder', | |
| type =~ 'microsoft.containerservice/fleets', 'Azure Kubernetes Fleet Manager', | |
| type =~ 'microsoft.containerstorage/pools', 'Azure Container Storage', | |
| type =~ 'microsoft.datamigration/sqlmigrationservices', 'Azure Database Migration Service', | |
| type =~ 'microsoft.datamigration/services', 'Azure Database Migration Service', | |
| type =~ 'microsoft.documentdb/cassandraclusters', 'Azure Managed Instance for Apache Cassandra', | |
| type =~ 'microsoft.confidentialledger/ledgers', 'Azure confidential ledger', | |
| type =~ 'microsoft.devtestlab/labs', 'Azure DevTest Labs', | |
| type =~ 'microsoft.azureplaywrightservice/accounts', 'Microsoft Playwright Testing', | |
| type =~ 'microsoft.codesigning/codesigningaccounts', 'Trusted Signing', | |
| type =~ 'microsoft.azurestackhci/clusters', 'Azure Local (Azure Stack HCI)', | |
| type =~ 'microsoft.databoxedge/databoxedgedevices', 'Azure Stack Edge', | |
| type =~ 'microsoft.storagemover/storagemovers', 'Azure Storage Mover', | |
| type =~ 'microsoft.aad/domainservices', 'Microsoft Entra Domain Services', | |
| type =~ 'microsoft.healthcareapis/workspaces', 'Azure Health Data Services', | |
| type =~ 'microsoft.maps/accounts', 'Azure Maps', | |
| type =~ 'microsoft.cognitiveservices/accounts/deployments', 'Foundry / OpenAI Model Deployment', | |
| type =~ 'microsoft.documentdb/cassandraclusters/datacenters', 'Managed Cassandra Data Center', | |
| type =~ 'microsoft.machinelearningservices/workspaces/computes', 'Azure ML Compute', | |
| type =~ 'microsoft.batch/batchaccounts/pools', 'Batch Pool', | |
| type =~ 'microsoft.datafactory/factories/integrationruntimes', 'Integration Runtime', | |
| type =~ 'microsoft.eventhub/namespaces/eventhubs', 'Event Hub', | |
| type =~ 'microsoft.netapp/netappaccounts/capacitypools/volumes', 'Azure NetApp Files Volume', | |
| type =~ 'microsoft.containerregistry/registries/replications', 'Container Registry Replication', | |
| type =~ 'microsoft.servicefabric/managedclusters/nodetypes', 'Service Fabric Node Type', | |
| type =~ 'microsoft.appplatform/spring/apps/deployments', 'Spring Apps Deployment', | |
| type =~ 'microsoft.documentdb/databaseaccounts/sqldatabases', 'Cosmos DB SQL Database', | |
| type =~ 'microsoft.documentdb/databaseaccounts/sqldatabases/containers', 'Cosmos DB Container', | |
| type =~ 'microsoft.documentdb/databaseaccounts/mongodbdatabases', 'Cosmos DB Mongo Database', | |
| type =~ 'microsoft.documentdb/databaseaccounts/mongodbdatabases/collections', 'Cosmos DB Mongo Collection', | |
| type =~ 'microsoft.documentdb/databaseaccounts/cassandrakeyspaces', 'Cosmos DB Cassandra Keyspace', | |
| type =~ 'microsoft.documentdb/databaseaccounts/cassandrakeyspaces/tables','Cosmos DB Cassandra Table', | |
| type =~ 'microsoft.documentdb/databaseaccounts/gremlindatabases', 'Cosmos DB Gremlin Database', | |
| type =~ 'microsoft.documentdb/databaseaccounts/gremlindatabases/graphs', 'Cosmos DB Gremlin Graph', | |
| type =~ 'microsoft.documentdb/databaseaccounts/tables', 'Cosmos DB Table', | |
| // Fallback: resource-type leaf | |
| extract('([^/]+)$', 1, type) | |
| ) | |
| // Cost-attribution note: AKS/ARO node compute is billed on the VMSS in the node RG, NOT on the cluster resource | |
| | extend costNote = case( | |
| type in~ ('microsoft.containerservice/managedclusters','microsoft.redhatopenshift/openshiftclusters'), 'NOT billed here (informational) — node compute = the VMSS in node RG; AKS charge = control-plane tier only', | |
| type =~ 'microsoft.compute/virtualmachinescalesets' and resourceGroup startswith 'mc_', 'AKS node pool VMSS — THIS is the billed node compute', | |
| '') | |
| | project family, serviceName, name, type, kind, location, resourceGroup, | |
| tier, skuName, computeSize, nodePool, osType, size, costNote, skuFamily, skuCapacity, subscriptionId | |
| | order by family asc, serviceName asc, name asc |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment