How do I change the name of an Azure Resource Group?

After the new model was implemented, all of my websites now belong to individual Resource Groups called "Default-Web-East" and all of my SQL databases belong to individual Resource Groups called "Default-SQL-East".

This is confusing to say the least.

I would like to rename the groups to have some semantic meaning. I would also like to group the associated SQL database and Web Site in the same Resource Group.

However, I do not see anyway to do either. Is this possible?

1) Rename the Resource Group? 2) Combine an existing SQL DB and Website together into one Resource Group?


Edit: You can't rename an Azure Resource Group.

What you can do is move your resources to a new Resource Group instead. Moving all resources in Resource Group A to Resource Group B is the poor man's rename.

Unfortunately not all resource providers let you move resources between resource groups, and some that do might have strings attached that only let you move resources under certain conditions.

For Azure Web Apps (previously called Azure Websites) you can currently only move all the websites related resources in a single invocation. That "all websites related resources" means all resource under the provider "Microsoft.Web". This includes all websites, app hosting platforms, and certificates that are in the source resource group.


Via the portal

When viewing a group's resources, you can use the "Move" tab Screenshot of resource group options in portal

Clicking the "Move" tab will show something this, allowing you to choose or create a new group: The move tab in resource group on Azure portal

Via Azure Powershell

The easiest way to do this is to use the Move-AzureRmResource powershell cmdlet.

The command would look like this:

Get-AzureRmResource -ResourceGroupName <sourceResourceGroupName> | Move-AzureRmResource -DestinationResourceGroupName <destResourceGroupName>

source: https://azure.microsoft.com/en-us/documentation/articles/resource-group-move-resources/


Via Rest API

The other way to do this is to use the MoveResource Rest API or with the ArmClient.

Here's the API call you'll want to make:

POST https://<endpoint>/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/moveResources?api-version={api-version}

Where {resourceGroupName} is the source resource group.

I'm pretty sure the endpoint should be "https://management.azure.com", but if you use the ArmClient the tool will just take care of the endpoint for you.

Request Body:

{
   "targetResourceGroup": "/subscriptions/{subscriptionId}/resourceGroups/{targetResourceGroupNameName}",
   "resources":
   [  
     "/subscriptions/{id}/resourceGroups/{source}/providers/{namespace}/{type}/{name}",
     "/subscriptions/{id}/resourceGroups/{source}/providers/{namespace}/{type}/{name}"
   ]
}