PowerShell: Updating an Azure Service Display Name

If you’re like me, you probably like clarity, consistency, and conciseness. Given that, I like to ensure that names of hosted services in Windows Azure are named appropriately. Sometimes developers will give a service a quick name that they understand, but may not relay enough information to other team members, at a glance, as to what that service does.

Thankfully, this is easily rectified using a simple PowerShell command. Assuming that you have already configured your Windows Azure PowerShell cmdlets according to my recent “Introduction to Azure PowerShell Module” article, you can simply run the following command to update the Label (aka. “friendly name”) of a Windows Azure hosted service.

1
2
3
4
# Select the Windows Azure subscription that we are working with (must be configured using Set-AzureSubscription)
Select-AzureSubscription -SubscriptionName Development;
# Set the new friendly name (label) for the service
Set-AzureService -ServiceName MyService -Label "This is my new service label";

If you want to take it one step further, you can build a .NET [HashTable] of key-value mappings that link service names to their respective labels. Then, once you’ve got the mapping, you can simply iterate over it and call Set-AzureService for each entry. This method is a lot more flexible and efficient with writing code :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Select the Windows Azure subscription
Select-AzureSubscription -SubscriptionName development;

# Build a HashTable of service names and labels
$ServiceList = @{
    'Service1' = 'My First Service';
    'Service2' = 'My Second Service';
    'Service3' = 'My Third Service';
};

# For each service entry in the HashTable, update the Label field
foreach ($Service in $ServiceList.Keys) {
        Set-AzureService -ServiceName $Service -Label $ServiceList[$Service];
};

Pretty easy, isn’t it?

“Why go through all that effort? I’ll just do it through the UI.”

Did I happen to mention that the Windows Azure Silverlight user interface (UI) doesn’t even allow you to change the label / friendly name of a hosted service once it has been created? Yes, it’s true (as far as I know). The only option to re-label an Azure hosted service through the management UI, once it has already been defined, is to delete the existing service definition, and recreate it. That doesn’t sound like a viable option in a production environment now, does it? :)

Until next time … enjoy scripting ALL the things in PowerShell!

PowerShell: Automate Windows Azure Service Bus queue creation

One of the core services provided by the Windows Azure “cloud computing” platform is the ability to create first-in, first-out messaging queues. These queues are considered to be part of the Service Bus feature in Windows Azure. In some cases, it may be desirable to automate the creation of these queues, especially if there are a lot of them to create. By automating this process, rather than performing it manually, you can ensure consistency, repeatability, and speed.

Starting out with Windows Azure automation might lead you to download the official Microsoft Windows Azure cmdlets, or even the third-party Cerebrata Windows Azure module for Windows PowerShell. The latter module appears to have cmdlets that support queue creation, however the former (Microsoft) module does not. If you’d rather not spend the money on the Cerebrata module, can’t get your company to buy it for you, or you’d rather just stick to native Microsoft stuff, you’re still in luck. The Windows Azure .NET SDK 1.6 allows C# developers, and PowerShell script writers, to create queues using the provided .NET types!
Continue reading