How many Services does Microsoft Azure Offer?

How many service offerings does Azure have? I've read anywhere from 150 to 600 and I even went so far as to ask an Azure Product Manager but didn't receive a clear answer. What I did find out is that Microsoft maintains an Azure services directory on their Azure products website.

I figured that was a good place to start looking and while the website is informative, it didn't provide a count of the service offerings. Manually counting them wouldn't be an efficient or accurate way of accomplishing the task of determining how many services are offered so I decided to use PowerShell for the task.

First, if you're prototyping a command, it's best to store the results in a variable and work with the variable. If I heard Ed Wilson, The Scripting Guy (retired) say it one time, I've heard him say it a thousand times: "If you're going to eat an elephant, only eat it once."

I queried the previous referenced website and stored the results in a variable. Then I determined what the properties were and took a look at the type of data each property returned.

1$AzureServices = Invoke-WebRequest -Uri https://azure.microsoft.com/en-us/services/
2$AzureServices | Get-Member

azure-services1a.jpg

The Links property looked promising and with a little filtering, I was able to return a list of the services.

1$AzureServices.Links |
2Where-Object href -like '/en-us/services/?*' |
3Select-Object -Property data-event-property, href

azure-services2a.jpg

So far, 243 Azure services are listed on the webpage.

1($AzureServices.Links |
2Where-Object href -like '/en-us/services/?*' |
3Select-Object -Property data-event-property, href).Count

azure-services3a.jpg

What I started noticing though is there are numerous services listed more than once in different categories.

1$AzureServices.Links |
2Where-Object href -like '/en-us/services/?*' |
3Select-Object -Property data-event-property, href |
4Group-Object -Property data-event-property, href -NoElement |
5Where-Object -Property Count -gt 1 |
6Sort-Object -Property Count -Descending |
7Format-Table -AutoSize

azure-services4a.jpg

I decided to sort the results uniquely by their relative URL (href) and their name (data-event-property).

1$AzureServices.Links |
2Where-Object href -like '/en-us/services/?*' |
3Select-Object -Property data-event-property, href |
4Sort-Object -Property href, data-event-property -Unique

azure-services5a.jpg

And finally for a unique count of the Azure services listed on the webpage.

1($AzureServices.Links |
2Where-Object href -like '/en-us/services/?*' |
3Select-Object -Property data-event-property, href |
4Sort-Object -Property href, data-event-property -Unique).Count

azure-services6a.jpg

There are 169 unique Azure services listed on the Azure products webpage as of the writing of this blog article.

µ