Azure Dicumentation
Azure Dicumentation
Azure Dicumentation
Azure Resource Manager is the deployment and management service for Azure. It provides a management layer
that enables you to create, update, and delete resources in your Azure subscription. You use management
features, like access control, locks, and tags, to secure and organize your resources after deployment.
To learn about Azure Resource Manager templates, see Template deployment overview.
All capabilities that are available in the portal are also available through PowerShell, Azure CLI, REST APIs, and
client SDKs. Functionality initially released through APIs will be represented in the portal within 180 days of
initial release.
Terminology
If you're new to Azure Resource Manager, there are some terms you might not be familiar with.
resource - A manageable item that is available through Azure. Virtual machines, storage accounts, web apps,
databases, and virtual networks are examples of resources.
resource group - A container that holds related resources for an Azure solution. The resource group includes
those resources that you want to manage as a group. You decide which resources belong in a resource group
based on what makes the most sense for your organization. See Resource groups.
resource provider - A service that supplies Azure resources. For example, a common resource provider is
Microsoft.Compute, which supplies the virtual machine resource. Microsoft.Storage is another common
resource provider. See Resource providers and types.
Resource Manager template - A JavaScript Object Notation (JSON ) file that defines one or more resources
to deploy to a resource group or subscription. The template can be used to deploy the resources consistently
and repeatedly. See Template deployment overview.
declarative syntax - Syntax that lets you state "Here is what I intend to create" without having to write the
sequence of programming commands to create it. The Resource Manager template is an example of
declarative syntax. In the file, you define the properties for the infrastructure to deploy to Azure. See Template
deployment overview.
Understand scope
Azure provides four levels of scope: management groups, subscriptions, resource groups, and resources. The
following image shows an example of these layers.
You apply management settings at any of these levels of scope. The level you select determines how widely the
setting is applied. Lower levels inherit settings from higher levels. For example, when you apply a policy to the
subscription, the policy is applied to all resource groups and resources in your subscription. When you apply a
policy on the resource group, that policy is applied the resource group and all its resources. However, another
resource group doesn't have that policy assignment.
You can deploy templates to management groups, subscriptions, or resource groups.
Resource groups
There are some important factors to consider when defining your resource group:
All the resources in your group should share the same lifecycle. You deploy, update, and delete them
together. If one resource, such as a database server, needs to exist on a different deployment cycle it
should be in another resource group.
Each resource can only exist in one resource group.
You can add or remove a resource to a resource group at any time.
You can move a resource from one resource group to another group. For more information, see Move
resources to new resource group or subscription.
A resource group can contain resources that are located in different regions.
A resource group can be used to scope access control for administrative actions.
A resource can interact with resources in other resource groups. This interaction is common when the two
resources are related but don't share the same lifecycle (for example, web apps connecting to a database).
When creating a resource group, you need to provide a location for that resource group. You may be wondering,
"Why does a resource group need a location? And, if the resources can have different locations than the resource
group, why does the resource group location matter at all?" The resource group stores metadata about the
resources. When you specify a location for the resource group, you're specifying where that metadata is stored.
For compliance reasons, you may need to ensure that your data is stored in a particular region.
If the resource group's region is temporarily unavailable, you can't update resources in the resource group
because the metadata is unavailable. The resources in other regions will still function as expected, but you can't
update them. For more information about building reliable applications, see Designing reliable Azure
applications.
Next steps
For all the operations offered by resource providers, see the Azure REST APIs.
To learn about moving resources, see Move resources to new resource group or subscription.
To learn about tagging resources, see Use tags to organize your Azure resources.
To learn about locking resources, see Lock resources to prevent unexpected changes.
For information about creating templates for deployments, see Template deployment overview.
Azure subscription and service limits, quotas, and
constraints
1/20/2020 • 87 minutes to read • Edit Online
This document lists some of the most common Microsoft Azure limits, which are also sometimes called quotas.
This document doesn't currently cover all Azure services. Over time, the list will be expanded and updated to cover
more services.
To learn more about Azure pricing, see Azure pricing overview. There, you can estimate your costs by using the
pricing calculator. You also can go to the pricing details page for a particular service, for example, Windows VMs.
For tips to help manage your costs, see Prevent unexpected costs with Azure billing and cost management.
NOTE
If you want to raise the limit or quota above the default limit, open an online customer support request at no charge. The
limits can't be raised above the maximum limit value shown in the following tables. If there's no maximum limit column, the
resource doesn't have adjustable limits.
Free Trial subscriptions aren't eligible for limit or quota increases. If you have a Free Trial subscription, you can upgrade to a
Pay-As-You-Go subscription. For more information, see Upgrade your Azure Free Trial subscription to a Pay-As-You-Go
subscription and the Free Trial subscription FAQ.
NOTE
Quotas for resources in Azure resource groups are per-region accessible by your subscription, not per-subscription as the
service management quotas are. Let's use vCPU quotas as an example. To request a quota increase with support for vCPUs,
you must decide how many vCPUs you want to use in which regions. You then make a specific request for Azure resource
group vCPU quotas for the amounts and regions that you want. If you need to use 30 vCPUs in West Europe to run your
application there, you specifically request 30 vCPUs in West Europe. Your vCPU quota isn't increased in any other region--
only West Europe has the 30-vCPU quota.
As a result, decide what your Azure resource group quotas must be for your workload in any one region. Then request that
amount in each region into which you want to deploy. For help in how to determine your current quotas for specific regions,
see Troubleshoot deployment issues.
Service-specific limits
Active Directory
API Management
App Service
Application Gateway
Automation
Azure Cache for Redis
Azure Cloud Services
Azure Cognitive Search
Azure Cognitive Services
Azure Cosmos DB
Azure Data Explorer
Azure Database for MySQL
Azure Database for PostgreSQL
Azure DNS
Azure Firewall
Azure Functions
Azure Kubernetes Service
Azure Machine Learning
Azure Maps
Azure Monitor
Azure Policy
Azure SignalR Service
Backup
Batch
BizTalk Services
Container Instances
Container Registry
Content Delivery Network
Data Factory
Data Lake Analytics
Data Lake Store
Database Migration Service
Event Grid
Event Hubs
Front Door Service
Identity Manager
IoT Central
IoT Hub
IoT Hub Device Provisioning Service
Key Vault
Media Services
Mobile Services
Multi-Factor Authentication
Networking
Application Gateway
Azure Bastion
Azure DNS
Azure Front Door Service
Azure Firewall
ExpressRoute
Load Balancer
Network Watcher
Public IP address
Private Link
Traffic Manager
Virtual Network
Virtual WAN
Notification Hubs
Resource group
Role-based access control
Scheduler
Service Bus
Site Recovery
SQL Database
SQL Data Warehouse
Storage
StorSimple System
Stream Analytics
Subscription
Virtual Machines
Virtual machine scale sets
Subscription limits
Subscription limits - Azure Service Management (classic deployment model)
1Extra small instances count as one vCPU toward the vCPU limit despite using a partial CPU core.
2The storage account limit includes both Standard and Premium storage accounts.
Subscription limits - Azure Resource Manager
The following limits apply when you use Azure Resource Manager and Azure resource groups. Limits that haven't
changed with Azure Resource Manager aren't listed. See the previous table for those limits.
For information about Resource Manager API read and write limits, see Throttling Resource Manager requests.
Azure Spot VM total cores per 201 per region. Contact support.
subscription
VM per series, such as Dv2 and F, cores 201 per region. Contact support.
per subscription
Availability sets per subscription 2,000 per region. 2,000 per region.
Resources per resource group, per 800 Some resource types can exceed the
resource type 800 limit. See Resources not limited to
800 instances per resource group.
Outputs 64 64
Template size 4 MB 4 MB
You can exceed some template limits by using a nested template. For more information, see Use linked templates
when you deploy Azure resources. To reduce the number of parameters, variables, or outputs, you can combine
several values into an object. For more information, see Objects as parameters.
Virtual Machines limits
Virtual Machines limits
1Virtual machines created by using the classic deployment model instead of Azure Resource Manager are
automatically stored in a cloud service. You can add more virtual machines to that cloud service for load balancing
and availability.
2Input endpoints allow communications to a virtual machine from outside the virtual machine's cloud service.
Virtual machines in the same cloud service or virtual network can automatically communicate with each other. For
more information, see How to set up endpoints to a virtual machine.
Virtual Machines limits - Azure Resource Manager
The following limits apply when you use Azure Resource Manager and Azure resource groups.
1With Azure Resource Manager, certificates are stored in the Azure Key Vault. The number of certificates is
unlimited for a subscription. There's a 1-MB limit of certificates per deployment, which consists of either a single
VM or an availability set.
Shared Image Gallery limits
There are limits, per subscription, for deploying resources using Shared Image Galleries:
100 shared image galleries, per subscription, per region
1,000 image definitions, per subscription, per region
10,000 image versions, per subscription, per region
Virtual machine scale sets limits
RESOURCE DEFAULT LIMIT MAXIMUM LIMIT
Ports per IP 5
Maximum image layer size 200 GiB 200 GiB 200 GiB
Webhooks 2 10 500
1The specified storage limits are the amount of included storage for each tier. You're charged an additional daily
rate per GiB for image storage above these limits. For rate information, see Azure Container Registry pricing.
2ReadOps, WriteOps, and Bandwidth are minimum estimates. Azure Container Registry strives to improve
performance as usage requires.
3A docker pull translates to multiple read operations based on the number of layers in the image, plus the manifest
retrieval.
4A docker push translates to multiple write operations, based on the number of layers that must be pushed. A
docker push includes ReadOps to retrieve a manifest for an existing image.
Azure Kubernetes Service limits
RESOURCE DEFAULT LIMIT
Maximum nodes per cluster with Virtual Machine Scale Sets 800 (100 nodes per node pool)
and Standard Load Balancer SKU
Maximum pods per node: Advanced networking with Azure Azure CLI deployment: 301
Container Networking Interface Azure Resource Manager template: 301
Portal deployment: 30
1When you deploy an Azure Kubernetes Service (AKS ) cluster with the Azure CLI or a Resource Manager
template, this value is configurable up to 250 pods per node. You can't configure maximum pods per node after
you've already deployed an AKS cluster, or if you deploy a cluster by using the Azure portal.
Azure Machine Learning limits
The latest values for Azure Machine Learning Compute quotas can be found in the Azure Machine Learning quota
page
Networking limits
Networking limits - Azure Resource Manager The following limits apply only for networking resources managed
through Azure Resource Manager per region per subscription. Learn how to view your current resource usage
against your subscription limits.
NOTE
We recently increased all default limits to their maximum limits. If there's no maximum limit column, the resource doesn't
have adjustable limits. If you had these limits increased by support in the past and don't see updated limits in the following
tables, open an online customer support request at no charge
The following limits apply only for networking resources managed through the classic deployment model per subscription. Learn how
to view your current resource usage against your subscription limits .
Concurrent TCP or UDP flows per NIC 500,000, up to 1,000,000 for two or 500,000, up to 1,000,000 for two or
of a virtual machine or role instance more NICs. more NICs.
ExpressRoute limits
Number of virtual network links allowed per ExpressRoute See the Number of virtual networks per ExpressRoute circuit
circuit table.
50 Mbps 10 20
100 Mbps 10 25
200 Mbps 10 25
500 Mbps 10 40
1 Gbps 10 50
2 Gbps 10 60
5 Gbps 10 75
10 Gbps 10 100
40 Gbps* 10 100
RESOURCE LIMIT
Throughput per Virtual WAN VPN connection (2 tunnels) 2 Gbps with 1 Gbps/IPsec tunnel
1 In case of WAF -enabled SKUs, we recommend that you limit the number of resources to 40 for optimal
performance.
Network Watcher limits
Azure Network Watcher 1 per region 1 per region Network Watcher is created
to enable access to the
service. Only one instance of
Network Watcher is required
per subscription per region.
RESOURCE DEFAULT LIMIT MAXIMUM LIMIT NOTE
Packet capture sessions 10,000 per region 10,000 Number of sessions only, not
saved captures.
RESOURCE LIMIT
Number of IP Configurations on a private link service 8 (This number is for the NAT IP addresses used per PLS)
*May vary due to other on-going RDP sessions or other on-going SSH sessions.
**May vary if there are existing RDP connections or usage from other on-going SSH sessions.
Azure DNS limits
Public DNS zones
Virtual Networks Links per private DNS zones with auto- 100
registration enabled
Number of private DNS zones a virtual network can get linked 1000
Port range in network and application rules 0-64,000. Work is in progress to relax this limitation.
Public IP addresses 100 maximum (Currently, SNAT ports are added only for the
first five public IP addresses.)
Timeout values
Client to Front Door
Front Door has an idle TCP connection timeout of 61 seconds.
Front Door to application back-end
If the response is a chunked response, a 200 is returned if or when the first chunk is received.
After the HTTP request is forwarded to the back end, Front Door waits for 30 seconds for the first packet from
the back end. Then it returns a 503 error to the client.
After the first packet is received from the back end, Front Door waits for 30 seconds in an idle timeout. Then it
returns a 503 error to the client.
Front Door to the back-end TCP session timeout is 30 minutes.
Upload and download data limit
WITH CHUNKED TRANSFER ENCODING
(CTE) WITHOUT HTTP CHUNKING
Download There's no limit on the download size. There's no limit on the download size.
Upload There's no limit as long as each CTE The size can't be larger than 2 GB.
upload is less than 2 GB.
Other limits
Maximum URL size - 8,192 bytes - Specifies maximum length of the raw URL (scheme + hostname + port +
path + query string of the URL )
Maximum Query String size - 4,096 bytes - Specifies the maximum length of the query string, in bytes.
Storage limits
The following table describes default limits for Azure general-purpose v1, v2, and Blob storage accounts. The
ingress limit refers to all data from requests that are sent to a storage account. The egress limit refers to all data
from responses that are received from a storage account.
Maximum storage account capacity 2 PiB for US and Europe, and 500 TiB for all other regions
(including the UK)1
Maximum request rate1 per storage account 20,000 requests per second
Maximum ingress1 per storage account (regions other than 5 Gbps if RA-GRS/GRS is enabled, 10 Gbps for LRS/ZRS2
US and Europe)
Maximum egress for general-purpose v1 storage accounts 20 Gbps if RA-GRS/GRS is enabled, 30 Gbps for LRS/ZRS2
(US regions)
Maximum egress for general-purpose v1 storage accounts 10 Gbps if RA-GRS/GRS is enabled, 15 Gbps for LRS/ZRS2
(non-US regions)
1Azure Storage standard accounts support higher capacity limits and higher limits for ingress by request. To
request an increase in account limits for ingress, contact Azure Support. For more information, see Announcing
larger, higher scale storage accounts.
2 If your storage account has read-access enabled with geo-redundant storage (RA-GRS ) or geo-zone-redundant
storage (RA-GZRS ), then the egress targets for the secondary location are identical to those of the primary
location. Azure Storage replication options include:
Locally redundant storage (LRS )
Zone-redundant storage (ZRS )
Geo-redundant storage (GRS )
Read-access geo-redundant storage (RA-GRS )
Geo-zone-redundant storage (GZRS )
Read-access geo-zone-redundant storage (RA-GZRS )
NOTE
Microsoft recommends that you use a general-purpose v2 storage account for most scenarios. You can easily upgrade a
general-purpose v1 or an Azure Blob storage account to a general-purpose v2 account with no downtime and without the
need to copy data. For more information, see Upgrade to a general-purpose v2 storage account.
If the needs of your application exceed the scalability targets of a single storage account, you can build your
application to use multiple storage accounts. You can then partition your data objects across those storage
accounts. For information on volume pricing, see Azure Storage pricing.
All storage accounts run on a flat network topology and support the scalability and performance targets outlined
in this article, regardless of when they were created. For more information on the Azure Storage flat network
architecture and on scalability, see Microsoft Azure Storage: A Highly Available Cloud Storage Service with Strong
Consistency.
For more information on limits for standard storage accounts, see Scalability targets for standard storage
accounts.
Storage resource provider limits
The following limits apply only when you perform management operations by using Azure Resource Manager
with Azure Storage.
RESOURCE TARGET
Maximum size of single blob container Same as maximum storage account capacity
Maximum size of a block blob 50,000 X 100 MiB (approximately 4.75 TiB)
Target request rate for a single blob Up to 500 requests per second
Target throughput for a single block blob Up to storage account ingress/egress limits1
1 Throughput for a single blob depends on several factors, including, but not limited to: concurrency, request size,
performance tier, speed of source for uploads, and destination for downloads. To take advantage of the
performance enhancements of high-throughput block blobs, upload larger blobs or blocks. Specifically, call the Put
Blob or Put Block operation with a blob or block size that is greater than 4 MiB for standard storage accounts. For
premium block blob or for Data Lake Storage Gen2 storage accounts, use a block or blob size that is greater than
256 KiB.
Azure Files limits
For more information on Azure Files limits, see Azure Files scalability and performance targets.
Minimum size of a file share No minimum; pay as you go 100 GiB; provisioned
Maximum IOPS per share 10,000 IOPS*, 1,000 IOPS 100,000 IOPS
Target throughput for a single file share up to 300 MiB/sec*, Up to 60 MiB/sec , See premium file share ingress and
egress values
Maximum egress for a single file share See standard file share target Up to 6,204 MiB/s
throughput
Maximum ingress for a single file share See standard file share target Up to 4,136 MiB/s
throughput
Maximum open handles per file 2,000 open handles 2,000 open handles
Maximum number of share snapshots 200 share snapshots 200 share snapshots
* Not available in all regions, see Regional availability for a list of available regions.
Azure File Sync limits
Sync groups per Storage Sync Service 100 sync groups Yes
Minimum file size for a file to be tiered V9: Based on file system cluster size Yes
(double file system cluster size). For
example, if the file system cluster size is
4kb, the minimum file size will be 8kb.
V8 and older: 64 KiB
NOTE
An Azure File Sync endpoint can scale up to the size of an Azure file share. If the Azure file share size limit is reached, sync will
not be able to operate.
RESOURCE TARGET
Maximum request rate per storage account 20,000 messages per second, which assumes a 1-KiB message
size
Target throughput for a single queue (1-KiB messages) Up to 2,000 messages per second
RESOURCE TARGET
Maximum number of properties in a table entity 255, which includes three system properties: PartitionKey,
RowKey, and Timestamp
Maximum total size of an individual property in an entity Varies by property type. For more information, see Property
Types in Understanding the Table Service Data Model.
Maximum request rate per storage account 20,000 transactions per second, which assumes a 1-KiB entity
size
Target throughput for a single table partition (1 KiB-entities) Up to 2,000 entities per second
IMPORTANT
For optimal performance, limit the number of highly utilized disks attached to the virtual machine to avoid possible
throttling. If all attached disks aren't highly utilized at the same time, the virtual machine can support a larger number of
disks.
For Standard storage accounts: A Standard storage account has a maximum total request rate of 20,000
IOPS. The total IOPS across all of your virtual machine disks in a Standard storage account should not
exceed this limit.
You can roughly calculate the number of highly utilized disks supported by a single Standard storage
account based on the request rate limit. For example, for a Basic tier VM, the maximum number of highly
utilized disks is about 66, which is 20,000/300 IOPS per disk. The maximum number of highly utilized disks
for a Standard tier VM is about 40, which is 20,000/500 IOPS per disk.
For Premium storage accounts: A Premium storage account has a maximum total throughput rate of 50
Gbps. The total throughput across all of your VM disks should not exceed this limit.
For more information, see Virtual machine sizes.
Managed virtual machine disks
Standard HDD managed disks
STAND
ARD
DISK
TYPE S4 S6 S10 S15 S20 S30 S40 S50 S60 S70 S80
Disk 32 64 128 256 512 1,024 2,048 4,096 8,192 16,38 32,76
size in 4 7
GiB
IOPS Up to Up to Up to Up to Up to Up to Up to Up to Up to Up to Up to
per 500 500 500 500 500 500 500 500 1,300 2,000 2,000
disk
Throu Up to Up to Up to Up to Up to Up to Up to Up to Up to Up to Up to
ghput 60 60 60 60 60 60 60 60 300 500 500
per MiB/s MiB/s MiB/s MiB/s MiB/s MiB/s MiB/s MiB/s MiB/s MiB/s MiB/s
disk ec ec ec ec ec ec ec ec ec ec ec
STA
NDA
RD
SSD
SIZE
S E1* E2* E3* E4 E6 E10 E15 E20 E30 E40 E50 E60 E70 E80
Disk 4 8 16 32 64 128 256 512 1,02 2,04 4,09 8,19 16,3 32,7
size 4 8 6 2 84 67
in
GiB
STA
NDA
RD
SSD
SIZE
S E1* E2* E3* E4 E6 E10 E15 E20 E30 E40 E50 E60 E70 E80
IOP Up Up Up Up Up Up Up Up Up Up Up Up Up Up
S to to to to to to to to to to to to to to
per 120 120 120 120 240 500 500 500 500 500 500 2,00 4,00 6,00
disk 0 0 0
Thr Up Up Up Up Up Up Up Up Up Up Up Up Up Up
oug to to to to to to to to to to to to to to
hpu 25 25 25 25 50 60 60 60 60 60 60 400 600 750
t MiB MiB MiB MiB MiB MiB MiB MiB MiB MiB MiB MiB MiB MiB
per /sec /sec /sec /sec /sec /sec /sec /sec /sec /sec /sec /sec /sec /sec
disk
*Denotes a disk size that is currently in preview, for regional availability information see New disk sizes: Managed
and unmanaged.
Premium SSD managed disks: Per-disk limits
PRE
MIU
M
SSD
SIZE
S P1* P2* P3* P4 P6 P10 P15 P20 P30 P40 P50 P60 P70 P80
Disk 4 8 16 32 64 128 256 512 1,02 2,04 4,09 8,19 16,3 32,7
size 4 8 6 2 84 67
in
GiB
IOP 120 120 120 120 240 500 1,10 2,30 5,00 7,50 7,50 16,0 18,0 20,0
S 0 0 0 0 0 00 00 00
per
disk
Thr 25 25 25 25 50 100 125 150 200 250 250 500 750 900
oug MiB MiB MiB MiB MiB MiB MiB MiB MiB MiB MiB MiB MiB MiB
hpu /sec /sec /sec /sec /sec /sec /sec /sec /sec /sec /sec /sec /sec /sec
t
per
disk
Max 30 30 30 30 30 30 30 30
bur min min min min min min min min
st
dur
atio
n**
*Denotes a disk size that is currently in preview, for regional availability information see New disk sizes: Managed
and unmanaged.
**Denotes a feature that is currently in preview, see Disk bursting for more information.
Premium SSD managed disks: Per-VM limits
1
1Ingress refers to all data from
requests that are sent to a storage account. Egress refers to all data from responses
that are received from a storage account.
Premium unmanaged virtual machine disks: Per-disk limits
PREMIUM
STORAGE DISK
TYPE P10 P20 P30 P40 P50
Disk size 128 GiB 512 GiB 1,024 GiB (1 TB) 2,048 GiB (2 TB) 4,095 GiB (4 TB)
Maximum 100 MB/sec 150 MB/sec 200 MB/sec 250 MB/sec 250 MB/sec
throughput per
disk
Maximum 280 70 35 17 8
number of disks
per storage
account
1Each Azure Cloud Service with web or worker roles can have two deployments, one for production and one for
staging. This limit refers to the number of distinct roles, that is, configuration. This limit doesn't refer to the number
of instances per role, that is, scaling.
Azure Cognitive Services limits
The following limits are for the number of Cognitive Services resources per Azure subscription. Each of the
Cognitive Services may have additional limitations, for more information see Azure Cognitive Services.
TYPE LIMIT EXAMPLE
A mixture of Cognitive Services Maximum of 200 total Cognitive 100 Computer Vision resources in West
resources Services resources. US 2, 50 Speech Service resources in
West US, and 50 Text Analytics
resources in East US.
A single type of Cognitive Services Maximum of 100 resources per region, 100 Computer Vision resources in West
resources. with a maximum of 200 total Cognitive US 2, and 100 Computer Vision
Services resources. resources in East US.
App Service 10 per region 10 per 100 per 100 per 100 per 100 per
plan resource resource resource resource resource
group group group group group
CPU time (5 3 minutes 3 minutes Unlimited, pay Unlimited, pay Unlimited, pay Unlimited, pay
minutes)6 at standard at standard at standard at standard
rates rates rates rates
CPU time 60 minutes 240 minutes Unlimited, pay Unlimited, pay Unlimited, pay Unlimited, pay
(day)6 at standard at standard at standard at standard
rates rates rates rates
Concurrent 1 1 1 5 5 5
debugger
connections
per
application
Custom Not Not Unlimited SNI Unlimited SNI Unlimited SNI Unlimited SNI
domain SSL supported, supported, SSL SSL and 1 IP SSL and 1 IP SSL and 1 IP
support wildcard wildcard connections SSL SSL SSL
certificate for certificate for connections connections connections
*.azurewebsite *.azurewebsite included included included
s.net available s.net available
by default by default
Integrated X X X X X10
load balancer
Always On X X X X
Autoscale X X X
WebJobs11 X X X X X X
Azure X X X X X
Scheduler
support
Endpoint X X X X
monitoring
RESOURCE FREE SHARED BASIC STANDARD PREMIUM (V2) ISOLATED
Staging slots 5 20 20
1Apps and storage quotas are per App Service plan unless noted otherwise.
2The actual number of apps that you can host on these machines depends on the activity of the apps, the size of
the machine instances, and the corresponding resource utilization.
3Dedicated instances can be of different sizes. For more information, see App Service pricing.
4More are allowed upon request.
5The storage limit is the total content size across all apps in the same App service plan. The total content size of all
apps across all App service plans in a single resource group and region cannot exceed 500GB.
6These resources are constrained by physical resources on the dedicated instances (the instance size and the
number of instances).
7If you scale an app in the Basic tier to two instances, you have 350 concurrent connections for each of the two
instances. For Standard tier and above, there are no theoretical limits to web sockets, but other factors can limit the
number of web sockets. For example, maximum concurrent requests allowed (defined by
maxConcurrentRequestsPerCpu ) are: 7,500 per small VM, 15,000 per medium VM (7,500 x 2 cores), and 75,000 per
large VM (18,750 x 4 cores).
8The maximum IP connections are per instance and depend on the instance size: 1,920 per B1/S1/P1V2 instance,
limit of 200.
10App Service Isolated SKUs can be internally load balanced ( ILB ) with Azure Load Balancer, so there's no public
connectivity from the internet. As a result, some features of an ILB Isolated App Service must be used from
machines that have direct access to the ILB network endpoint.
11Run custom executables and/or scripts on demand, on a schedule, or continuously as a background task within
your App Service instance. Always On is required for continuous WebJobs execution. Azure Scheduler Free or
Standard is required for scheduled WebJobs. There's no predefined limit on the number of WebJobs that can run
in an App Service instance. There are practical limits that depend on what the application code is trying to do.
Functions limits
RESOURCE CONSUMPTION PLAN PREMIUM PLAN APP SERVICE PLAN1
App Service plans 100 per region 100 per resource group 100 per resource group
Custom domain SSL support unbounded SNI SSL unbounded SNI SSL and 1 IP unbounded SNI SSL and 1 IP
connection included SSL connections included SSL connections included
1 For specific limits for the various App Service plan options, see the App Service plan limits.
2 By default, the timeout for the Functions 1.x runtime in an App Service plan is unbounded.
3 Requires the App Service plan be set to Always On. Pay at standard rates.
4 These limits are set in the host.
5 The actual number of function apps that you can host depends on the activity of the apps, the size of the machine
apps in a Premium plan or an App Service plan, you can map a custom domain using either a CNAME or an A
record.
Scheduler limits
The following table describes each of the major quotas, limits, defaults, and throttles in Azure Scheduler.
Jobs per collection By default, the maximum number of jobs is five jobs in a free
job collection and 50 jobs in a standard job collection. You can
change the maximum number of jobs on a job collection. All
jobs in a job collection are limited to the value set on the job
collection. If you attempt to create more jobs than the
maximum jobs quota, the request fails with a 409 Conflict
status code.
Body size The maximum body size for a request is 8,192 chars.
Request URL size The maximum size for a request URL is 2,048 chars.
Aggregate header size The maximum aggregate header size is 4,096 chars.
Timeout The request timeout is static, that is, not configurable. and is
60 seconds for HTTP actions. For longer running operations,
follow the HTTP asynchronous protocols. For example, return
a 202 immediately but continue working in the background.
Job history The maximum response body stored in job history is 2,048
bytes.
Job history retention Job history is kept for up to two months or up to the last
1,000 executions.
Completed and faulted job retention Completed and faulted jobs are kept for 60 days.
Batch limits
RESOURCE DEFAULT LIMIT MAXIMUM LIMIT
NOTE
Default limits vary depending on the type of subscription you use to create a Batch account. Cores quotas shown are for
Batch accounts in Batch service mode. View the quotas in your Batch account.
1
1To request an increase beyond this limit, contact Azure Support.
Scale out N/A N/A Yes, in increments Yes, in increments Yes, in increments
of 1 Basic unit of 1 Standard of 1 Premium
unit unit
Hybrid 5 5 10 50 100
connections per
unit
Number of N/A 1 2 5 25
connections that
use BizTalk
Adapter Service
per unit
RESOURCE LIMIT
The following table describes the limits on management operations performed on Azure Data Explorer clusters.
SCOPE OPERATION LIMIT
Maximum 1 16 16 8 6 6 6 6
services
Maximum N/A 3 SU 36 SU 36 SU 36 SU 36 SU 36 SU 36 SU
scale in
search
units
(SU)2
1 Free is based on shared, not dedicated, resources. Scale-up is not supported on shared resources.
Partitions N/A 1 12 12 12 3 12 12
per
service
Replicas N/A 3 12 12 12 12 12 12
1 Basic has one fixed partition. At this tier, additional search units are used for allocating more replicas for
increased query workloads.
2 S3 HD has a hard limit of three partitions, which is lower than the partition limit for S3. The lower partition limit
is imposed because the index count for S3 HD is substantially higher. Given that service limits exist for both
computing resources (storage and processing) and content (indexes and documents), the content limit is reached
first.
3 Service level agreements are offered for billable services on dedicated resources. Free services and preview
features have no SLA. For billable services, SLAs take effect when you provision sufficient redundancy for your
service. Two or more replicas are required for query (read) SLAs. Three or more replicas are required for query
and indexing (read-write) SLAs. The number of partitions isn't an SLA consideration.
To learn more about limits on a more granular level, such as document size, queries per second, keys, requests, and
responses, see Service limits in Azure Cognitive Search.
Media Services limits
NOTE
For resources that aren't fixed, open a support ticket to ask for an increase in the quotas. Don't create additional Azure
Media Services accounts in an attempt to obtain higher limits.
Policies 1,000,0006
File size In some scenarios, there's a limit on the maximum file size
supported for processing in Media Services.7
1If you change the type, for example, from S2 to S1, the maximum reserved unit limits are reset.
2This number includes queued, finished, active, and canceled jobs. It doesn't include deleted jobs. You can delete
old jobs by using IJob.Delete or the DELETE HTTP request.
As of April 1, 2017, any job record in your account older than 90 days is automatically deleted, along with its
associated task records. Automatic deletion occurs even if the total number of records is below the maximum
quota. To archive the job and task information, use the code described in Manage assets with the Media Services
.NET SDK.
3When you make a request to list job entities, a maximum of 1,000 jobs is returned per request. To keep track of all
submitted jobs, use the top or skip queries as described in OData system query options.
4Locators aren't designed for
managing per-user access control. To give different access rights to individual users,
use digital rights management (DRM ) solutions. For more information, see Protect your content with Azure Media
Services.
5The storage accounts must be from the same Azure subscription.
6There's a limit of 1,000,000
policies for different Media Services policies. An example is for the Locator policy or
ContentKeyAuthorizationPolicy.
NOTE
If you always use the same days and access permissions, use the same policy ID. For information and an example, see
Manage assets with the Media Services .NET SDK.
7The maximum size supported for a single blob is currently up to 5 TB in Azure Blob Storage. Additional limits
apply in Media Services based on the VM sizes that are used by the service. The size limit applies to the files that
you upload and also the files that get generated as a result of Media Services processing (encoding or analyzing). If
your source file is larger than 260-GB, your Job will likely fail.
The following table shows the limits on the media reserved units S1, S2, and S3. If your source file is larger than
the limits defined in the table, your encoding job fails. If you encode 4K resolution sources of long duration, you're
required to use S3 media reserved units to achieve the performance needed. If you have 4K content that's larger
than the 260-GB limit on the S3 media reserved units, open a support ticket.
S1 26
S2 60
S3 260
A Content Delivery Network subscription can contain one or more Content Delivery Network profiles. A Content
Delivery Network profile can contain one or more Content Delivery Network endpoints. You might want to use
multiple profiles to organize your Content Delivery Network endpoints by internet domain, web application, or
some other criteria.
Mobile Services limits
TIER FREE BASIC STANDARD
API calls 500,000 1.5 million per unit 15 million per unit
Push notifications Azure Notification Hubs Free Notification Hubs Basic tier Notification Hubs Standard
tier included, up to 1 million included, up to 10 million tier included, up to 10
pushes pushes million pushes
For more information on limits and pricing, see Azure Mobile Services pricing.
Azure Monitor limits
Alerts
Metric alerts (classic) 100 active alert rules per subscription. Call support.
Metric alerts 1000 active alert rules per subscription Call support.
in Azure public, Azure China 21Vianet
and Azure Government clouds.
Activity log alerts 100 active alert rules per subscription. Same as default.
Action groups
Azure app push 10 Azure app actions per action group. Call support.
LIMIT DESCRIPTION
Query language Azure Monitor uses the same Kusto query language as Azure
Data Explorer. See Azure Monitor log query language
differences for KQL language elements not supported in Azure
Monitor.
Azure regions Log queries can experience excessive overhead when data
spans Log Analytics workspaces in multiple Azure regions. See
Query limits for details.
Cross resource queries Maximum number of Application Insights resources and Log
Analytics workspaces in a single query limited to 100.
Cross-resource query is not supported in View Designer.
Cross-resource query in log alerts is supported in the new
scheduledQueryRules API.
See Cross-resource query limits for details.
Current Per GB pricing tier No limit 30 - 730 days Data retention beyond 31
(introduced April 2018) days is available for
additional charges. Learn
more about Azure Monitor
pricing.
TIER LIMIT PER DAY DATA RETENTION COMMENT
Legacy Per Node (OMS) No limit 30 to 730 days Data retention beyond 31
(introduced April 2016) days is available for
additional charges. Learn
more about Azure Monitor
pricing.
Azure portal
Maximum records returned by a log 10,000 Reduce results using query scope, time
query range, and filters in the query.
Maximum size for a single post 30 MB Split larger volumes into multiple posts.
Maximum size for field values 32 KB Fields longer than 32 KB are truncated.
Search API
CATEGORY LIMITS COMMENTS
Maximum request rate 200 requests per 30 seconds per AAD See Rate limits for details.
user or client IP address
Data export Not currently available Use Azure Function or Logic App to
aggregate and export data.
Operation
|where OperationCategory == "Ingestion"
|where Detail startswith "The rate of data crossed the threshold"
NOTE
Depending on how long you've been using Log Analytics, you might have access to legacy pricing tiers. Learn more about
Log Analytics legacy pricing tiers.
Application Insights
There are some limits on the number of metrics and events per application, that is, per instrumentation key. Limits
depend on the pricing plan that you choose.
RESOURCE DEFAULT LIMIT NOTE
Total data per day 100 GB You can reduce data by setting a cap. If
you need more data, you can increase
the limit in the portal, up to 1,000 GB.
For capacities greater than 1,000 GB,
send email to
[email protected].
Availability multi-step test detailed 90 days This resource provides detailed results
results retention of each step.
For more information, see About pricing and quotas in Application Insights.
Notification Hubs limits
TIER FREE BASIC STANDARD
For more information on limits and pricing, see Notification Hubs pricing.
Event Hubs limits
The following tables provide quotas and limits specific to Azure Event Hubs. For information about Event Hubs
pricing, see Event Hubs pricing.
The following limits are common across basic, standard, and dedicated tiers.
LIMIT SCOPE NOTES VALUE
FEATURE LIMITS
Bandwidth 20 CUs
Namespaces 50 per CU
Message Size 1 MB
Capture Included
Number of topics or queues Namespace Subsequent requests for 10,000 for the Basic or
per namespace creation of a new topic or Standard tier. The total
queue on the namespace are number of topics and
rejected. As a result, if queues in a namespace must
configured through the be less than or equal to
Azure portal, an error 10,000.
message is generated. If
called from the management For the Premium tier, 1,000
API, an exception is received per messaging unit (MU).
by the calling code. Maximum limit is 4,000.
Number of partitioned Namespace Subsequent requests for Basic and Standard tiers:
topics or queues per creation of a new partitioned 100.
namespace topic or queue on the
namespace are rejected. As a Partitioned entities aren't
result, if configured through supported in the Premium
the Azure portal, an error tier.
message is generated. If
called from the management Each partitioned queue or
API, the exception topic counts toward the
QuotaExceededException quota of 1,000 entities per
is received by the calling namespace.
code.
QUOTA NAME SCOPE NOTES VALUE
Message size for a queue, Entity Incoming messages that Maximum message size: 256
topic, or subscription entity exceed these quotas are KB for Standard tier, 1 MB
rejected, and an exception is for Premium tier.
received by the calling code.
Due to system overhead,
this limit is less than these
values.
Message property size for a Entity The exception Maximum message property
queue, topic, or subscription SerializationException is size for each property is
entity generated. 32,000. Cumulative size of
all properties can't exceed
64,000. This limit applies to
the entire header of the
BrokeredMessage, which has
both user properties and
system properties, such as
SequenceNumber, Label, and
MessageId.
Number of subscriptions per Entity Subsequent requests for 2,000 per-topic for the
topic creating additional Standard tier.
subscriptions for the topic
are rejected. As a result, if
configured through the
portal, an error message is
shown. If called from the
management API, an
exception is received by the
calling code.
QUOTA NAME SCOPE NOTES VALUE
Size of SQL filters or actions Namespace Subsequent requests for Maximum length of filter
creation of additional filters condition string: 1,024 (1 K).
are rejected, and an
exception is received by the Maximum length of rule
calling code. action string: 1,024 (1 K).
Maximum number of
expressions per rule action:
32.
The following table lists the limits that apply to IoT Hub resources.
RESOURCE LIMIT
Maximum size of device-to-cloud batch AMQP and HTTP: 256 KB for the entire batch
MQTT: 256 KB for each message
Maximum size of device twin 8 KB for tags section, and 32 KB for desired and reported
properties sections each
Maximum message routing rules 100 (for S1, S2, and S3)
Maximum number of concurrently connected device streams 50 (for S1, S2, S3, and F1 only)
Maximum device stream data transfer 300 MB per day (for S1, S2, S3, and F1 only)
NOTE
If you need more than 100 paid IoT hubs in an Azure subscription, contact Microsoft Support.
NOTE
Currently, the total number of devices plus modules that can be registered to a single IoT hub is capped at 1,000,000. If you
want to increase this limit, contact Microsoft Support.
IoT Hub throttles requests when the following quotas are exceeded.
Device connections 6,000/sec/unit (for S3), 120/sec/unit (for S2), 12/sec/unit (for
S1).
Minimum of 100/sec.
Device-to-cloud sends 6,000/sec/unit (for S3), 120/sec/unit (for S2), 12/sec/unit (for
S1).
Minimum of 100/sec.
File upload operations 83.33 file upload initiations/sec/unit (5,000/min/unit) (for S3),
1.67 file upload initiations/sec/unit (100/min/unit) (for S1 and
S2).
10,000 SAS URIs can be out for an Azure Storage account at
one time.
10 SAS URIs/device can be out at one time.
THROTTLE PER-HUB VALUE
Direct methods 24 MB/sec/unit (for S3), 480 KB/sec/unit (for S2), 160
KB/sec/unit (for S1).
Based on 8-KB throttling meter size.
Device twin reads 500/sec/unit (for S3), Maximum of 100/sec or 10/sec/unit (for
S2), 100/sec (for S1)
Device twin updates 250/sec/unit (for S3), Maximum of 50/sec or 5/sec/unit (for
S2), 50/sec (for S1)
Jobs per-device operation throughput 50/sec/unit (for S3), maximum of 10/sec or 1/sec/unit (for S2),
10/sec (for S1).
Device stream initiation rate 5 new streams/sec (for S1, S2, S3, and F1 only).
RESOURCE LIMIT
NOTE
To increase the number of enrollments and registrations on your provisioning service, contact Microsoft Support.
The Device Provisioning Service throttles requests when the following quotas are exceeded.
Operations 200/min/service
ForEach parallelism 20 50
1 The data integration unit ( DIU ) is used in a cloud-to-cloud copy operation, learn more from Data integration
units (version 2). For information on billing, see Azure Data Factory pricing.
2 Azure Integration Runtime is globally available to ensure data compliance, efficiency, and reduced network
egress costs.
REGION GROUP REGIONS
Region group 1 Central US, East US, East US2, North Europe, West Europe,
West US, West US 2
Region group 2 Australia East, Australia Southeast, Brazil South, Central India,
Japan East, Northcentral US, Southcentral US, Southeast Asia,
West Central US
Region group 3 Canada Central, East Asia, France Central, Korea Central, UK
South
3 Pipeline, data set, and linked service objects represent a logical grouping of your
workload. Limits for these
objects don't relate to the amount of data you can move and process with Azure Data Factory. Data Factory is
designed to scale to handle petabytes of data.
Version 1
RESOURCE DEFAULT LIMIT MAXIMUM LIMIT
Bytes per object for data set and linked 100 KB 2,000 KB
service objects1
Retry count for pipeline activity runs 1,000 MaxInt (32 bit)
1 Pipeline, data set, and linked service objects represent a logical grouping of your
workload. Limits for these
objects don't relate to the amount of data you can move and process with Azure Data Factory. Data Factory is
designed to scale to handle petabytes of data.
2 On-demand HDInsight cores are allocated out of the subscription that contains the data factory. As a result, the
previous limit is the Data Factory-enforced core limit for on-demand HDInsight cores. It's different from the core
limit that's associated with your Azure subscription.
3 The cloud data movement unit ( DMU ) forversion 1 is used in a cloud-to-cloud copy operation, learn more from
Cloud data movement units (version 1). For information on billing, see Azure Data Factory pricing.
Maximum number of Data Lake Storage 10 To request an increase for this limit,
Gen1 accounts, per subscription, per contact support.
region
Maximum number of access ACLs, per 32 This is a hard limit. Use groups to
file or folder manage access with fewer entries.
Maximum number of default ACLs, per 32 This is a hard limit. Use groups to
file or folder manage access with fewer entries.
Maximum number of inputs per job 60 There's a hard limit of 60 inputs per
Azure Stream Analytics job.
Maximum number of outputs per job 60 There's a hard limit of 60 outputs per
Stream Analytics job.
Maximum number of functions per job 60 There's a hard limit of 60 functions per
Stream Analytics job.
Maximum number of streaming units 192 There's a hard limit of 192 streaming
per job units per Stream Analytics job.
Maximum number of jobs per region 1,500 Each subscription can have up to 1,500
jobs per geographical region.
CATEGORY LIMITS
Domains You can add no more than 900 managed domain names. If
you set up all of your domains for federation with on-
premises Active Directory, you can add no more than 450
domain names in each directory.
CATEGORY LIMITS
RESOURCE LIMIT
Publish rate for a custom topic (ingress) 5,000 events per second per topic
RESOURCE LIMIT
Publish rate for an event domain (ingress) 5,000 events per second
The following table shows the data size limit for Azure Maps. The Azure Maps data service is available only at the
S1 pricing tier.
RESOURCE LIMIT
For more information on the Azure Maps pricing tiers, see Azure Maps pricing.
Azure Policy limits
There's a maximum count for each object type for Azure Policy. An entry of Scope means either the subscription or
the management group.
Maximum number of schedules per 168 A schedule for every hour, every day of
bandwidth template the week.
Maximum size of a tiered volume on 64 TB for StorSimple 8100 and StorSimple 8100 and StorSimple 8600
physical devices StorSimple 8600 are physical devices.
Maximum size of a tiered volume on 30 TB for StorSimple 8010 StorSimple 8010 and StorSimple 8020
virtual devices in Azure 64 TB for StorSimple 8020 are virtual devices in Azure that use
Standard storage and Premium storage,
respectively.
Maximum size of a locally pinned 9 TB for StorSimple 8100 StorSimple 8100 and StorSimple 8600
volume on physical devices 24 TB for StorSimple 8600 are physical devices.
Maximum number of snapshots of any 256 This amount includes local snapshots
type that can be retained per volume and cloud snapshots.
Restore and clone recover time for <2 minutes The volume is made available
tiered volumes within 2 minutes of a restore or
clone operation, regardless of
the volume size.
The volume performance might
initially be slower than normal as
most of the data and metadata
still resides in the cloud.
Performance might increase as
data flows from the cloud to the
StorSimple device.
The total time to download
metadata depends on the
allocated volume size. Metadata
is automatically brought into the
device in the background at the
rate of 5 minutes per TB of
allocated volume data. This rate
might be affected by Internet
bandwidth to the cloud.
The restore or clone operation is
complete when all the metadata
is on the device.
Backup operations can't be
performed until the restore or
clone operation is fully complete.
LIMIT IDENTIFIER LIMIT COMMENTS
Restore recover time for locally pinned <2 minutes The volume is made available
volumes within 2 minutes of the restore
operation, regardless of the
volume size.
The volume performance might
initially be slower than normal as
most of the data and metadata
still resides in the cloud.
Performance might increase as
data flows from the cloud to the
StorSimple device.
The total time to download
metadata depends on the
allocated volume size. Metadata
is automatically brought into the
device in the background at the
rate of 5 minutes per TB of
allocated volume data. This rate
might be affected by Internet
bandwidth to the cloud.
Unlike tiered volumes, if there
are locally pinned volumes, the
volume data is also downloaded
locally on the device. The restore
operation is complete when all
the volume data has been
brought to the device.
The restore operations might be
long and the total time to
complete the restore will depend
on the size of the provisioned
local volume, your Internet
bandwidth, and the existing data
on the device. Backup
operations on the locally pinned
volume are allowed while the
restore operation is in progress.
Maximum client read/write throughput, 920/720 MB/sec with a single 10- Up to two times with MPIO and two
when served from the SSD tier* gigabit Ethernet network interface network interfaces.
Maximum client read/write throughput, 11/41 MB/sec Read throughput depends on clients
when served from the cloud tier* generating and maintaining sufficient
I/O queue depth.
*Maximum throughput per I/O type was measured with 100 percent read and 100 percent write scenarios. Actual
throughput might be lower and depends on I/O mix and network conditions.
Backup limits
For a summary of Azure Backup support settings and limitations, see Azure Backup Support Matrices.
Azure SignalR Service limits
RESOURCE DEFAULT LIMIT MAXIMUM LIMIT
1Scaling limits depend on the pricing tier. To see the pricing tiers and their scaling limits, see API Management
pricing.
2Per unit cache size depends on the pricing tier. To see the pricing tiers and their scaling limits, see API
Management pricing.
3Connections are pooled and reused unless explicitly closed by the back end.
4This limit is per unit of the Basic, Standard, and Premium tiers. The Developer tier is limited to 1,024. This limit
limited to 4 KiB.
6This resource is available in the Premium tier only.
7This resource applies to the Consumption tier only.
8Applies to the Consumption tier only. Includes an up to 2048 bytes long query string.
Databases 64
NOTE
In the previous table, we see that for RSA 2,048-bit software keys, 2,000 GET transactions per 10 seconds are allowed. For
RSA 2,048-bit HSM-keys, 1,000 GET transactions per 10 seconds are allowed.
The throttling thresholds are weighted, and enforcement is on their sum. For example, as shown in the previous table, when
you perform GET operations on RSA HSM-keys, it's eight times more expensive to use 4,096-bit keys compared to 2,048-bit
keys. That's because 1,000/125 = 8.
In a given 10-second interval, an Azure Key Vault client can do only one of the following operations before it encounters a
429 throttling HTTP status code:
For information on how to handle throttling when these limits are exceeded, see Azure Key Vault throttling
guidance.
1A subscription-wide limit for all transaction types is five times per key vault limit. For example, HSM -other
transactions per subscription are limited to 5,000 transactions in 10 seconds per subscription.
Multi-Factor Authentication limits
RESOURCE DEFAULT LIMIT MAXIMUM LIMIT
Automation limits
Process automation
Maximum number of new jobs that can 100 When this limit is reached, the
be submitted every 30 seconds per subsequent requests to create a job fail.
Azure Automation account The client receives an error response.
(nonscheduled jobs)
Maximum storage size of job metadata 10 GB (approximately 4 million jobs) When this limit is reached, the
for a 30-day rolling period subsequent requests to create a job fail.
Maximum job stream limit 1MB A single stream cannot be larger than 1
MB.
Job run time, Free tier 500 minutes per subscription per
calendar month
RESOURCE MAXIMUM LIMIT NOTES
1A sandbox is a shared environment that can be used by multiple jobs. Jobs that use the same sandbox are bound
by the resource limitations of the sandbox.
Change Tracking and Inventory
The following table shows the tracked item limits per machine for change tracking.
File 500
Registry 250
Services 250
RESOURCE LIMIT NOTES
Daemon 250
Update Management
The following table shows the limits for Update Management.
See also
Understand Azure limits and increases
Virtual machine and cloud service sizes for Azure
Sizes for Azure Cloud Services
Naming rules and restrictions for Azure resources
1/16/2020 • 19 minutes to read • Edit Online
This article summarizes naming rules and restrictions for Azure resources. For recommendations about how to
name resources, see Ready: Recommended naming and tagging conventions.
Resource names are case-insensitive unless specifically noted in the valid characters column.
In the following tables, the term alphanumeric refers to:
a through z (lowercase letters)
A through Z (uppercase letters)
0 through 9 (numbers)
Microsoft.AnalysisServices
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.ApiManagement
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.AppConfiguration
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Authorization
ENTITY SCOPE LENGTH VALID CHARACTERS
policyassignments scope of assignment 1-128 display name Display name can contain
any characters.
1-260 resource name
Resource name can't include
% and can't end with period
or space.
policydefinitions scope of definition 1-128 display name Display name can contain
any characters.
1-260 resource name
Resource name can't include
% and can't end with period
or space.
policySetDefinitions scope of definition 1-128 display name Display name can contain
any characters.
1-260 resource name
Resource name can't include
% and can't end with period
or space.
Microsoft.Automation
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Batch
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Blockchain
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.BotService
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Cache
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Cdn
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.CertificateRegistration
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.CognitiveServices
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Compute
ENTITY SCOPE LENGTH VALID CHARACTERS
NOTE
Azure virtual machines have two distinct names: resource name and host name. When you create a virtual machine in the
portal, the same value is used for both names. The restrictions in the preceding table are for the host name. The actual
resource name can have up to 64 characters.
Microsoft.ContainerInstance
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.ContainerRegistry
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.ContainerService
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.CustomerInsights
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.CustomProviders
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.DataBox
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Databricks
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.DataFactory
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.DataLakeStore
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.DataMigration
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.DBforMariaDB
ENTITY SCOPE LENGTH VALID CHARACTERS
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.DBforMySQL
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.DBforPostgreSQL
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Devices
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.DevTestLab
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.DocumentDB
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.EventGrid
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.EventHub
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.HDInsight
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.ImportExport
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.IoTCentral
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.KeyVault
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Kusto
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Logic
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.MachineLearning
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.MachineLearningServices
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.ManagedIdentity
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Maps
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Media
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Network
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.NotificationHubs
ENTITY SCOPE LENGTH VALID CHARACTERS
Start alphanumeric.
Start alphanumeric.
Microsoft.OperationalInsights
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.PowerBI
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.PowerBIDedicated
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.RecoveryServices
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Relay
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Resources
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.ServiceBus
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.ServiceFabric
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.SignalRService
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Sql
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Storage
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.StorageSync
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.StorSimple
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.StreamAnalytics
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.TimeSeriesInsights
ENTITY SCOPE LENGTH VALID CHARACTERS
Microsoft.Web
ENTITY SCOPE LENGTH VALID CHARACTERS
Next steps
For recommendations about how to name resources, see Ready: Recommended naming and tagging conventions.
Azure Resource Manager vs. classic deployment:
Understand deployment models and the state of your
resources
1/17/2020 • 10 minutes to read • Edit Online
NOTE
The information provided in this article is only used when you migrate from the classic deployment to the Azure Resource
Manager deployment.
In this article, you learn about Azure Resource Manager and classic deployment models. The Resource Manager
and classic deployment models represent two different ways of deploying and managing your Azure solutions. You
work with them through two different API sets, and the deployed resources can contain important differences. The
two models aren't compatible with each other. This article describes those differences.
To simplify the deployment and management of resources, Microsoft recommends that you use Resource Manager
for all new resources. If possible, Microsoft recommends that you redeploy existing resources through Resource
Manager.
If you're new to Resource Manager, you may want to first review the terminology defined in the Azure Resource
Manager overview.
Name : ExampleClassicVM
ResourceId :
/subscriptions/{guid}/resourceGroups/ExampleGroup/providers/Microsoft.ClassicCompute/virtualMachines/ExampleCla
ssicVM
ResourceName : ExampleClassicVM
ResourceType : Microsoft.ClassicCompute/virtualMachines
ResourceGroupName : ExampleGroup
Location : westus
SubscriptionId : {guid}
However, the Resource Manager cmdlet Get-AzVM only returns virtual machines deployed through Resource
Manager. The following command doesn't return the virtual machine created through classic deployment.
Only resources created through Resource Manager support tags. You can't apply tags to classic resources.
Cloud Service for Virtual Machines Cloud Service was a container for Cloud Service is no longer an object
holding the virtual machines that required for creating a Virtual Machine
required Availability from the platform using the new model.
and Load Balancing.
Virtual Networks A virtual network is optional for the Virtual machine requires a virtual
virtual machine. If included, the virtual network that has been deployed with
network can't be deployed with Resource Manager.
Resource Manager.
Storage Accounts The virtual machine requires a storage The virtual machine requires a storage
account that stores the virtual hard account to store its disks in blob
disks for the operating system, storage.
temporary, and additional data disks.
ITEM CLASSIC RESOURCE MANAGER
Availability Sets Availability to the platform was Availability Set is a resource exposed by
indicated by configuring the same Microsoft.Compute Provider. Virtual
“AvailabilitySetName” on the Virtual Machines that require high availability
Machines. The maximum count of fault must be included in the Availability Set.
domains was 2. The maximum count of fault domains is
now 3.
Affinity Groups Affinity Groups were required for To simplify, the Affinity Groups concept
creating Virtual Networks. However, doesn’t exist in the APIs exposed
with the introduction of Regional Virtual through Azure Resource Manager.
Networks, that wasn't required
anymore.
Load Balancing Creation of a Cloud Service provides an The Load Balancer is a resource exposed
implicit load balancer for the Virtual by the Microsoft.Network provider. The
Machines deployed. primary network interface of the Virtual
Machines that needs to be load
balanced should be referencing the load
balancer. Load Balancers can be internal
or external. A load balancer instance
references the backend pool of IP
addresses that include the NIC of a
virtual machine (optional) and
references a load balancer public or
private IP address (optional).
Virtual IP Address Cloud Services gets a default VIP Public IP address is a resource exposed
(Virtual IP Address) when a VM is added by the Microsoft.Network provider.
to a cloud service. The Virtual IP Public IP address can be static
Address is the address associated with (reserved) or dynamic. Dynamic public
the implicit load balancer. IPs can be assigned to a Load Balancer.
Public IPs can be secured using Security
Groups.
Reserved IP Address You can reserve an IP Address in Azure Public IP Address can be created in
and associate it with a Cloud Service to static mode and it offers the same
ensure that the IP Address is sticky. capability as a reserved IP address.
Public IP Address (PIP) per VM Public IP Addresses can also be Public IP address is a resource exposed
associated to a VM directly. by the Microsoft.Network provider.
Public IP Address can be static
(reserved) or dynamic.
DNS Name A cloud service would get an implicit DNS Names are optional parameters
globally unique DNS Name. For that can be specified on a Public IP
example: mycoffeeshop.cloudapp.net Address resource. The FQDN is in the
. following format -
<domainlabel>.
<region>.cloudapp.azure.com
.
ITEM CLASSIC RESOURCE MANAGER
Network Interfaces Primary and Secondary Network Network Interface is a resource exposed
Interface and its properties were by Microsoft.Network Provider. The
defined as network configuration of a lifecycle of the Network Interface isn't
Virtual machine. tied to a Virtual Machine. It references
the virtual machine's assigned IP
address (required), the subnet of the
virtual network for the virtual machine
(required), and to a Network Security
Group (optional).
To learn about connecting virtual networks from different deployment models, see Connect virtual networks from
different deployment models in the portal.
Next steps
To see the commands for deploying a template, see Deploy an application with Azure Resource Manager
template.
Security controls for Azure Resource Manager
12/23/2019 • 2 minutes to read • Edit Online
This article documents the security controls built into Azure Resource Manager.
A security control is a quality or feature of an Azure service that contributes to the service's ability to prevent,
detect, and respond to security vulnerabilities.
For each control, we use "Yes" or "No" to indicate whether it is currently in place for the service, "N/A" for a control
that is not applicable to the service. We might also provide a note or links to more information about an attribute.
Data protection
SECURITY CONTROL YES/NO NOTES
Network
SECURITY CONTROL YES/NO NOTES
Control and management plane logging Yes Activity logs expose all write operations
and audit (PUT, POST, DELETE) performed on your
resources; see View activity logs to audit
actions on resources.
Identity
SECURITY CONTROL YES/NO NOTES
Authorization Yes
Configuration management
SECURITY CONTROL YES/NO NOTES
Next steps
Learn more about the built-in security controls across Azure services.
Resource providers for Azure services
1/2/2020 • 2 minutes to read • Edit Online
This article shows how resource provider namespaces map to Azure services.
Microsoft.Addons core
Microsoft.AppConfiguration core
Microsoft.Automation Automation
Microsoft.AzureStack core
Microsoft.Batch Batch
Microsoft.Billing Billing
Microsoft.Capacity core
Microsoft.Commerce core
Microsoft.HDInsight HDInsight
Microsoft.HybridData StorSimple
Microsoft.Marketplace core
Microsoft.MarketplaceApps core
Microsoft.MarketplaceOrdering core
Microsoft.PowerBI Power BI
Microsoft.ResourceHealth core
Microsoft.SaaS core
Microsoft.Scheduler Scheduler
Microsoft.Storage Storage
Microsoft.StorageSync Storage
Microsoft.StorSimple StorSimple
Microsoft.Subscription core
microsoft.support core
Next steps
For more information about resource providers, see Azure resource providers and types
Resources not limited to 800 instances per resource
group
1/3/2020 • 2 minutes to read • Edit Online
By default, you can deploy up to 800 instances of a resource type in each resource group. However, some resource
types are exempt from the 800 instance limit. This article lists the Azure resource types that can have more than
800 instances in a resource group. All other resources types are limited to 800 instances.
For some resource types, you need to contact support to have the 800 instance limit removed. Those resource
types are noted in this article.
Microsoft.Automation
automationAccounts
Microsoft.AzureStack
registrations
registrations/customerSubscriptions
registrations/products
Microsoft.BotService
botServices - By default, limited to 800 instances. That limit can be increased by contacting support.
Microsoft.Compute
disks
images
snapshots
virtualMachines
Microsoft.ContainerInstance
containerGroups
Microsoft.ContainerRegistry
registries/buildTasks
registries/buildTasks/listSourceRepositoryProperties
registries/buildTasks/steps
registries/buildTasks/steps/listBuildArguments
registries/eventGridFilters
registries/replications
registries/tasks
registries/webhooks
Microsoft.DBforMariaDB
servers
Microsoft.DBforMySQL
servers
Microsoft.DBforPostgreSQL
serverGroups
servers
serversv2
Microsoft.EnterpriseKnowledgeGraph
services
Microsoft.EventHub
clusters
namespaces
Microsoft.Experimentation
experimentWorkspaces
Microsoft.GuestConfiguration
configurationProfileAssignments
guestConfigurationAssignments
software
softwareUpdateProfile
softwareUpdates
Microsoft.Logic
integrationAccounts
workflows
Microsoft.NetApp
netAppAccounts
netAppAccounts/capacityPools
netAppAccounts/capacityPools/volumes
netAppAccounts/capacityPools/volumes/mountTargets
netAppAccounts/capacityPools/volumes/snapshots
Microsoft.Network
applicationGatewayWebApplicationFirewallPolicies
applicationSecurityGroups
bastionHosts
ddosProtectionPlans
dnszones
dnszones/A
dnszones/AAAA
dnszones/CAA
dnszones/CNAME
dnszones/MX
dnszones/NS
dnszones/PTR
dnszones/SOA
dnszones/SRV
dnszones/TXT
dnszones/all
dnszones/recordsets
networkIntentPolicies
networkInterfaces
privateDnsZones
privateDnsZones/A
privateDnsZones/AAAA
privateDnsZones/CNAME
privateDnsZones/MX
privateDnsZones/PTR
privateDnsZones/SOA
privateDnsZones/SRV
privateDnsZones/TXT
privateDnsZones/all
privateDnsZones/virtualNetworkLinks
privateEndpoints
privateLinkServices
publicIPAddresses - By default, limited to 800 instances. That limit can be increased by contacting support.
serviceEndpointPolicies
trafficmanagerprofiles
virtualNetworkTaps
Microsoft.PortalSdk
rootResources
Microsoft.PowerBI
workspaceCollections - By default, limited to 800 instances. That limit can be increased by contacting support.
Microsoft.Relay
namespaces
Microsoft.Scheduler
jobcollections
Microsoft.ServiceBus
namespaces
Microsoft.ServiceFabricMesh
applications
containerGroups
gateways
networks
secrets
volumes
Microsoft.Storage
storageAccounts
Microsoft.Web
apiManagementAccounts/apis
sites
Next steps
For a complete list of quotas and limits, see Azure subscription and service limits, quotas, and constraints.
Move resources to a new resource group or
subscription
1/10/2020 • 9 minutes to read • Edit Online
This article shows you how to move Azure resources to either another Azure subscription or another resource
group under the same subscription. You can use the Azure portal, Azure PowerShell, Azure CLI, or the REST API
to move resources.
Both the source group and the target group are locked during the move operation. Write and delete operations
are blocked on the resource groups until the move completes. This lock means you can't add, update, or delete
resources in the resource groups. It doesn't mean the resources are frozen. For example, if you move a SQL
Server and its database to a new resource group, an application that uses the database experiences no downtime.
It can still read and write to the database. The lock can last for a maximum of four hours, but most moves
complete in much less time.
Moving a resource only moves it to a new resource group or subscription. It doesn't change the location of the
resource.
If the tenant IDs for the source and destination subscriptions aren't the same, use the following methods to
reconcile the tenant IDs:
Transfer ownership of an Azure subscription to another account
How to associate or add an Azure subscription to Azure Active Directory
5. The destination subscription must be registered for the resource provider of the resource being moved. If
not, you receive an error stating that the subscription is not registered for a resource type. You might
see this error when moving a resource to a new subscription, but that subscription has never been used
with that resource type.
For PowerShell, use the following commands to get the registration status:
For Azure CLI, use the following commands to get the registration status:
6. The account moving the resources must have at least the following permissions:
Microsoft.Resources/subscriptions/resourceGroups/moveResources/action on the source
resource group.
Microsoft.Resources/subscriptions/resourceGroups/write on the destination resource group.
7. Before moving the resources, check the subscription quotas for the subscription you're moving the
resources to. If moving the resources means the subscription will exceed its limits, you need to review
whether you can request an increase in the quota. For a list of limits and how to request an increase, see
Azure subscription and service limits, quotas, and constraints.
8. For a move across subscriptions, the resource and its dependent resources must be located in the
same resource group and they must be moved together. For example, a VM with managed disks
would require the VM and the managed disks to be moved together, along with other dependent
resources.
If you're moving a resource to a new subscription, check to see whether the resource has any dependent
resources, and whether they're located in the same resource group. If the resources aren't in the same
resource group, check to see whether the resources can be consolidated into the same resource group. If
so, bring all these resources into the same resource group by using a move operation across resource
groups.
For more information, see Scenario for move across subscriptions.
Validate move
The validate move operation lets you test your move scenario without actually moving the resources. Use this
operation to check if the move will succeed. Validation is automatically called when you send a move request. Use
this operation only when you need to predetermine the results. To run this operation, you need the:
name of the source resource group
resource ID of the target resource group
resource ID of each resource to move
the access token for your account
Send the following request:
POST https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<source-
group>/validateMoveResources?api-version=2019-05-10
Authorization: Bearer <access-token>
Content-type: application/json
The 202 status code indicates the validation request was accepted, but it hasn't yet determined if the move
operation will succeed. The location value contains a URL that you use to check the status of the long-running
operation.
To check the status, send the following request:
GET <location-url>
Authorization: Bearer <access-token>
While the operation is still running, you continue to receive the 202 status code. Wait the number of seconds
indicated in the retry-after value before trying again. If the move operation validates successfully, you receive
the 204 status code. If the move validation fails, you receive an error message, such as:
{"error":{"code":"ResourceMoveProviderValidationFailed","message":"<message>"...}}
Select whether you're moving the resources to a new resource group or a new subscription.
Select the resources to move and the destination resource group. Acknowledge that you need to update scripts
for these resources and select OK. If you selected the edit subscription icon in the previous step, you must also
select the destination subscription.
In Notifications, you see that the move operation is running.
If you get an error, see Troubleshoot moving Azure resources to new resource group or subscription.
Use Azure PowerShell
To move existing resources to another resource group or subscription, use the Move-AzResource command. The
following example shows how to move several resources to a new resource group.
POST https://management.azure.com/subscriptions/{source-subscription-id}/resourcegroups/{source-resource-
group-name}/moveResources?api-version={api-version}
In the request body, you specify the target resource group and the resources to move.
{
"resources": ["<resource-id-1>", "<resource-id-2>"],
"targetResourceGroup": "/subscriptions/<subscription-id>/resourceGroups/<target-group>"
}
If you get an error, see Troubleshoot moving Azure resources to new resource group or subscription.
Next steps
For a list of which resources support move, see Move operation support for resources.
Move operation support for resources
1/17/2020 • 15 minutes to read • Edit Online
This article lists whether an Azure resource type supports the move operation. It also provides information about
special conditions to consider when moving a resource.
Jump to a resource provider namespace:
Microsoft.AAD
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
domainservices No No
microsoft.aadiam
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
tenants No No
Microsoft.Advisor
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
configurations No No
recommendations No No
suppressions No No
Microsoft.AlertsManagement
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
alerts No No
alertssummary No No
Microsoft.AnalysisServices
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.ApiManagement
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.AppConfiguration
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.AppPlatform
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.AppService
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
apiapps No No
appidentities No No
gateways No No
IMPORTANT
See App Service move guidance.
Microsoft.Authorization
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
checkaccess No No
denyassignments No No
findorphanroleassignments No No
locks No No
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
permissions No No
policyassignments No No
policydefinitions No No
policysetdefinitions No No
roleassignments No No
roleassignmentsusagemetrics No No
roledefinitions No No
Microsoft.Automation
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
IMPORTANT
Runbooks must exist in the same resource group as the Automation Account.
Microsoft.AzureActiveDirectory
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.AzureData
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
hybriddatamanagers No No
postgresinstances No No
sqlbigdataclusters No No
sqlinstances No No
Microsoft.Batch
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.BatchAI
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
clusters No No
fileservers No No
jobs No No
workspaces No No
Microsoft.Billing
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
billingperiods No No
billingpermissions No No
billingroleassignments No No
billingroledefinitions No No
createbillingroleassignment No No
Microsoft.BingMaps
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
mapapis No No
Microsoft.BizTalkServices
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
biztalk No No
Microsoft.Blockchain
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
blockchainmembers No No
watchers No No
Microsoft.Blueprint
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
blueprintassignments No No
blueprints No No
Microsoft.BotService
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.Cache
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
IMPORTANT
If the Azure Cache for Redis instance is configured with a virtual network, the instance can't be moved to a different
subscription. See Networking move limitations.
Microsoft.Cdn
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.CertificateRegistration
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.ClassicCompute
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
domainnames Yes No
virtualmachines Yes No
IMPORTANT
See Classic deployment move guidance. Classic deployment resources can be moved across subscriptions with an operation
specific to that scenario.
Microsoft.ClassicNetwork
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
networksecuritygroups No No
reservedips No No
virtualnetworks No No
IMPORTANT
See Classic deployment move guidance. Classic deployment resources can be moved across subscriptions with an operation
specific to that scenario.
Microsoft.ClassicStorage
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
storageaccounts Yes No
IMPORTANT
See Classic deployment move guidance. Classic deployment resources can be moved across subscriptions with an operation
specific to that scenario.
Microsoft.CognitiveServices
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
diskencryptionsets No No
galleries No No
galleries / images No No
hostgroups No No
hostgroups / hosts No No
proximityplacementgroups No No
restorepointcollections No No
sharedvmimages No No
sharedvmimages / versions No No
IMPORTANT
See Virtual Machines move guidance.
Microsoft.Consumption
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
aggregatedcost No No
balances No No
budgets No No
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
charges No No
costtags No No
credits No No
events No No
forecasts No No
lots No No
marketplaces No No
operationresults No No
operationstatus No No
pricesheets No No
products No No
reservationdetails No No
reservationrecommendations No No
reservationsummaries No No
reservationtransactions No No
tags No No
tenants No No
terms No No
usagedetails No No
Microsoft.Container
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
containergroups No No
Microsoft.ContainerInstance
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
containergroups No No
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
serviceassociationlinks No No
Microsoft.ContainerRegistry
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.ContainerService
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
containerservices No No
managedclusters No No
openshiftmanagedclusters No No
Microsoft.ContentModerator
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
applications No No
Microsoft.CortanaAnalytics
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
accounts No No
Microsoft.CostManagement
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
alerts No No
budgets No No
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
dimensions No No
exports No No
externalsubscriptions No No
forecast No No
query No No
reportconfigs No No
reports No No
showbackrules No No
views No No
Microsoft.CustomerInsights
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
hubs No No
Microsoft.CustomProviders
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
associations No No
Microsoft.DataBox
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
jobs No No
Microsoft.DataBoxEdge
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
databoxedgedevices No No
Microsoft.Databricks
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
workspaces No No
Microsoft.DataCatalog
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
datacatalogs No No
Microsoft.DataConnect
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
connectionmanagers No No
Microsoft.DataExchange
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
packages No No
plans No No
Microsoft.DataFactory
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.DataLake
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
datalakeaccounts No No
Microsoft.DataLakeAnalytics
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.DataLakeStore
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.DataMigration
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
services No No
services / projects No No
slots No No
Microsoft.DataProtection
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
backupvaults No No
Microsoft.DataShare
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.DBforMariaDB
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.DBforMySQL
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.DBforPostgreSQL
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
servergroups No No
Microsoft.DeploymentManager
Microsoft.DeploymentManager
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.Devices
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
elasticpools No No
elasticpools / iothubtenants No No
Microsoft.DevOps
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.DevSpaces
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.DevTestLab
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
labcenters No No
labs Yes No
Microsoft.DocumentDB
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.DomainRegistration
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.EnterpriseKnowledgeGraph
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.EventGrid
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
extensiontopics No No
Microsoft.EventHub
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.Genomics
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
accounts No No
Microsoft.GuestConfiguration
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
guestconfigurationassignments No No
software No No
softwareupdateprofile No No
softwareupdates No No
Microsoft.HanaOnAzure
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
hanainstances No No
Microsoft.HDInsight
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
IMPORTANT
You can move HDInsight clusters to a new subscription or resource group. However, you can't move across subscriptions the
networking resources linked to the HDInsight cluster (such as the virtual network, NIC, or load balancer). In addition, you
can't move to a new resource group a NIC that is attached to a virtual machine for the cluster.
When moving an HDInsight cluster to a new subscription, first move other resources (like the storage account). Then, move
the HDInsight cluster by itself.
Microsoft.HealthcareApis
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.HybridCompute
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
machines / extensions No No
Microsoft.HybridData
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.ImportExport
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
microsoft.insights
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
activitylogalerts No No
automatedexportsettings No No
baseline No No
calculatebaseline No No
diagnosticsettings No No
diagnosticsettingscategories No No
eventtypes No No
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
extendeddiagnosticsettings No No
logdefinitions No No
logs No No
metricalerts No No
metricbaselines No No
metricdefinitions No No
metricnamespaces No No
metrics No No
myworkbooks No No
topology No No
transactions No No
vminsightsonboardingstatuses No No
IMPORTANT
Make sure moving to new subscription doesn't exceed subscription quotas.
Microsoft.IoTCentral
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.IoTSpaces
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.KeyVault
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
IMPORTANT
Key Vaults used for disk encryption can't be moved to a resource group in the same subscription or across subscriptions.
Microsoft.Kubernetes
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
connectedclusters No No
Microsoft.Kusto
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.LabServices
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
labaccounts No No
Microsoft.LocationBasedServices
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
accounts No No
Microsoft.LocationServices
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
accounts No No
Microsoft.Logic
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
hostingenvironments No No
integrationserviceenvironments Yes No
integrationserviceenvironments / Yes No
managedapis
isolatedenvironments No No
Microsoft.MachineLearning
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
webservices Yes No
Microsoft.MachineLearningCompute
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
operationalizationclusters No No
Microsoft.MachineLearningExperimentation
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
accounts No No
accounts / workspaces No No
teamaccounts No No
teamaccounts / workspaces No No
Microsoft.MachineLearningModelManagement
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
accounts No No
Microsoft.MachineLearningOperationalization
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
hostingaccounts No No
Microsoft.MachineLearningServices
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
workspaces No No
Microsoft.ManagedIdentity
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
identities No No
userassignedidentities No No
Microsoft.ManagedServices
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
registrationassignments No No
registrationdefinitions No No
Microsoft.Maps
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.MarketplaceApps
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
classicdevservices No No
Microsoft.Media
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.Microservices4Spring
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
appclusters No No
Microsoft.Migrate
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
projects No No
Microsoft.NetApp
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
netappaccounts No No
netappaccounts / backuppolicies No No
netappaccounts / capacitypools No No
netappaccounts / capacitypools / No No
volumes
netappaccounts / capacitypools / No No
volumes / mounttargets
netappaccounts / capacitypools / No No
volumes / snapshots
Microsoft.Network
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
applicationgateways No No
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
applicationgatewaywebapplicationfirewa No No
llpolicies
bastionhosts No No
ddosprotectionplans No No
expressroutecircuits No No
expressroutegateways No No
frontdoors No No
frontdoorwebapplicationfirewallpolicies No No
networkprofiles No No
p2svpngateways No No
privateendpointredirectmaps No No
privateendpoints No No
privatelinkservices No No
routefilters No No
virtualhubs No No
virtualnetworktaps No No
virtualwans No No
vpnserverconfigurations No No
IMPORTANT
See Networking move guidance.
Microsoft.NotificationHubs
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.ObjectStore
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.OperationalInsights
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
storageinsightconfigs No No
IMPORTANT
Make sure moving to new subscription doesn't exceed subscription quotas.
Microsoft.OperationsManagement
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
managementassociations No No
Microsoft.Peering
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
peeringservices No No
Microsoft.PolicyInsights
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
policyevents No No
policystates No No
policytrackedresources No No
remediations No No
Microsoft.Portal
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.PortalSdk
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
rootresources No No
Microsoft.PowerBI
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.PowerBIDedicated
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.ProjectBabylon
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
accounts No No
Microsoft.ProjectOxford
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
accounts No No
Microsoft.ProviderHub
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
rollouts No No
Microsoft.RecoveryServices
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
backupprotecteditems No No
replicationeligibilityresults No No
IMPORTANT
See Recovery Services move guidance.
Microsoft.Relay
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.ResourceGraph
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.ResourceHealth
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
availabilitystatuses No No
childavailabilitystatuses No No
childresources No No
events No No
notifications No No
Microsoft.Resources
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
deploymentscripts No No
links No No
tags No No
Microsoft.SaaS
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
applications Yes No
Microsoft.Scheduler
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.Search
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
IMPORTANT
You can't move several Search resources in different regions in one operation. Instead, move them in separate operations.
Microsoft.Security
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
adaptivenetworkhardenings No No
advancedthreatprotectionsettings No No
assessmentmetadata No No
assessments No No
complianceresults No No
compliances No No
datacollectionagents No No
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
datacollectionresults No No
devicesecuritygroups No No
informationprotectionpolicies No No
servervulnerabilityassessments No No
Microsoft.SecurityInsights
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
aggregations No No
alertrules No No
alertruletemplates No No
bookmarks No No
cases No No
dataconnectors No No
entities No No
entityqueries No No
officeconsents No No
settings No No
Microsoft.ServerManagement
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
gateways No No
nodes No No
Microsoft.ServiceBus
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
applications No No
clusters / applications No No
containergroups No No
containergroupsets No No
edgeclusters No No
networks No No
secretstores No No
volumes No No
Microsoft.ServiceFabricMesh
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.Services
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
rollouts No No
Microsoft.SignalRService
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.SoftwarePlan
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
hybridusebenefits No No
Microsoft.Solutions
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
applicationdefinitions No No
applications No No
jitrequests No No
Microsoft.Sql
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
instancepools No No
managedinstances No No
managedinstances / databases No No
IMPORTANT
A database and server must be in the same resource group. When you move a SQL server, all its databases are also moved.
This behavior applies to Azure SQL Database and Azure SQL Data Warehouse databases.
Microsoft.SqlVirtualMachine
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.SqlVM
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
dwvm No No
Microsoft.Storage
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.StorageSync
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.StorageSyncDev
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
storagesyncservices No No
Microsoft.StorageSyncInt
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
storagesyncservices No No
Microsoft.StorSimple
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
managers No No
Microsoft.StreamAnalytics
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
IMPORTANT
Stream Analytics jobs can't be moved when in running state.
Microsoft.StreamAnalyticsExplorer
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
environments No No
environments / eventsources No No
instances No No
instances / environments No No
Microsoft.Subscription
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
createsubscription No No
microsoft.support
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
createsupportticket No No
supporttickets No No
Microsoft.TerraformOSS
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
providerregistrations No No
resources No No
Microsoft.TimeSeriesInsights
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.Token
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
dedicatedcloudnodes No No
dedicatedcloudservices No No
virtualmachines No No
Microsoft.VSOnline
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
Microsoft.Web
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
certificates No Yes
hostingenvironments No No
staticsites No No
IMPORTANT
See App Service move guidance.
Microsoft.WindowsIoT
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
deviceservices No No
Microsoft.WorkloadMonitor
RESOURCE TYPE RESOURCE GROUP SUBSCRIPTION
components No No
monitorinstances No No
monitors No No
notificationsettings No No
Third-party services
Third-party services currently don't support the move operation.
Next steps
For commands to move resources, see Move resources to new resource group or subscription.
To get the same data as a file of comma-separated values, download move-support-resources.csv.
Troubleshoot moving Azure resources to new
resource group or subscription
1/10/2020 • 2 minutes to read • Edit Online
This article provides suggestions to help resolve problems when moving resources.
Upgrade a subscription
If you actually want to upgrade your Azure subscription (such as switching from free to pay-as-you-go), you need
to convert your subscription.
To upgrade a free trial, see Upgrade your Free Trial or Microsoft Imagine Azure subscription to Pay-As-You-Go.
To change a pay-as-you-go account, see Change your Azure Pay-As-You-Go subscription to a different offer.
If you can't convert the subscription, create an Azure support request. Select Subscription Management for the
issue type.
Service limitations
Some services require additional considerations when moving resources. If you're moving the following services,
make sure you check the guidance and limitations.
App Services
Azure DevOps Services
Classic deployment model
Networking
Recovery Services
Virtual Machines
Large requests
When possible, break large moves into separate move operations. Resource Manager immediately returns an error
when there are more than 800 resources in a single operation. However, moving less than 800 resources may also
fail by timing out.
This article describes the steps to move App Service resources. There are specific requirements for moving App
Service resources to a new subscription.
You see the recommended actions to take before moving the resources. The information includes the original
resource group for the web app.
Move support
To determine which App Service resources can be moved, see move support status for:
Microsoft.AppService
Microsoft.CertificateRegistration
Microsoft.DomainRegistration
Microsoft.Web
Next steps
For commands to move resources, see Move resources to new resource group or subscription.
Move guidance for Classic deployment model
resources
12/23/2019 • 2 minutes to read • Edit Online
The steps to move resources deployed through the classic model differ based on whether you're moving the
resources within a subscription or to a new subscription.
POST
https://management.azure.com/subscriptions/{sourceSubscriptionId}/providers/Microsoft.ClassicCompute/va
lidateSubscriptionMoveAvailability?api-version=2016-04-01
{
"role": "source"
}
2. Check if the destination subscription can participate in a cross-subscription move. Use the following
operation:
POST
https://management.azure.com/subscriptions/{destinationSubscriptionId}/providers/Microsoft.ClassicCompu
te/validateSubscriptionMoveAvailability?api-version=2016-04-01
{
"role": "target"
}
POST https://management.azure.com/subscriptions/{subscription-
id}/providers/Microsoft.ClassicCompute/moveSubscriptionResources?api-version=2016-04-01
{
"target": "/subscriptions/{target-subscription-id}"
}
Next steps
If you have trouble moving classic resources, contact Support.
For commands to move resources, see Move resources to new resource group or subscription.
Move guidance for networking resources
12/23/2019 • 2 minutes to read • Edit Online
This article describes how to move virtual networks and other networking resources for specific scenarios.
Dependent resources
When moving a virtual network, you must also move its dependent resources. For VPN Gateways, you must
move IP addresses, virtual network gateways, and all associated connection resources. Local network gateways
can be in a different resource group.
To move a virtual machine with a network interface card to a new subscription, you must move all dependent
resources. Move the virtual network for the network interface card, all other network interface cards for the virtual
network, and the VPN gateways.
For more information, see Scenario for move across subscriptions.
Subnet links
You can't move a virtual network to a different subscription if the virtual network contains a subnet with resource
navigation links. For example, if an Azure Cache for Redis resource is deployed into a subnet, that subnet has a
resource navigation link.
Next steps
For commands to move resources, see Move resources to new resource group or subscription.
Move a Recovery Services vault across Azure
Subscriptions and Resource Groups
11/18/2019 • 5 minutes to read • Edit Online
This article explains how to move a Recovery Services vault configured for Azure Backup across Azure
subscriptions, or to another resource group in the same subscription. You can use the Azure portal or PowerShell
to move a Recovery Services vault.
Supported regions
Resource move for Recovery Services vault is supported in Australia East, Australia South East, Canada Central,
Canada East, South East Asia, East Asia, Central US, North Central US, East US, East US2, South central US, West
Central US, West Central US2, West US, Central India, South India, Japan East, Japan West, Korea Central, Korea
South, North Europe, West Europe, South Africa North, South Africa West, UK South, and UK West.
If you do not see the Essentials information for your vault, click the drop-down icon. You should now see
the Essentials information for your vault.
3. In the vault overview menu, click change next to the Resource group, to open the Move resources blade.
4. In the Move resources blade, for the selected vault it is recommended to move the optional related
resources by selecting the checkbox as shown in the following image.
5. To add the target resource group, in the Resource group drop-down list select an existing resource group
or click create a new group option.
6. After adding the resource group, confirm I understand that tools and scripts associated with moved
resources will not work until I update them to use new resource IDs option and then click OK to
complete moving the vault.
3. In the vault overview menu, click change next to Subscription, to open the Move resources blade.
4. Select the resources to be moved, here we recommend you to use the Select All option to select all the
listed optional resources.
5. Select the target subscription from the Subscription drop-down list, where you want the vault to be
moved.
6. To add the target resource group, in the Resource group drop-down list select an existing resource group
or click create a new group option.
7. Click I understand that tools and scripts associated with moved resources will not work until I
update them to use new resource IDs option to confirm, and then click OK.
NOTE
Cross subscription backup (RS vault and protected VMs are in different subscriptions) is not a supported scenario. Also,
storage redundancy option from local redundant storage (LRS) to global redundant storage (GRS) and vice versa cannot be
modified during the vault move operation.
$destinationRG = "<destinationResourceGroupName>"
$vault = Get-AzureRmRecoveryServicesVault -Name <vaultname> -ResourceGroupName <vaultRGname>
Move-AzureRmResource -DestinationResourceGroupName $destinationRG -ResourceId $vault.ID
After executing the above cmdlets, you will be asked to confirm that you want to move the specified resources.
Type Y to confirm. After a successful validation, the resource moves.
Post migration
1. Set/verify the access controls for the resource groups.
2. The Backup reporting and monitoring feature needs to be configured again for the vault post the move
completes. The previous configuration will be lost during the move operation.
Next steps
You can move many different types of resources between resource groups and subscriptions.
For more information, see Move resources to new resource group or subscription.
Move guidance for virtual machines
12/23/2019 • 2 minutes to read • Edit Online
This article describes the scenarios that aren't currently supported and the steps to move virtual machines with
backup.
Next steps
For commands to move resources, see Move resources to new resource group or subscription.
Moving Azure resources across regions
12/23/2019 • 2 minutes to read • Edit Online
This article provides information about moving Azure resources across Azure regions.
Azure geographies, regions, and Availability Zones form the foundation of the Azure global infrastructure. Azure
geographies typically contain two or more Azure regions. A region is an area within a geography, containing
Availability Zones, and multiple data centers.
After deploying resources in specific Azure region, there are a number of reasons that you might want to move
resources to a different region.
Align to a region launch: Move your resources to a newly introduced Azure region that wasn't previously
available.
Align for services/features: Move resources to take advantage of services or features that are available in a
specific region.
Respond to business developments: Move resources to a region in response to business changes, such as
mergers or acquisitions.
Align for proximity: Move resources to a region local to your business.
Meet data requirements: Move resources in order to align with data residency requirements, or data
classification needs. Learn more.
Respond to deployment requirements: Move resources that were deployed in error, or move in response to
capacity needs.
Respond to decommissioning: Move resources due to decommissioning of regions.
Move process
The actual move process depends on the resources you're moving. However, there are some common key steps:
Verify prerequisites: Prerequisites include making sure that the resources you need are available in the target
region, checking that you have enough quota, and verifying that your subscription can access the target region.
Analyze dependencies: Your resources might have dependencies on other resources. Before moving, figure
out dependencies so that moved resources continue to function as expected after the move.
Prepare for move: These are the steps you take in your primary region before the move. For example, you
might need to export an Azure Resource Manager template, or start replicating resources from source to target.
Move the resources: How you move resources depends on what they are. You might need to deploy a
template in the target region, or fail resources over to the target.
Discard target resources: After moving resources, you might want to take a look at the resources now in the
target region, and decide if there's anything you don't need.
Commit the move: After verifying resources in the target region, some resources might require a final commit
action. For example, in a target region that's now the primary region, you might need to set up disaster recovery
to a new secondary region.
Clean up the source: Finally, after everything's up and running in the new region, you can clean up and
decommission resources you created for the move, and resources in your primary region.
Next steps
For a list of which resources support moving across regions, see Move operation support for resources.
Support for moving Azure resources across regions
12/23/2019 • 8 minutes to read • Edit Online
This article confirms whether an Azure resource type is supported for moving to another Azure region.
Jump to a resource provider namespace:
Microsoft.AAD
RESOURCE TYPE REGION MOVE
domainservices No
domainservices / replicasets No
microsoft.aadiam
RESOURCE TYPE REGION MOVE
tenants No
Microsoft.AlertsManagement
RESOURCE TYPE REGION MOVE
actionrules No
Microsoft.AnalysisServices
RESOURCE TYPE REGION MOVE
servers No
Microsoft.ApiManagement
RESOURCE TYPE REGION MOVE
service No
Microsoft.AppConfiguration
RESOURCE TYPE REGION MOVE
configurationstores No
Microsoft.AppService
RESOURCE TYPE REGION MOVE
apiapps No
appidentities No
gateways No
Microsoft.Authorization
RESOURCE TYPE REGION MOVE
policyassignments No
Microsoft.Automation
RESOURCE TYPE REGION MOVE
automationaccounts No
automationaccounts / configurations No
automationaccounts / runbooks No
Microsoft.AzureActiveDirectory
RESOURCE TYPE REGION MOVE
b2cdirectories No
Microsoft.AzureData
RESOURCE TYPE REGION MOVE
sqlserverregistrations No
Microsoft.AzureStack
RESOURCE TYPE REGION MOVE
registrations No
Microsoft.Batch
RESOURCE TYPE REGION MOVE
batchaccounts No
Microsoft.BatchAI
RESOURCE TYPE REGION MOVE
clusters No
fileservers No
jobs No
workspaces No
Microsoft.BingMaps
RESOURCE TYPE REGION MOVE
mapapis No
Microsoft.BizTalkServices
RESOURCE TYPE REGION MOVE
biztalk No
Microsoft.Blockchain
RESOURCE TYPE REGION MOVE
blockchainmembers No
watchers No
Microsoft.Blueprint
RESOURCE TYPE REGION MOVE
blueprintassignments No
Microsoft.BotService
RESOURCE TYPE REGION MOVE
botservices No
Microsoft.Cache
Microsoft.Cache
RESOURCE TYPE REGION MOVE
redis No
Microsoft.Cdn
RESOURCE TYPE REGION MOVE
cdnwebapplicationfirewallpolicies No
profiles No
profiles / endpoints No
Microsoft.CertificateRegistration
RESOURCE TYPE REGION MOVE
certificateorders No
Microsoft.ClassicCompute
RESOURCE TYPE REGION MOVE
domainnames No
virtualmachines No
Microsoft.ClassicNetwork
RESOURCE TYPE REGION MOVE
networksecuritygroups No
reservedips No
virtualnetworks No
Microsoft.ClassicStorage
RESOURCE TYPE REGION MOVE
storageaccounts Yes
Microsoft.CognitiveServices
RESOURCE TYPE REGION MOVE
accounts No
Microsoft.Compute
RESOURCE TYPE REGION MOVE
availabilitysets No
diskencryptionsets No
disks No
galleries No
galleries / images No
hostgroups No
hostgroups / hosts No
images No
proximityplacementgroups No
restorepointcollections No
sharedvmimages No
sharedvmimages / versions No
snapshots No
virtualmachines Yes
virtualmachines / extensions No
virtualmachinescalesets No
Microsoft.Container
RESOURCE TYPE REGION MOVE
containergroups No
Microsoft.ContainerInstance
RESOURCE TYPE REGION MOVE
containergroups No
Microsoft.ContainerRegistry
RESOURCE TYPE REGION MOVE
registries No
registries / buildtasks No
registries / replications No
registries / tasks No
registries / webhooks No
Microsoft.ContainerService
RESOURCE TYPE REGION MOVE
containerservices No
managedclusters No
openshiftmanagedclusters No
Microsoft.ContentModerator
RESOURCE TYPE REGION MOVE
applications No
Microsoft.CortanaAnalytics
RESOURCE TYPE REGION MOVE
accounts No
Microsoft.CostManagement
RESOURCE TYPE REGION MOVE
connectors No
Microsoft.CustomerInsights
RESOURCE TYPE REGION MOVE
hubs No
Microsoft.CustomProviders
RESOURCE TYPE REGION MOVE
resourceproviders No
Microsoft.DataBox
RESOURCE TYPE REGION MOVE
jobs No
Microsoft.DataBoxEdge
RESOURCE TYPE REGION MOVE
databoxedgedevices No
Microsoft.Databricks
RESOURCE TYPE REGION MOVE
workspaces No
Microsoft.DataCatalog
RESOURCE TYPE REGION MOVE
catalogs No
datacatalogs No
Microsoft.DataConnect
RESOURCE TYPE REGION MOVE
connectionmanagers No
Microsoft.DataExchange
RESOURCE TYPE REGION MOVE
packages No
RESOURCE TYPE REGION MOVE
plans No
Microsoft.DataFactory
RESOURCE TYPE REGION MOVE
datafactories No
factories No
Microsoft.DataLake
RESOURCE TYPE REGION MOVE
datalakeaccounts No
Microsoft.DataLakeAnalytics
RESOURCE TYPE REGION MOVE
accounts No
Microsoft.DataLakeStore
RESOURCE TYPE REGION MOVE
accounts No
Microsoft.DataMigration
RESOURCE TYPE REGION MOVE
services No
services / projects No
slots No
Microsoft.DataShare
RESOURCE TYPE REGION MOVE
accounts No
Microsoft.DBforMariaDB
RESOURCE TYPE REGION MOVE
servers No
Microsoft.DBforMySQL
RESOURCE TYPE REGION MOVE
servers No
Microsoft.DBforPostgreSQL
RESOURCE TYPE REGION MOVE
servergroups No
servers No
serversv2 No
Microsoft.DeploymentManager
RESOURCE TYPE REGION MOVE
artifactsources No
rollouts No
servicetopologies No
servicetopologies / services No
steps No
Microsoft.Devices
RESOURCE TYPE REGION MOVE
elasticpools No
elasticpools / iothubtenants No
iothubs Yes
provisioningservices No
Microsoft.DevSpaces
RESOURCE TYPE REGION MOVE
controllers No
Microsoft.DevTestLab
RESOURCE TYPE REGION MOVE
labcenters No
labs No
labs / environments No
labs / servicerunners No
labs / virtualmachines No
schedules No
Microsoft.DocumentDB
RESOURCE TYPE REGION MOVE
databaseaccounts No
Microsoft.DomainRegistration
RESOURCE TYPE REGION MOVE
domains No
Microsoft.EnterpriseKnowledgeGraph
RESOURCE TYPE REGION MOVE
services No
Microsoft.EventGrid
RESOURCE TYPE REGION MOVE
domains No
topics No
Microsoft.EventHub
RESOURCE TYPE REGION MOVE
clusters No
namespaces No
Microsoft.Genomics
RESOURCE TYPE REGION MOVE
accounts No
Microsoft.HanaOnAzure
RESOURCE TYPE REGION MOVE
hanainstances No
sapmonitors No
Microsoft.HDInsight
RESOURCE TYPE REGION MOVE
clusters No
Microsoft.HealthcareApis
RESOURCE TYPE REGION MOVE
services No
Microsoft.HybridCompute
RESOURCE TYPE REGION MOVE
machines No
Microsoft.HybridData
RESOURCE TYPE REGION MOVE
datamanagers No
Microsoft.ImportExport
RESOURCE TYPE REGION MOVE
jobs No
microsoft.insights
RESOURCE TYPE REGION MOVE
accounts No
actiongroups No
activitylogalerts No
alertrules No
autoscalesettings No
components No
guestdiagnosticsettings No
metricalerts No
notificationgroups No
notificationrules No
scheduledqueryrules No
webtests No
workbooks No
Microsoft.IoTCentral
RESOURCE TYPE REGION MOVE
iotapps No
Microsoft.IoTSpaces
RESOURCE TYPE REGION MOVE
checknameavailability No
graph No
Microsoft.KeyVault
RESOURCE TYPE REGION MOVE
hsmpools No
vaults No
Microsoft.Kusto
RESOURCE TYPE REGION MOVE
clusters No
Microsoft.LabServices
RESOURCE TYPE REGION MOVE
labaccounts No
Microsoft.LocationBasedServices
RESOURCE TYPE REGION MOVE
accounts No
Microsoft.LocationServices
RESOURCE TYPE REGION MOVE
accounts No
Microsoft.Logic
RESOURCE TYPE REGION MOVE
hostingenvironments No
integrationaccounts No
integrationserviceenvironments No
isolatedenvironments No
workflows No
Microsoft.MachineLearning
RESOURCE TYPE REGION MOVE
commitmentplans No
webservices No
workspaces No
Microsoft.MachineLearningCompute
RESOURCE TYPE REGION MOVE
operationalizationclusters No
Microsoft.MachineLearningExperimentation
RESOURCE TYPE REGION MOVE
accounts No
accounts / workspaces No
teamaccounts No
teamaccounts / workspaces No
Microsoft.MachineLearningModelManagement
RESOURCE TYPE REGION MOVE
accounts No
Microsoft.MachineLearningOperationalization
RESOURCE TYPE REGION MOVE
hostingaccounts No
Microsoft.MachineLearningServices
RESOURCE TYPE REGION MOVE
workspaces No
Microsoft.ManagedIdentity
RESOURCE TYPE REGION MOVE
userassignedidentities No
Microsoft.Maps
RESOURCE TYPE REGION MOVE
accounts No
Microsoft.MarketplaceApps
RESOURCE TYPE REGION MOVE
classicdevservices No
Microsoft.Media
RESOURCE TYPE REGION MOVE
mediaservices No
mediaservices / liveevents No
mediaservices / streamingendpoints No
Microsoft.Microservices4Spring
RESOURCE TYPE REGION MOVE
appclusters No
Microsoft.Migrate
RESOURCE TYPE REGION MOVE
assessmentprojects No
migrateprojects No
projects No
Microsoft.NetApp
RESOURCE TYPE REGION MOVE
netappaccounts No
netappaccounts / capacitypools No
Microsoft.Network
RESOURCE TYPE REGION MOVE
applicationgateways No
applicationgatewaywebapplicationfirewa No
llpolicies
applicationsecuritygroups No
azurefirewalls No
bastionhosts No
connections No
ddoscustompolicies No
ddosprotectionplans No
dnszones No
expressroutecircuits No
expressroutecrossconnections No
expressroutegateways No
expressrouteports No
frontdoors No
frontdoorwebapplicationfirewallpolicies No
localnetworkgateways No
RESOURCE TYPE REGION MOVE
natgateways No
networkintentpolicies No
networkinterfaces Yes
networkprofiles No
networksecuritygroups Yes
networkwatchers No
networkwatchers / connectionmonitors No
networkwatchers / lenses No
networkwatchers / pingmeshes No
p2svpngateways No
privatednszones No
privatednszones / virtualnetworklinks No
privateendpoints No
privatelinkservices No
publicipprefixes No
routefilters No
routetables No
serviceendpointpolicies No
trafficmanagerprofiles No
virtualhubs No
virtualnetworkgateways No
virtualnetworks No
virtualnetworktaps No
virtualwans No
RESOURCE TYPE REGION MOVE
webapplicationfirewallpolicies No
Microsoft.NotificationHubs
RESOURCE TYPE REGION MOVE
namespaces No
namespaces / notificationhubs No
Microsoft.OperationalInsights
RESOURCE TYPE REGION MOVE
workspaces No
Microsoft.OperationsManagement
RESOURCE TYPE REGION MOVE
managementconfigurations No
views No
Microsoft.Peering
RESOURCE TYPE REGION MOVE
peerings No
Microsoft.Portal
RESOURCE TYPE REGION MOVE
dashboards No
Microsoft.PortalSdk
RESOURCE TYPE REGION MOVE
rootresources No
Microsoft.PowerBI
Microsoft.PowerBI
RESOURCE TYPE REGION MOVE
workspacecollections No
Microsoft.PowerBIDedicated
RESOURCE TYPE REGION MOVE
capacities No
Microsoft.ProjectOxford
RESOURCE TYPE REGION MOVE
accounts No
Microsoft.RecoveryServices
RESOURCE TYPE REGION MOVE
Microsoft.Relay
RESOURCE TYPE REGION MOVE
namespaces No
Microsoft.ResourceGraph
RESOURCE TYPE REGION MOVE
queries No
Microsoft.SaaS
RESOURCE TYPE REGION MOVE
applications No
Microsoft.Scheduler
RESOURCE TYPE REGION MOVE
flows No
RESOURCE TYPE REGION MOVE
jobcollections No
Microsoft.Search
RESOURCE TYPE REGION MOVE
searchservices No
Microsoft.Security
RESOURCE TYPE REGION MOVE
iotsecuritysolutions No
playbookconfigurations No
Microsoft.ServerManagement
RESOURCE TYPE REGION MOVE
gateways No
nodes No
Microsoft.ServiceBus
RESOURCE TYPE REGION MOVE
namespaces No
Microsoft.ServiceFabric
RESOURCE TYPE REGION MOVE
applications No
clusters No
clusters / applications No
containergroups No
containergroupsets No
edgeclusters No
networks No
RESOURCE TYPE REGION MOVE
secretstores No
volumes No
Microsoft.ServiceFabricMesh
RESOURCE TYPE REGION MOVE
applications No
containergroups No
gateways No
networks No
secrets No
volumes No
Microsoft.SignalRService
RESOURCE TYPE REGION MOVE
signalr No
Microsoft.Solutions
RESOURCE TYPE REGION MOVE
appliancedefinitions No
appliances No
applicationdefinitions No
applications No
jitrequests No
Microsoft.Sql
RESOURCE TYPE REGION MOVE
instancepools No
managedinstances Yes
RESOURCE TYPE REGION MOVE
servers Yes
virtualclusters Yes
Microsoft.SqlVirtualMachine
RESOURCE TYPE REGION MOVE
sqlvirtualmachinegroups No
sqlvirtualmachines No
Microsoft.SqlVM
RESOURCE TYPE REGION MOVE
dwvm No
Microsoft.Storage
RESOURCE TYPE REGION MOVE
storageaccounts Yes??
Microsoft.StorageCache
RESOURCE TYPE REGION MOVE
caches No
Microsoft.StorageSync
RESOURCE TYPE REGION MOVE
storagesyncservices No
Microsoft.StorageSyncDev
RESOURCE TYPE REGION MOVE
storagesyncservices No
Microsoft.StorageSyncInt
RESOURCE TYPE REGION MOVE
storagesyncservices No
Microsoft.StorSimple
RESOURCE TYPE REGION MOVE
managers No
Microsoft.StreamAnalytics
RESOURCE TYPE REGION MOVE
streamingjobs No
Microsoft.StreamAnalyticsExplorer
RESOURCE TYPE REGION MOVE
environments No
environments / eventsources No
instances No
instances / environments No
Microsoft.TerraformOSS
RESOURCE TYPE REGION MOVE
providerregistrations No
resources No
Microsoft.TimeSeriesInsights
RESOURCE TYPE REGION MOVE
environments No
environments / eventsources No
environments / referencedatasets No
Microsoft.Token
RESOURCE TYPE REGION MOVE
stores No
Microsoft.VirtualMachineImages
RESOURCE TYPE REGION MOVE
imagetemplates No
microsoft.visualstudio
RESOURCE TYPE REGION MOVE
account No
account / extension No
account / project No
Microsoft.VMwareCloudSimple
RESOURCE TYPE REGION MOVE
dedicatedcloudnodes No
dedicatedcloudservices No
virtualmachines No
Microsoft.Web
RESOURCE TYPE REGION MOVE
certificates No
connectiongateways No
connections No
RESOURCE TYPE REGION MOVE
customapis No
hostingenvironments No
serverfarms No
sites No
sites / premieraddons No
sites / slots No
Microsoft.WindowsIoT
RESOURCE TYPE REGION MOVE
deviceservices No
Microsoft.WindowsVirtualDesktop
RESOURCE TYPE REGION MOVE
applicationgroups No
hostpools No
workspaces No
Third-party services
Third-party services currently don't support the move operation.
Move Azure VMs to another region
11/12/2019 • 6 minutes to read • Edit Online
There are various scenarios in which you'd want to move your existing Azure IaaS virtual machines (VMs) from
one region to another. For example, you want to improve reliability and availability of your existing VMs, to
improve manageability, or to move for governance reasons. For more information, see the Azure VM move
overview.
You can use the Azure Site Recovery service to manage and orchestrate disaster recovery of on-premises machines
and Azure VMs for business continuity and disaster recovery (BCDR ). You can also use Site Recovery to manage
the move of Azure VMs to a secondary region.
In this tutorial, you will:
Verify prerequisites for the move
Prepare the source VMs and the target region
Copy the data and enable replication
Test the configuration and perform the move
Delete the resources in the source region
NOTE
This tutorial shows you how to move Azure VMs from one region to another as is. If you need to improve availability by
moving VMs in an availability set to zone pinned VMs in a different region, see the Move Azure VMs into Availability Zones
tutorial.
Prerequisites
Make sure that the Azure VMs are in the Azure region from which you want to move.
Verify that your choice of source region - target region combination is supported, and make an informed
decision about the target region.
Make sure that you understand the scenario architecture and components.
Review the support limitations and requirements.
Verify account permissions. If you created your free Azure account, you're the administrator of your
subscription. If you're not the subscription administrator, work with the administrator to assign the
permissions that you need. To enable replication for a VM and essentially copy data by using Azure Site
Recovery, you must have:
Permissions to create a VM in Azure resources. The Virtual Machine Contributor built-in role has
these permissions, which include:
Permission to create a VM in the selected resource group
Permission to create a VM in the selected virtual network
Permission to write to the selected storage account
Permissions to manage Azure Site Recovery operations. The Site Recovery Contributor role has all
the permissions that are required to manage Site Recovery operations in a Recovery Services vault.
Make sure that all the latest root certificates are on the Azure VMs that you want to move. If the latest root
certificates aren't on the VM, security constraints will prevent the data copy to the target region.
For Windows VMs, install all the latest Windows updates on the VM, so that all the trusted root certificates
are on the machine. In a disconnected environment, follow the standard Windows Update and certificate
update processes for your organization.
For Linux VMs, follow the guidance provided by your Linux distributor to get the latest trusted root
certificates and certificate revocation list on the VM.
Make sure that you're not using an authentication proxy to control network connectivity for VMs that you
want to move.
If the VM that you're trying to move doesn't have access to the internet, or it's using a firewall proxy to
control outbound access, check the requirements.
Identify the source networking layout and all the resources that you're currently using. This includes but isn't
limited to load balancers, network security groups (NSGs), and public IPs.
Verify that your Azure subscription allows you to create VMs in the target region that's used for disaster
recovery. Contact support to enable the required quota.
Make sure that your subscription has enough resources to support VMs with sizes that match your source
VMs. If you're using Site Recovery to copy data to the target, Site Recovery chooses the same size or the
closest possible size for the target VM.
Make sure that you create a target resource for every component that's identified in the source networking
layout. This step is important to ensure that your VMs have all the functionality and features in the target
region that you had in the source region.
NOTE
Azure Site Recovery automatically discovers and creates a virtual network when you enable replication for the source
VM. You can also pre-create a network and assign it to the VM in the user flow for enable replication. As mentioned
later, you need to manually create any other resources in the target region.
To create the most commonly used network resources that are relevant for you based on the source VM
configuration, see the following documentation:
Network security groups
Load balancers
Public IP
For any other networking components, see the networking documentation.
Prepare
The following steps shows how to prepare the virtual machine for the move using Azure Site Recovery as a
solution.
Create the vault in any region, except the source region
1. Sign in to the Azure portal > Recovery Services.
2. Select Create a resource > Management Tools > Backup and Site Recovery.
3. In Name, specify the friendly name ContosoVMVault. If you have more than one subscription, select the
appropriate one.
4. Create the resource group ContosoRG.
5. Specify an Azure region. To check supported regions, see geographic availability in Azure Site Recovery pricing
details.
6. In Recovery Services vaults, select Overview > ContosoVMVault > +Replicate.
7. In Source, select Azure.
8. In Source location, select the source Azure region where your VMs are currently running.
9. Select the Resource Manager deployment model. Then select the Source subscription and Source resource
group.
10. Select OK to save the settings.
Enable replication for Azure VMs and start copying the data
Site Recovery retrieves a list of the VMs that are associated with the subscription and resource group.
1. In the next step, select the VM that you want to move, then select OK.
2. In Settings, select Disaster recovery.
3. In Configure disaster recovery > Target region, select the target region to which you'll replicate.
4. For this tutorial, accept the other default settings.
5. Select Enable replication. This step starts a job to enable replication for the VM.
Move
The following steps shows how to perform the move to the target region.
1. Go to the vault. In Settings > Replicated items, select the VM, and then select Failover.
2. In Failover, select Latest.
3. Select Shut down machine before beginning failover. Site Recovery attempts to shut down the source VM
before triggering the failover. Failover continues even if shutdown fails. You can follow the failover progress on
the Jobs page.
4. After the job is finished, check that the VM appears in the target Azure region as expected.
Discard
In case you checked the moved VM and need to make changed to point of failover or want to go back to a previous
point, in the Replicated items, right-select the VM > Change recovery point. This step provides you the option
to specify a different recovery point and failover to that one.
Commit
Once you have checked the moved VM and are ready to commit the change, in the Replicated items, right-select
the VM > Commit. This step finishes the move process to the target region. Wait until the commit job finishes.
Clean up
The following steps will guide you through how to clean up the source region as well as related resources that were
used for the move.
For all resources that were used for the move:
Go to the VM. Select Disable Replication. This step stops the process from copying the data for the VM.
IMPORTANT
It's important to perform this step to avoid being charged for Azure Site Recovery replication.
If you have no plans to reuse any of the source resources, complete these additional steps:
1. Delete all the relevant network resources in the source region that you identified in prerequisites.
2. Delete the corresponding storage account in the source region.
Next steps
In this tutorial, you moved an Azure VM to a different Azure region. Now you can configure disaster recovery for
the VM that you moved.
Set up disaster recovery after migration
Move an Azure Storage account to another region
11/8/2019 • 6 minutes to read • Edit Online
To move a storage account, create a copy of your storage account in another region. Then, move your data to that
account by using AzCopy, or another tool of your choice.
In this article, you'll learn how to:
Export a template.
Modify the template by adding the target region and storage account name.
Deploy the template to create the new storage account.
Configure the new storage account.
Move data to the new storage account.
Delete the resources in the source region.
Prerequisites
Ensure that the services and features that your account uses are supported in the target region.
For preview features, ensure that your subscription is whitelisted for the target region.
Prepare
To get started, export, and then modify a Resource Manager template.
Export a template
This template contains settings that describe your storage account.
Portal
PowerShell
To export a template by using Azure portal:
1. Sign in to the Azure portal.
2. Select All resources and then select your storage account.
3. Select > Settings > Export template.
4. Choose Download in the Export template blade.
5. Locate the .zip file that you downloaded from the portal, and unzip that file to a folder of your choice.
This zip file contains the .json files that comprise the template and scripts to deploy the template.
Modify the template
Modify the template by changing the storage account name and region.
Portal
PowerShell
To deploy the template by using Azure portal:
1. In the Azure portal, select Create a resource.
2. In Search the Marketplace, type template deployment, and then press ENTER.
3. Select Template deployment.
4. Select Create.
5. Select Build your own template in the editor.
6. Select Load file, and then follow the instructions to load the template.json file that you downloaded in the
last section.
7. In the template.json file, name the target storage account by setting the default value of the storage
account name. This example sets the default value of the storage account name to mytargetaccount .
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccounts_mysourceaccount_name": {
"defaultValue": "mytargetaccount",
"type": "String"
}
},
8. Edit the location property in the template.json file to the target region. This example sets the target region
to centralus .
"resources": [{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-04-01",
"name": "[parameters('storageAccounts_mysourceaccount_name')]",
"location": "centralus"
}]
To obtain region location codes, see Azure Locations. The code for a region is the region name with no
spaces, Central US = centralus.
Move
Deploy the template to create a new storage account in the target region.
Portal
PowerShell
1. Save the template.json file.
2. Enter or select the property values:
Subscription: Select an Azure subscription.
Resource group: Select Create new and give the resource group a name.
Location: Select an Azure location.
3. Click the I agree to the terms and conditions stated above checkbox, and then click the Select Purchase
button.
Configure the new storage account
Some features won't export to a template, so you'll have to add them to the new storage account.
The following table lists these features along with guidance for adding them to your new storage account.
FEATURE GUIDANCE
Alerts Create, view, and manage activity log alerts by using Azure
Monitor
Content Delivery Network (CDN) Use Azure CDN to access blobs with custom domains over
HTTPS
NOTE
If you set up a CDN for the source storage account, just change the origin of your existing CDN to the primary blob service
endpoint (or the primary static website endpoint) of your new account.
Discard or clean up
After the deployment, if you want to start over, you can delete the target storage account, and repeat the steps
described in the Prepare and Move sections of this article.
To commit the changes and complete the move of a storage account, delete the source storage account.
Portal
PowerShell
To remove a storage account by using the Azure portal:
1. In the Azure portal, expand the menu on the left side to open the menu of services, and choose Storage
accounts to display the list of your storage accounts.
2. Locate the target storage account to delete, and right-click the More button (...) on the right side of the
listing.
3. Select Delete, and confirm.
Next steps
In this tutorial, you moved an Azure storage account from one region to another and cleaned up the source
resources. To learn more about moving resources between regions and disaster recovery in Azure, refer to:
Move resources to a new resource group or subscription
Move Azure VMs to another region
How to move Azure SQL resources to another region
11/7/2019 • 9 minutes to read • Edit Online
This article teaches you a generic workflow for how to move your Azure SQL Database single database, elastic
pool, and managed instance to a new region.
Overview
There are various scenarios in which you'd want to move your existing Azure SQL resources from one region to
another. For example, you expand your business to a new region and want to optimize it for the new customer
base. Or you need to move the operations to a different region for compliance reasons. Or Azure released a brand-
new region that provides a better proximity and improves the customer experience.
This article provides a general workflow for moving resources to a different region. The workflow consists of the
following steps:
Verify the prerequisites for the move
Prepare to move the resources in scope
Monitor the preparation process
Test the move process
Initiate the actual move
Remove the resources from the source region
NOTE
This article applies to migrations within the Azure public cloud, or within the same sovereign cloud.
NOTE
This article has been updated to use the new Azure PowerShell Az module. You can still use the AzureRM module, which will
continue to receive bug fixes until at least December 2020. To learn more about the new Az module and AzureRM
compatibility, see Introducing the new Azure PowerShell Az module. For Az module installation instructions, see Install Azure
PowerShell.
NOTE
This will be insufficient for moving between the sovereign cloud and a public region. Such a migration will require moving the
LTR backups to the target server, which is not currently supported.
Prepare resources
1. Create a failover group between the logical server of the source to the logical server of the target.
2. Add the databases you want to move to the failover group.
Replication of all added databases will be initiated automatically. For more information, see Best practices
for using failover groups with single databases.
Monitor the preparation process
You can periodically call Get-AzSqlDatabaseFailoverGroup to monitor replication of your databases from the
source to the target. The output object of Get-AzSqlDatabaseFailoverGroup includes a property for the
ReplicationState:
ReplicationState = 2 (CATCH_UP ) indicates the database is synchronized and can be safely failed over.
ReplicationState = 0 (SEEDING ) indicates that the database is not yet seeded, and an attempt to failover will
fail.
Test synchronization
Once ReplicationState is , connect to each database, or subset of databases using the secondary endpoint
2
<fog-name>.secondary.database.windows.net and perform any query against the databases to ensure connectivity,
proper security configuration, and data replication.
Initiate the move
1. Connect to the target server using the secondary endpoint <fog-name>.secondary.database.windows.net .
2. Use Switch-AzSqlDatabaseFailoverGroup to switch the secondary managed instance to be the primary with full
synchronization. This operation will either succeed, or it will roll back.
3. Verify that the command has completed successfully by using
nslook up <fog-name>.secondary.database.windows.net to ascertain that the DNS CNAME entry points to the
target region IP address. If the switch command fails, the CNAME will not get updated.
Remove the source databases
Once the move completes, remove the resources in the source region to avoid unnecessary charges.
1. Delete the failover group using Remove-AzSqlDatabaseFailoverGroup.
2. Delete each source database using Remove-AzSqlDatabase for each of the databases on the source server. This
will automatically terminate geo-replication links.
3. Delete the source server using Remove-AzSqlServer.
4. Remove the key vault, audit storage containers, event hub, AAD instance, and other dependent resources to
stop being billed for them.
Move elastic pools
Verify prerequisites
1. Create a target logical server for each source server.
2. Configure the firewall with the right exceptions using PowerShell.
3. Configure the logical servers with the correct logins. If you're not the subscription administrator or SQL server
administrator, work with the administrator to assign the permissions that you need. For more information, see
How to manage Azure SQL database security after disaster recovery.
4. If your databases are encrypted with TDE and use your own encryption key in Azure key vault, ensure that the
correct encryption material is provisioned in the target region.
5. Create a target elastic pool for each source elastic pool, making sure the pool is created in the same service tier,
with the same name and the same size.
6. If a database-level audit is enabled, disable it and enable server-level auditing instead. After failover, database-
level auditing will require cross-region traffic, which is not desired, or possible after the move.
7. For server-level audits, ensure that:
The storage container, Log Analytics, or event hub with the existing audit logs is moved to the target
region.
Audit configuration is configured at the target server. For more information, see SQL database auditing.
8. If your instance has a long-term retention policy (LTR ), the existing LTR backups will remain associated with the
current server. Because the target server is different, you will be able to access the older LTR backups in the
source region using the source server, even if the server is deleted.
NOTE
This will be insufficient for moving between the sovereign cloud and a public region. Such a migration will require moving the
LTR backups to the target server, which is not currently supported.
Prepare to move
1. Create a separate failover group between each elastic pool on the source logical server and its counterpart
elastic pool on the target server.
2. Add all the databases in the pool to the failover group.
Replication of the added databases will be initiated automatically. For more information, see best
practices for failover groups with elastic pools.
NOTE
While it is possible to create a failover group that includes multiple elastic pools, we strongly recommend that you create a
separate failover group for each pool. If you have a large number of databases across multiple elastic pools that you need to
move, you can run the preparation steps in parallel and then initiate the move step in parallel. This process will scale better
and will take less time compared to having multiple elastic pools in the same failover group.
NOTE
This will be insufficient for moving between the sovereign cloud and a public region. Such a migration will require moving the
LTR backups to the target server, which is not currently supported.
Prepare resources
Create a failover group between each source instance and the corresponding target instance. - Replication of all
databases on each instance will be initiated automatically. See Auto-failover groups for more information.
Monitor the preparation process
You can periodically call Get-AzSqlDatabaseFailoverGroup to monitor replication of your databases from the
source to the target. The output object of Get-AzSqlDatabaseFailoverGroup includes a property for the
ReplicationState:
ReplicationState = 2 (CATCH_UP ) indicates the database is synchronized and can be safely failed over.
ReplicationState = 0 (SEEDING ) indicates that the database is not yet seeded, and an attempt to failover will
fail.
Test synchronization
Once ReplicationState is 2 , connect to each database, or subset of databases using the secondary endpoint
<fog-name>.secondary.database.windows.net and perform any query against the databases to ensure connectivity,
proper security configuration, and data replication.
Initiate the move
1. Connect to the target server using the secondary endpoint <fog-name>.secondary.database.windows.net .
2. Use Switch-AzSqlDatabaseFailoverGroup to switch the secondary managed instance to be the primary with full
synchronization. This operation will either succeed, or it will roll back.
3. Verify that the command has completed successfully by using
nslook up <fog-name>.secondary.database.windows.net to ascertain that the DNS CNAME entry points to the
target region IP address. If the switch command fails, the CNAME will not get updated.
Remove the source managed instances
Once the move completes, remove the resources in the source region to avoid unnecessary charges.
1. Delete the failover group using Remove-AzSqlDatabaseFailoverGroup. This will drop the failover group
configuration and terminate geo-replication links between the two instances.
2. Delete the source managed instance using Remove-AzSqlInstance.
3. Remove any additional resources in the resource group, such as the virtual cluster, virtual network, and security
group.
Next steps
Manage your Azure SQL Database once it's been migrated.
Move Azure network security group (NSG) to another
region using the Azure portal
1/3/2020 • 4 minutes to read • Edit Online
There are various scenarios in which you'd want to move your existing NSGs from one region to another. For
example, you may want to create an NSG with the same configuration and security rules for testing. You may also
want to move an NSG to another region as part of disaster recovery planning.
Azure security groups can't be moved from one region to another. You can however, use an Azure Resource
Manager template to export the existing configuration and security rules of an NSG. You can then stage the
resource in another region by exporting the NSG to a template, modifying the parameters to match the destination
region, and then deploy the template to the new region. For more information on Resource Manager and
templates, see Quickstart: Create and deploy Azure Resource Manager templates by using the Azure portal.
Prerequisites
Make sure that the Azure network security group is in the Azure region from which you want to move.
Azure network security groups can't be moved between regions. You'll have to associate the new NSG to
resources in the target region.
To export an NSG configuration and deploy a template to create an NSG in another region, you'll need the
Network Contributor role or higher.
Identify the source networking layout and all the resources that you're currently using. This layout includes
but isn't limited to load balancers, public IPs, and virtual networks.
Verify that your Azure subscription allows you to create NSGs in the target region that's used. Contact
support to enable the required quota.
Make sure that your subscription has enough resources to support the addition of NSGs for this process.
See Azure subscription and service limits, quotas, and constraints.
7. Change the source NSG value in the editor to a name of your choice for the target NSG. Ensure you enclose
the name in quotes.
8. Click Save in the editor.
9. Click TEMPLATE > Edit template to open the template.json file in the online editor.
10. To edit the target region where the NSG configuration and security rules will be moved, change the location
property under resources in the online editor:
"resources": [
{
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2019-06-01",
"name": "[parameters('networkSecurityGroups_myVM1_nsg_name')]",
"location": "<target-region>",
"properties": {
"provisioningState": "Succeeded",
"resourceGuid": "2c846acf-58c8-416d-be97-ccd00a4ccd78",
}
}
]
11. To obtain region location codes, see Azure Locations. The code for a region is the region name with no
spaces, Central US = centralus.
12. You can also change other parameters in the template if you choose, and are optional depending on your
requirements:
Security rules - You can edit which rules are deployed into the target NSG by adding or removing
rules to the securityRules section in the template.json file:
"resources": [
{
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2019-06-01",
"name": "[parameters('networkSecurityGroups_myVM1_nsg_name')]",
"location": "<target-region>",
"properties": {
"provisioningState": "Succeeded",
"resourceGuid": "2c846acf-58c8-416d-be97-ccd00a4ccd78",
"securityRules": [
{
"name": "RDP",
"etag": "W/\"c630c458-6b52-4202-8fd7-172b7ab49cf5\"",
"properties": {
"provisioningState": "Succeeded",
"protocol": "TCP",
"sourcePortRange": "*",
"destinationPortRange": "3389",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*",
"access": "Allow",
"priority": 300,
"direction": "Inbound",
"sourcePortRanges": [],
"destinationPortRanges": [],
"sourceAddressPrefixes": [],
"destinationAddressPrefixes": []
}
},
]
}
To complete the addition or the removal of the rules in the target NSG, you must also edit the custom
rule types at the end of the template.json file in the format of the example below:
{
"type": "Microsoft.Network/networkSecurityGroups/securityRules",
"apiVersion": "2019-06-01",
"name": "[concat(parameters('networkSecurityGroups_myVM1_nsg_name'), '/Port_80')]",
"dependsOn": [
"[resourceId('Microsoft.Network/networkSecurityGroups',
parameters('networkSecurityGroups_myVM1_nsg_name'))]"
],
"properties": {
"provisioningState": "Succeeded",
"protocol": "*",
"sourcePortRange": "*",
"destinationPortRange": "80",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*",
"access": "Allow",
"priority": 310,
"direction": "Inbound",
"sourcePortRanges": [],
"destinationPortRanges": [],
"sourceAddressPrefixes": [],
"destinationAddressPrefixes": []
}
Discard
If you wish to discard the target NSG, delete the resource group that contains the target NSG. To do so, select the
resource group from your dashboard in the portal and select Delete at the top of the overview page.
Clean up
To commit the changes and complete the move of the NSG, delete the source NSG or resource group. To do so,
select the network security group or resource group from your dashboard in the portal and select Delete at the top
of each page.
Next steps
In this tutorial, you moved an Azure network security group from one region to another and cleaned up the source
resources. To learn more about moving resources between regions and disaster recovery in Azure, refer to:
Move resources to a new resource group or subscription
Move Azure VMs to another region
Move Azure network security group (NSG) to another
region using the Azure portal
1/3/2020 • 4 minutes to read • Edit Online
There are various scenarios in which you'd want to move your existing NSGs from one region to another. For
example, you may want to create an NSG with the same configuration and security rules for testing. You may also
want to move an NSG to another region as part of disaster recovery planning.
Azure security groups can't be moved from one region to another. You can however, use an Azure Resource
Manager template to export the existing configuration and security rules of an NSG. You can then stage the
resource in another region by exporting the NSG to a template, modifying the parameters to match the destination
region, and then deploy the template to the new region. For more information on Resource Manager and
templates, see Quickstart: Create and deploy Azure Resource Manager templates by using the Azure portal.
Prerequisites
Make sure that the Azure network security group is in the Azure region from which you want to move.
Azure network security groups can't be moved between regions. You'll have to associate the new NSG to
resources in the target region.
To export an NSG configuration and deploy a template to create an NSG in another region, you'll need the
Network Contributor role or higher.
Identify the source networking layout and all the resources that you're currently using. This layout includes
but isn't limited to load balancers, public IPs, and virtual networks.
Verify that your Azure subscription allows you to create NSGs in the target region that's used. Contact
support to enable the required quota.
Make sure that your subscription has enough resources to support the addition of NSGs for this process.
See Azure subscription and service limits, quotas, and constraints.
7. Change the source NSG value in the editor to a name of your choice for the target NSG. Ensure you enclose
the name in quotes.
8. Click Save in the editor.
9. Click TEMPLATE > Edit template to open the template.json file in the online editor.
10. To edit the target region where the NSG configuration and security rules will be moved, change the
location property under resources in the online editor:
"resources": [
{
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2019-06-01",
"name": "[parameters('networkSecurityGroups_myVM1_nsg_name')]",
"location": "<target-region>",
"properties": {
"provisioningState": "Succeeded",
"resourceGuid": "2c846acf-58c8-416d-be97-ccd00a4ccd78",
}
}
]
11. To obtain region location codes, see Azure Locations. The code for a region is the region name with no
spaces, Central US = centralus.
12. You can also change other parameters in the template if you choose, and are optional depending on your
requirements:
Security rules - You can edit which rules are deployed into the target NSG by adding or removing
rules to the securityRules section in the template.json file:
"resources": [
{
"type": "Microsoft.Network/networkSecurityGroups",
"apiVersion": "2019-06-01",
"name": "[parameters('networkSecurityGroups_myVM1_nsg_name')]",
"location": "<target-region>",
"properties": {
"provisioningState": "Succeeded",
"resourceGuid": "2c846acf-58c8-416d-be97-ccd00a4ccd78",
"securityRules": [
{
"name": "RDP",
"etag": "W/\"c630c458-6b52-4202-8fd7-172b7ab49cf5\"",
"properties": {
"provisioningState": "Succeeded",
"protocol": "TCP",
"sourcePortRange": "*",
"destinationPortRange": "3389",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*",
"access": "Allow",
"priority": 300,
"direction": "Inbound",
"sourcePortRanges": [],
"destinationPortRanges": [],
"sourceAddressPrefixes": [],
"destinationAddressPrefixes": []
}
},
]
}
To complete the addition or the removal of the rules in the target NSG, you must also edit the custom
rule types at the end of the template.json file in the format of the example below:
{
"type": "Microsoft.Network/networkSecurityGroups/securityRules",
"apiVersion": "2019-06-01",
"name": "[concat(parameters('networkSecurityGroups_myVM1_nsg_name'), '/Port_80')]",
"dependsOn": [
"[resourceId('Microsoft.Network/networkSecurityGroups',
parameters('networkSecurityGroups_myVM1_nsg_name'))]"
],
"properties": {
"provisioningState": "Succeeded",
"protocol": "*",
"sourcePortRange": "*",
"destinationPortRange": "80",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*",
"access": "Allow",
"priority": 310,
"direction": "Inbound",
"sourcePortRanges": [],
"destinationPortRanges": [],
"sourceAddressPrefixes": [],
"destinationAddressPrefixes": []
}
Discard
If you wish to discard the target NSG, delete the resource group that contains the target NSG. To do so, select the
resource group from your dashboard in the portal and select Delete at the top of the overview page.
Clean up
To commit the changes and complete the move of the NSG, delete the source NSG or resource group. To do so,
select the network security group or resource group from your dashboard in the portal and select Delete at the
top of each page.
Next steps
In this tutorial, you moved an Azure network security group from one region to another and cleaned up the source
resources. To learn more about moving resources between regions and disaster recovery in Azure, refer to:
Move resources to a new resource group or subscription
Move Azure VMs to another region
Move Azure Public IP to another region using the
Azure portal
1/3/2020 • 4 minutes to read • Edit Online
There are various scenarios in which you'd want to move your existing Azure Public IPs from one region to
another. For example, you may want to create a public IP with the same configuration and sku for testing. You may
also want to move a public IP to another region as part of disaster recovery planning.
Azure Public IPs are region specific and can't be moved from one region to another. You can however, use an Azure
Resource Manager template to export the existing configuration of a public IP. You can then stage the resource in
another region by exporting the public IP to a template, modifying the parameters to match the destination region,
and then deploy the template to the new region. For more information on Resource Manager and templates, see
Quickstart: Create and deploy Azure Resource Manager templates by using the Azure portal.
Prerequisites
Make sure that the Azure Public IP is in the Azure region from which you want to move.
Azure Public IPs can't be moved between regions. You'll have to associate the new public ip to resources in
the target region.
To export a public IP configuration and deploy a template to create a public IP in another region, you'll need
the Network Contributor role or higher.
Identify the source networking layout and all the resources that you're currently using. This layout includes
but isn't limited to load balancers, network security groups (NSGs), and virtual networks.
Verify that your Azure subscription allows you to create public IPs in the target region that's used. Contact
support to enable the required quota.
Make sure that your subscription has enough resources to support the addition of public IPs for this
process. See Azure subscription and service limits, quotas, and constraints.
"resources": [
{
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2019-06-01",
"name": "[parameters('publicIPAddresses_myPubIP_name')]",
"location": "<target-region>",
"sku": {
"name": "Basic",
"tier": "Regional"
},
"properties": {
"provisioningState": "Succeeded",
"resourceGuid": "7549a8f1-80c2-481a-a073-018f5b0b69be",
"ipAddress": "52.177.6.204",
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Dynamic",
"idleTimeoutInMinutes": 4,
"ipTags": []
}
}
]
10. To obtain region location codes, see Azure Locations. The code for a region is the region name with no
spaces, Central US = centralus.
11. You can also change other parameters in the template if you choose, and are optional depending on your
requirements:
Sku - You can change the sku of the public IP in the configuration from standard to basic or basic to
standard by altering the sku > name property in the template.json file:
"resources": [
{
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2019-06-01",
"name": "[parameters('publicIPAddresses_myPubIP_name')]",
"location": "<target-region>",
"sku": {
"name": "Basic",
"tier": "Regional"
},
For more information on the differences between basic and standard sku public ips, see Create,
change, or delete a public IP address:
Public IP allocation method and Idle timeout - You can change both of these options in the
template by altering the publicIPAllocationMethod property from Dynamic to Static or Static to
Dynamic. The idle timeout can be changed by altering the idleTimeoutInMinutes property to your
desired amount. The default is 4:
"resources": [
{
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2019-06-01",
"name": "[parameters('publicIPAddresses_myPubIP_name')]",
"location": "<target-region>",
"sku": {
"name": "Basic",
"tier": "Regional"
},
"properties": {
"provisioningState": "Succeeded",
"resourceGuid": "7549a8f1-80c2-481a-a073-018f5b0b69be",
"ipAddress": "52.177.6.204",
"publicIPAddressVersion": "IPv4",
"publicIPAllocationMethod": "Dynamic",
"idleTimeoutInMinutes": 4,
"ipTags": []
For more information on the allocation methods and the idle timeout values, see Create, change, or
delete a public IP address.
12. Click Save in the online editor.
13. Click BASICS > Subscription to choose the subscription where the target public IP will be deployed.
14. Click BASICS > Resource group to choose the resource group where the target public IP will be deployed.
You can click Create new to create a new resource group for the target public IP. Ensure the name isn't the
same as the source resource group of the existing source public IP.
15. Verify BASICS > Location is set to the target location where you wish for the public IP to be deployed.
16. Verify under SETTINGS that the name matches the name that you entered in the parameters editor above.
17. Check the box under TERMS AND CONDITIONS.
18. Click the Purchase button to deploy the target public IP.
Discard
If you wish to discard the target public IP, delete the resource group that contains the target public IP. To do so,
select the resource group from your dashboard in the portal and select Delete at the top of the overview page.
Clean up
To commit the changes and complete the move of the public IP, delete the source public IP or resource group. To
do so, select the public IP or resource group from your dashboard in the portal and select Delete at the top of each
page.
Next steps
In this tutorial, you moved an Azure Public IP from one region to another and cleaned up the source resources. To
learn more about moving resources between regions and disaster recovery in Azure, refer to:
Move resources to a new resource group or subscription
Move Azure VMs to another region
Use tags to organize your Azure resources
1/5/2020 • 11 minutes to read • Edit Online
You apply tags to your Azure resources to logically organize them into a taxonomy. Each tag consists of a name
and a value pair. For example, you can apply the name "Environment" and the value "Production" to all the
resources in production.
After you apply tags, you can retrieve all the resources in your subscription with that tag name and value. Tags
enable you to retrieve related resources from different resource groups. This approach is helpful when you need to
organize resources for billing or management.
Your taxonomy should consider a self-service metadata tagging strategy in addition to an autotagging strategy to
reduce the burden on users and increase accuracy.
NOTE
This article provides steps for how to delete personal data from the device or service and can be used to support your
obligations under the GDPR. If you’re looking for general info about GDPR, see the GDPR section of the Service Trust portal.
Limitations
The following limitations apply to tags:
Not all resource types support tags. To determine if you can apply a tag to a resource type, see Tag support
for Azure resources.
Each resource or resource group can have a maximum of 50 tag name/value pairs. If you need to apply
more tags than the maximum allowed number, use a JSON string for the tag value. The JSON string can
contain many values that are applied to a single tag name. A resource group can contain many resources
that each have 50 tag name/value pairs.
The tag name is limited to 512 characters, and the tag value is limited to 256 characters. For storage
accounts, the tag name is limited to 128 characters, and the tag value is limited to 256 characters.
Generalized VMs don't support tags.
Tags applied to the resource group are not inherited by the resources in that resource group.
Tags can't be applied to classic resources such as Cloud Services.
Tag names can't contain these characters: < , > , % , & , \ , ? , /
NOTE
Currently Azure DNS zones and Traffic Manger services also don't allow the use of spaces in the tag.
Required access
To apply tags to resources, the user must have write access to that resource type. To apply tags to all resource
types, use the Contributor role. To apply tags to only one resource type, use the contributor role for that resource.
For example, to apply tags to virtual machines, use the Virtual Machine Contributor.
Policies
You can use Azure Policy to enforce tagging rules and conventions. By creating a policy, you avoid the scenario of
resources being deployed to your subscription that don't comply with the expected tags for your organization.
Instead of manually applying tags or searching for resources that aren't compliant, you can create a policy that
automatically applies the needed tags during deployment. Tags can also now be applied to existing resources with
the new Modify effect and a remediation task. The following section shows example policies for tags.
Tags
Apply tag and its default value Appends a specified tag name and value, if that tag is not
provided. You specify the tag name and value to apply.
Billing Tags Policy Initiative Requires specified tag values for cost center and product
name. Uses built-in policies to apply and enforce required
tags. You specify the required values for the tags.
Enforce tag and its value Requires a specified tag name and value. You specify the tag
name and value to enforce.
Enforce tag and its value on resource groups Requires a tag and value on a resource group. You specify the
required tag name and value.
PowerShell
To see the existing tags for a resource group, use:
Name Value
---- -----
Dept IT
Environment Test
To see the existing tags for a resource that has a specified name and resource group, use:
Or, if you have the resource ID for a resource, you can pass that resource ID to get the tags.
To get resource groups that have a specific tag name and value, use:
To get resources that have a specific tag name and value, use:
(Get-AzResource -Tag @{ "Dept"="Finance"}).Name
Every time you apply tags to a resource or a resource group, you overwrite the existing tags on that resource or
resource group. Therefore, you must use a different approach based on whether the resource or resource group
has existing tags.
To add tags to a resource group without existing tags, use:
To add tags to a resource group that has existing tags, retrieve the existing tags, add the new tag, and reapply the
tags:
You may have more than one resource with the same name in a resource group. In that case, you can set each
resource with the following commands:
To apply all tags from a resource group to its resources, and not keep existing tags on the resources, use the
following script:
To apply all tags from a resource group to its resources, and keep existing tags on resources that aren't duplicates,
use the following script:
$group = Get-AzResourceGroup -Name examplegroup
if ($null -ne $group.Tags) {
$resources = Get-AzResource -ResourceGroupName $group.ResourceGroupName
foreach ($r in $resources)
{
$resourcetags = (Get-AzResource -ResourceId $r.ResourceId).Tags
if ($resourcetags)
{
foreach ($key in $group.Tags.Keys)
{
if (-not($resourcetags.ContainsKey($key)))
{
$resourcetags.Add($key, $group.Tags[$key])
}
}
Set-AzResource -Tag $resourcetags -ResourceId $r.ResourceId -Force
}
else
{
Set-AzResource -Tag $group.Tags -ResourceId $r.ResourceId -Force
}
}
}
Azure CLI
To see the existing tags for a resource group, use:
{
"Dept" : "IT",
"Environment" : "Test"
}
Or, to see the existing tags for a resource that has a specified name, type, and resource group, use:
When looping through a collection of resources, you might want to show the resource by resource ID. A complete
example is shown later in this article. To see the existing tags for a resource that has a specified resource ID, use:
To get resource groups that have a specific tag, use az group list :
When adding tags to a resource group or resource, you can either overwrite the existing tags or append new tags
to existing tags.
To overwrite the existing tags on a resource group, use:
To apply all tags from a resource group to its resources, and not keep existing tags on the resources, use the
following script:
To apply all tags from a resource group to its resources, and keep existing tags on resources, use the following
script:
If your tag names or values include spaces, you must take a couple of extra steps. The following example applies all
tags from a resource group to its resources when the tags may contain spaces.
jsontags=$(az group show --name examplegroup --query tags -o json)
tags=$(echo $jsontags | tr -d '{}"' | sed 's/: /=/g' | sed "s/\"/'/g" | sed 's/, /,/g' | sed 's/ *$//g' | sed
's/^ *//g')
origIFS=$IFS
IFS=','
read -a tagarr <<< "$tags"
resourceids=$(az resource list -g examplegroup --query [].id --output tsv)
for id in $resourceids
do
az resource tag --tags "${tagarr[@]}" --id $id
done
IFS=$origIFS
Templates
To tag a resource during deployment, add the tags element to the resource you're deploying. Provide the tag
name and value.
Apply a literal value to the tag name
The following example shows a storage account with two tags ( Dept and Environment ) that are set to literal
values:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"apiVersion": "2019-04-01",
"type": "Microsoft.Storage/storageAccounts",
"name": "[concat('storage', uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"tags": {
"Dept": "Finance",
"Environment": "Production"
},
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"properties": {}
}
]
}
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"apiVersion": "2019-04-01",
"type": "Microsoft.Storage/storageAccounts",
"name": "[concat('storage', uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"tags": {
"CostCenter": "{\"Dept\":\"Finance\",\"Environment\":\"Production\"}"
},
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"properties": {}
}
]
}
Apply tags from resource group
To apply tags from a resource group to a resource, use the resourceGroup function. When getting the tag value,
use the tags.[tag-name] syntax instead of the tags.tag-name syntax, because some characters aren't parsed
correctly in the dot notation.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"apiVersion": "2019-04-01",
"type": "Microsoft.Storage/storageAccounts",
"name": "[concat('storage', uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"tags": {
"Dept": "[resourceGroup().tags['Dept']]",
"Environment": "[resourceGroup().tags['Environment']]"
},
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"properties": {}
}
]
}
Portal
1. To view the tags for a resource or a resource group, look for existing tags in the overview. If you have not
previously applied tags, the list is empty.
3. After each name and value, select +. When done, select Assign.
To view all resources with a tag:
1. On the Azure portal menu, select All services. Select General, then Tags.
REST API
The Azure portal and PowerShell both use the Resource Manager REST API behind the scenes. If you need to
integrate tagging into another environment, you can get tags by using GET on the resource ID and update the set
of tags by using a PATCH call.
This article describes whether a resource type supports tags. The column labeled Supports tags indicates whether
the resource type has a property for the tag. The column labeled Tag in cost report indicates whether that
resource type passes the tag to the cost report. You can view costs by tags in the Cost Management cost analysis
and the Azure billing invoice and daily usage data.
To get the same data as a file of comma-separated values, download tag-support.csv.
Jump to a resource provider namespace:
Microsoft.AAD
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
DomainServices / oucontainer No No
Microsoft.Addons
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
supportProviders No No
Microsoft.ADHybridHealthService
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
aadsupportcases No No
addsservices No No
agents No No
anonymousapiusers No No
configuration No No
logs No No
reports No No
servicehealthmetrics No No
services No No
Microsoft.Advisor
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
configurations No No
generateRecommendations No No
metadata No No
recommendations No No
suppressions No No
Microsoft.AlertsManagement
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
alerts No No
alertsList No No
alertsMetaData No No
alertsSummary No No
alertsSummaryList No No
feedback No No
smartDetectorRuntimeEnvironments No No
smartGroups No No
Microsoft.AnalysisServices
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.ApiManagement
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
reportFeedback No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
validateServiceName No No
Microsoft.AppConfiguration
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
configurationStores / eventGridFilters No No
Microsoft.AppPlatform
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.Attestation
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
attestationProviders No No
Microsoft.Authorization
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
classicAdministrators No No
dataAliases No No
denyAssignments No No
elevateAccess No No
findOrphanRoleAssignments No No
locks No No
permissions No No
policyAssignments No No
policyDefinitions No No
policySetDefinitions No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
providerOperations No No
roleAssignments No No
roleDefinitions No No
Microsoft.Automation
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
automationAccounts / jobs No No
automationAccounts / No No
softwareUpdateConfigurations
automationAccounts / webhooks No No
Microsoft.Azconfig
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
configurationStores / eventGridFilters No No
Microsoft.Azure.Geneva
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
environments No No
environments / accounts No No
Microsoft.AzureActiveDirectory
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
b2cDirectories Yes No
b2ctenants No No
Microsoft.AzureData
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
sqlServerRegistrations / sqlServers No No
Microsoft.AzureStack
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
registrations / customerSubscriptions No No
registrations / products No No
verificationKeys No No
Microsoft.Batch
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.Billing
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
billingAccounts No No
billingAccounts / agreements No No
billingAccounts / billingPermissions No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
billingAccounts / billingProfiles No No
billingAccounts / billingProfiles / No No
billingPermissions
billingAccounts / billingProfiles / No No
billingRoleAssignments
billingAccounts / billingProfiles / No No
billingRoleDefinitions
billingAccounts / billingProfiles / No No
billingSubscriptions
billingAccounts / billingProfiles / No No
createBillingRoleAssignment
billingAccounts / billingProfiles / No No
customers
billingAccounts / billingProfiles / No No
invoices
billingAccounts / billingProfiles / No No
invoices / pricesheet
billingAccounts / billingProfiles / No No
invoiceSections
billingAccounts / billingProfiles / No No
invoiceSections / billingPermissions
billingAccounts / billingProfiles / No No
invoiceSections /
billingRoleAssignments
billingAccounts / billingProfiles / No No
invoiceSections / billingRoleDefinitions
billingAccounts / billingProfiles / No No
invoiceSections / billingSubscriptions
billingAccounts / billingProfiles / No No
invoiceSections /
createBillingRoleAssignment
billingAccounts / billingProfiles / No No
invoiceSections / initiateTransfer
billingAccounts / billingProfiles / No No
invoiceSections / products
billingAccounts / billingProfiles / No No
invoiceSections / products / transfer
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
billingAccounts / billingProfiles / No No
invoiceSections / products /
updateAutoRenew
billingAccounts / billingProfiles / No No
invoiceSections / transactions
billingAccounts / billingProfiles / No No
invoiceSections / transfers
billingAccounts / BillingProfiles / No No
patchOperations
billingAccounts / billingProfiles / No No
paymentMethods
billingAccounts / billingProfiles / No No
pricesheet
billingAccounts / billingProfiles / No No
pricesheetDownloadOperations
billingAccounts / billingProfiles / No No
products
billingAccounts / billingProfiles / No No
transactions
billingAccounts / No No
billingRoleAssignments
billingAccounts / billingRoleDefinitions No No
billingAccounts / billingSubscriptions No No
billingAccounts / billingSubscriptions / No No
invoices
billingAccounts / No No
createBillingRoleAssignment
billingAccounts / No No
createInvoiceSectionOperations
billingAccounts / customers No No
billingAccounts / customers / No No
billingPermissions
billingAccounts / customers / No No
billingSubscriptions
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
billingAccounts / customers / No No
initiateTransfer
billingAccounts / customers / No No
transactions
billingAccounts / departments No No
billingAccounts / enrollmentAccounts No No
billingAccounts / invoices No No
billingAccounts / invoiceSections No No
billingAccounts / invoiceSections / No No
billingSubscriptionMoveOperations
billingAccounts / invoiceSections / No No
billingSubscriptions
billingAccounts / invoiceSections / No No
billingSubscriptions / transfer
billingAccounts / invoiceSections / No No
elevate
billingAccounts / invoiceSections / No No
initiateTransfer
billingAccounts / invoiceSections / No No
patchOperations
billingAccounts / invoiceSections / No No
productMoveOperations
billingAccounts / invoiceSections / No No
products
billingAccounts / invoiceSections / No No
products / transfer
billingAccounts / invoiceSections / No No
products / updateAutoRenew
billingAccounts / invoiceSections / No No
transactions
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
billingAccounts / invoiceSections / No No
transfers
billingAccounts / lineOfCredit No No
billingAccounts / patchOperations No No
billingAccounts / paymentMethods No No
billingAccounts / products No No
billingAccounts / transactions No No
billingPeriods No No
billingPermissions No No
billingProperty No No
billingRoleAssignments No No
billingRoleDefinitions No No
createBillingRoleAssignment No No
departments No No
enrollmentAccounts No No
invoices No No
transfers No No
transfers / acceptTransfer No No
transfers / declineTransfer No No
transfers / operationStatus No No
transfers / validateTransfer No No
validateAddress No No
Microsoft.BingMaps
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
updateCommunicationPreference No No
Microsoft.Blockchain
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.Blueprint
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
blueprintAssignments No No
blueprintAssignments / No No
assignmentOperations
blueprintAssignments / operations No No
blueprints No No
blueprints / artifacts No No
blueprints / versions No No
Microsoft.BotService
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
botServices / channels No No
botServices / connections No No
languages No No
templates No No
Microsoft.Cache
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
RedisConfigDefinition No No
Microsoft.Capacity
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
appliedReservations No No
calculateExchange No No
calculatePrice No No
calculatePurchasePrice No No
catalogs No No
commercialReservationOrders No No
exchange No No
placePurchaseOrder No No
reservationOrders No No
reservationOrders / calculateRefund No No
reservationOrders / merge No No
reservationOrders / reservations No No
reservationOrders / reservations / No No
revisions
reservationOrders / return No No
reservationOrders / split No No
reservationOrders / swap No No
reservations No No
resources No No
validateReservationOrder No No
Microsoft.Cdn
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
CdnWebApplicationFirewallManagedRul No No
eSets
edgenodes No No
validateProbe No No
Microsoft.CertificateRegistration
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
certificateOrders / certificates No No
validateCertificateRegistrationInformati No No
on
Microsoft.ClassicCompute
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
capabilities No No
domainNames No No
domainNames / capabilities No No
domainNames / internalLoadBalancers No No
domainNames / serviceCertificates No No
domainNames / slots No No
moveSubscriptionResources No No
operatingSystemFamilies No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
operatingSystems No No
quotas No No
resourceTypes No No
validateSubscriptionMoveAvailability No No
virtualMachines No No
virtualMachines / diagnosticSettings No No
virtualMachines / metricDefinitions No No
virtualMachines / metrics No No
Microsoft.ClassicInfrastructureMigrate
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
classicInfrastructureResources No No
Microsoft.ClassicNetwork
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
capabilities No No
expressRouteCrossConnections No No
expressRouteCrossConnections / No No
peerings
gatewaySupportedDevices No No
networkSecurityGroups No No
quotas No No
reservedIps No No
virtualNetworks No No
virtualNetworks / No No
remoteVirtualNetworkPeeringProxies
virtualNetworks / No No
virtualNetworkPeerings
Microsoft.ClassicStorage
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
capabilities No No
disks No No
images No No
osImages No No
osPlatformImages No No
publicImages No No
quotas No No
storageAccounts No No
storageAccounts / blobServices No No
storageAccounts / fileServices No No
storageAccounts / metricDefinitions No No
storageAccounts / metrics No No
storageAccounts / queueServices No No
storageAccounts / services No No
storageAccounts / services / No No
diagnosticSettings
storageAccounts / services / No No
metricDefinitions
storageAccounts / tableServices No No
storageAccounts / vmImages No No
vmImages No No
Microsoft.CognitiveServices
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
RateCard No No
UsageAggregates No No
Microsoft.Compute
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
galleries / applications No No
galleries / images No No
restorePointCollections / restorePoints No No
sharedVMImages / versions No No
virtualMachines / metricDefinitions No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
virtualMachineScaleSets / extensions No No
virtualMachineScaleSets / No No
networkInterfaces
virtualMachineScaleSets / No No
publicIPAddresses
virtualMachineScaleSets / No No
virtualMachines
virtualMachineScaleSets / No No
virtualMachines / networkInterfaces
Microsoft.Consumption
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
AggregatedCost No No
Balances No No
Budgets No No
Charges No No
CostTags No No
credits No No
events No No
Forecasts No No
lots No No
Marketplaces No No
Pricesheets No No
products No No
ReservationDetails No No
ReservationRecommendations No No
ReservationSummaries No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
ReservationTransactions No No
Tags No No
tenants No No
Terms No No
UsageDetails No No
Microsoft.ContainerInstance
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
serviceAssociationLinks No No
Microsoft.ContainerRegistry
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
registries / builds No No
registries / eventGridFilters No No
registries / generateCredentials No No
registries / getBuildSourceUploadUrl No No
registries / GetCredentials No No
registries / importImage No No
registries / queueBuild No No
registries / regenerateCredential No No
registries / regenerateCredentials No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
registries / runs No No
registries / scheduleRun No No
registries / scopeMaps No No
registries / tokens No No
registries / updatePolicies No No
registries / webhooks / No No
getCallbackConfig
Microsoft.ContainerService
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.CortanaAnalytics
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.CostManagement
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Alerts No No
BillingAccounts No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Budgets No No
CloudConnectors No No
Departments No No
Dimensions No No
EnrollmentAccounts No No
Exports No No
ExternalBillingAccounts No No
ExternalBillingAccounts / Alerts No No
ExternalBillingAccounts / Dimensions No No
ExternalBillingAccounts / Forecast No No
ExternalBillingAccounts / Query No No
ExternalSubscriptions No No
ExternalSubscriptions / Alerts No No
ExternalSubscriptions / Dimensions No No
ExternalSubscriptions / Forecast No No
ExternalSubscriptions / Query No No
Forecast No No
Query No No
register No No
Reportconfigs No No
Reports No No
Settings No No
showbackRules No No
Views No No
Microsoft.CustomerLockbox
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
requests No No
Microsoft.CustomProviders
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
associations No No
Microsoft.DataBox
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.DataBoxEdge
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.Databricks
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
workspaces Yes No
workspaces / virtualNetworkPeerings No No
Microsoft.DataCatalog
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
datacatalogs / datasources No No
Microsoft.DataFactory
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
dataFactories Yes No
dataFactories / diagnosticSettings No No
dataFactories / metricDefinitions No No
dataFactorySchema No No
factories Yes No
factories / integrationRuntimes No No
Microsoft.DataLakeAnalytics
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
accounts / dataLakeStoreAccounts No No
accounts / storageAccounts No No
accounts / storageAccounts / No No
containers
accounts / transferAnalyticsUnits No No
Microsoft.DataLakeStore
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
accounts / eventGridFilters No No
accounts / firewallRules No No
Microsoft.DataMigration
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
services No No
services / projects No No
Microsoft.DataShare
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
accounts / shares No No
accounts / shares / No No
providersharesubscriptions
accounts / shares / No No
synchronizationSettings
accounts / sharesubscriptions No No
accounts / sharesubscriptions / No No
consumerSourceDataSets
accounts / sharesubscriptions / No No
datasetmappings
Microsoft.DBforMariaDB
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
servers / advisors No No
servers / No No
privateEndpointConnectionProxies
servers / privateEndpointConnections No No
servers / privateLinkResources No No
servers / queryTexts No No
servers / recoverableServers No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
servers / topQueryStatistics No No
servers / virtualNetworkRules No No
servers / waitStatistics No No
Microsoft.DBforMySQL
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
servers / advisors No No
servers / No No
privateEndpointConnectionProxies
servers / privateEndpointConnections No No
servers / privateLinkResources No No
servers / queryTexts No No
servers / recoverableServers No No
servers / topQueryStatistics No No
servers / virtualNetworkRules No No
servers / waitStatistics No No
Microsoft.DBforPostgreSQL
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
servers / advisors No No
servers / keys No No
servers / No No
privateEndpointConnectionProxies
servers / privateEndpointConnections No No
servers / privateLinkResources No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
servers / queryTexts No No
servers / recoverableServers No No
servers / topQueryStatistics No No
servers / virtualNetworkRules No No
servers / waitStatistics No No
Microsoft.DeploymentManager
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.DesktopVirtualization
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
applicationgroups / applications No No
applicationgroups / desktops No No
applicationgroups / startmenuitems No No
hostpools / sessionhosts No No
hostpools / usersessions No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.Devices
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
IotHubs / eventGridFilters No No
usages No No
Microsoft.DevOps
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.DevSpaces
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.DevTestLab
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.DocumentDB
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
databaseAccountNames No No
Microsoft.DomainRegistration
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
domains / domainOwnershipIdentifiers No No
generateSsoRequest No No
topLevelDomains No No
validateDomainRegistrationInformation No No
Microsoft.DynamicsLcs
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
lcsprojects No No
lcsprojects / clouddeployments No No
lcsprojects / connectors No No
Microsoft.EnterpriseKnowledgeGraph
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.EventGrid
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
domains / topics No No
eventSubscriptions No No
extensionTopics No No
topicTypes No No
Microsoft.EventHub
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
namespaces / authorizationrules No No
namespaces / disasterrecoveryconfigs No No
namespaces / eventhubs No No
namespaces / eventhubs / No No
authorizationrules
namespaces / eventhubs / No No
consumergroups
namespaces / networkrulesets No No
Microsoft.Features
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
features No No
providers No No
Microsoft.Gallery
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
enroll No No
galleryitems No No
generateartifactaccessuri No No
myareas No No
myareas / areas No No
myareas / galleryitems No No
register No No
resources No No
retrieveresourcesbyid No No
Microsoft.Genomics
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.GuestConfiguration
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
configurationProfileAssignments No No
guestConfigurationAssignments No No
software No No
softwareUpdateProfile No No
softwareUpdates No No
Microsoft.HanaOnAzure
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.HardwareSecurityModules
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.HDInsight
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
clusters / applications No No
Microsoft.HealthcareApis
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.HybridCompute
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.HybridData
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.Hydra
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.ImportExport
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.Intune
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
diagnosticSettings No No
diagnosticSettingsCategories No No
Microsoft.IoTCentral
Microsoft.IoTCentral
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
appTemplates No No
Microsoft.IoTSpaces
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.KeyVault
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
deletedVaults No No
vaults / accessPolicies No No
vaults / eventGridFilters No No
vaults / secrets No No
Microsoft.Kusto
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
clusters / No No
attacheddatabaseconfigurations
clusters / databases No No
clusters / databases / No No
eventhubconnections
clusters / sharedidentities No No
Microsoft.LabServices
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
users No No
Microsoft.Logic
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.MachineLearning
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.MachineLearningServices
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
workspaces / computes No No
workspaces / eventGridFilters No No
Microsoft.ManagedIdentity
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Identities No No
marketplaceRegistrationDefinitions No No
registrationAssignments No No
registrationDefinitions No No
Microsoft.Management
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
getEntities No No
managementGroups No No
resources No No
startTenantBackfill No No
tenantBackfillStatus No No
Microsoft.Maps
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
accounts / eventGridFilters No No
Microsoft.Marketplace
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
offers No No
offerTypes No No
offerTypes / publishers No No
privategalleryitems No No
products No No
publishers No No
publishers / offers No No
Microsoft.MarketplaceApps
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
updateCommunicationPreference No No
Microsoft.MarketplaceOrdering
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
agreements No No
offertypes No No
Microsoft.Media
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
mediaservices / accountFilters No No
mediaservices / assets No No
mediaservices / contentKeyPolicies No No
mediaservices / eventGridFilters No No
mediaservices / liveEventOperations No No
mediaservices / liveOutputOperations No No
mediaservices / mediaGraphs No No
mediaservices / No No
streamingEndpointOperations
mediaservices / streamingLocators No No
mediaservices / streamingPolicies No No
mediaservices / transforms No No
Microsoft.Microservices4Spring
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.Migrate
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.MixedReality
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
netAppAccounts Yes No
Microsoft.Network
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
azureFirewallFqdnTags No No
azureFirewalls Yes No
bgpServiceCommunities No No
dnsOperationStatuses No No
dnszones / A No No
dnszones / AAAA No No
dnszones / all No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
dnszones / CAA No No
dnszones / CNAME No No
dnszones / MX No No
dnszones / NS No No
dnszones / PTR No No
dnszones / recordsets No No
dnszones / SOA No No
dnszones / SRV No No
dnszones / TXT No No
expressRouteServiceProviders No No
getDnsResourceReference No No
internalNotify No No
loadBalancers Yes No
networkWatchers Yes No
privateDnsOperationStatuses No No
privateDnsZones / A No No
privateDnsZones / AAAA No No
privateDnsZones / all No No
privateDnsZones / CNAME No No
privateDnsZones / MX No No
privateDnsZones / PTR No No
privateDnsZones / SOA No No
privateDnsZones / SRV No No
privateDnsZones / TXT No No
trafficManagerGeographicHierarchies No No
trafficmanagerprofiles/heatMaps No No
trafficManagerUserMetricsKeys No No
vpnGateways Yes No
NOTE
For Azure Front Door Service, you can apply tags when creating the resource, but updating or adding tags is not currently
supported.
Microsoft.NotificationHubs
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
namespaces Yes No
Microsoft.ObjectStore
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.OffAzure
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.OperationalInsights
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
devices No No
linkTargets No No
storageInsightConfigs No No
workspaces / dataSources No No
workspaces / linkedServices No No
workspaces / query No No
Microsoft.OperationsManagement
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
managementassociations No No
Microsoft.Peering
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
legacyPeerings No No
peerAsns No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
peeringServiceProviders No No
Microsoft.PolicyInsights
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
policyEvents No No
policyMetadata No No
policyStates No No
policyTrackedResources No No
remediations No No
Microsoft.Portal
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
consoles No No
userSettings No No
Microsoft.PowerBI
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.PowerBIDedicated
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.RecoveryServices
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
backupProtectedItems No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.Relay
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
namespaces / authorizationrules No No
namespaces / hybridconnections No No
namespaces / hybridconnections / No No
authorizationrules
namespaces / wcfrelays No No
namespaces / wcfrelays / No No
authorizationrules
Microsoft.RemoteApp
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
accounts No No
collections / applications No No
collections / securityprincipals No No
templateImages No No
Microsoft.ResourceGraph
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
resourceChangeDetails No No
resourceChanges No No
resources No No
resourcesHistory No No
subscriptionsStatus No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.ResourceHealth
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
availabilityStatuses No No
childAvailabilityStatuses No No
childResources No No
events No No
impactedResources No No
metadata No No
notifications No No
Microsoft.Resources
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
deployments Yes No
deployments / operations No No
deploymentScripts / logs No No
links No No
notifyResourceJobs No No
providers No No
resourceGroups Yes No
subscriptions No No
tenants No No
Microsoft.SaaS
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
saasresources No No
Microsoft.Scheduler
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.Search
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
resourceHealthMetadata No No
Microsoft.Security
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
adaptiveNetworkHardenings No No
advancedThreatProtectionSettings No No
alerts No No
allowedConnections No No
applicationWhitelistings No No
assessmentMetadata No No
assessments No No
autoDismissAlertsRules No No
AutoProvisioningSettings No No
Compliances No No
dataCollectionAgents No No
deviceSecurityGroups No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
discoveredSecuritySolutions No No
externalSecuritySolutions No No
InformationProtectionPolicies No No
iotSecuritySolutions / analyticsModels No No
iotSecuritySolutions / analyticsModels / No No
aggregatedAlerts
iotSecuritySolutions / analyticsModels / No No
aggregatedRecommendations
jitNetworkAccessPolicies No No
networkData No No
policies No No
pricings No No
regulatoryComplianceStandards No No
regulatoryComplianceStandards / No No
regulatoryComplianceControls
regulatoryComplianceStandards / No No
regulatoryComplianceControls /
regulatoryComplianceAssessments
securityContacts No No
securitySolutions No No
securitySolutionsReferenceData No No
securityStatuses No No
securityStatusesSummaries No No
serverVulnerabilityAssessments No No
settings No No
subAssessments No No
tasks No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
topologies No No
workspaceSettings No No
Microsoft.SecurityGraph
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
diagnosticSettings No No
diagnosticSettingsCategories No No
Microsoft.SecurityInsights
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
aggregations No No
alertRules No No
alertRuleTemplates No No
bookmarks No No
cases No No
dataConnectors No No
entities No No
entityQueries No No
officeConsents No No
settings No No
Microsoft.ServiceBus
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
namespaces Yes No
namespaces / authorizationrules No No
namespaces / disasterrecoveryconfigs No No
namespaces / eventgridfilters No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
namespaces / networkrulesets No No
namespaces / queues No No
namespaces / queues / No No
authorizationrules
namespaces / topics No No
namespaces / topics / No No
authorizationrules
premiumMessagingRegions No No
Microsoft.ServiceFabric
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
clusters / applications No No
edgeclusters / applications No No
secretstores / certificates No No
secretstores / secrets No No
Microsoft.ServiceFabricMesh
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.Services
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
providerRegistrations No No
providerRegistrations / No No
resourceTypeRegistrations
Microsoft.SignalRService
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
SignalR / eventGridFilters No No
Microsoft.SiteRecovery
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.SoftwarePlan
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
hybridUseBenefits No No
Microsoft.Solutions
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.SQL
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
managedInstances / databases No No
managedInstances / databases / No No
backupShortTermRetentionPolicies
managedInstances / databases / No No
schemas / tables / columns /
sensitivityLabels
managedInstances / databases / No No
vulnerabilityAssessments
managedInstances / databases / No No
vulnerabilityAssessments / rules /
baselines
managedInstances / No No
encryptionProtector
managedInstances / keys No No
managedInstances / No No
restorableDroppedDatabases /
backupShortTermRetentionPolicies
managedInstances / No No
vulnerabilityAssessments
servers / administrators No No
servers / communicationLinks No No
servers / encryptionProtector No No
servers / firewallRules No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
servers / keys No No
servers / restorableDroppedDatabases No No
servers / serviceobjectives No No
servers / tdeCertificates No No
virtualClusters No No
NOTE
The Master database doesn't support tags, but other databases, including Azure SQL Data Warehouse databases, support
tags. Azure SQL Data Warehouse databases must be in Active (not Paused) state.
Microsoft.SqlVirtualMachine
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
SqlVirtualMachineGroups / No No
AvailabilityGroupListeners
Microsoft.Storage
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
storageAccounts / blobServices No No
storageAccounts / fileServices No No
storageAccounts / queueServices No No
storageAccounts / services No No
storageAccounts / services / No No
metricDefinitions
storageAccounts / tableServices No No
usages No No
Microsoft.StorageCache
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
caches / storageTargets No No
usageModels No No
Microsoft.StorageReplication
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
replicationGroups No No
Microsoft.StorageSync
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
storageSyncServices / registeredServers No No
storageSyncServices / syncGroups No No
storageSyncServices / syncGroups / No No
cloudEndpoints
storageSyncServices / syncGroups / No No
serverEndpoints
storageSyncServices / workflows No No
Microsoft.StorageSyncDev
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
storageSyncServices / registeredServers No No
storageSyncServices / syncGroups No No
storageSyncServices / syncGroups / No No
cloudEndpoints
storageSyncServices / syncGroups / No No
serverEndpoints
storageSyncServices / workflows No No
Microsoft.StorageSyncInt
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
storageSyncServices / registeredServers No No
storageSyncServices / syncGroups No No
storageSyncServices / syncGroups / No No
cloudEndpoints
storageSyncServices / syncGroups / No No
serverEndpoints
storageSyncServices / workflows No No
Microsoft.StorSimple
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.StreamAnalytics
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
NOTE
You can't add a tag when streamingjobs is running. Stop the resource to add a tag.
Microsoft.Subscription
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
cancel No No
CreateSubscription No No
enable No No
rename No No
SubscriptionDefinitions No No
SubscriptionOperations No No
Microsoft.TimeSeriesInsights
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
environments Yes No
environments / accessPolicies No No
Microsoft.VMwareCloudSimple
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.Web
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
apiManagementAccounts No No
apiManagementAccounts / apiAcls No No
apiManagementAccounts / apis No No
apiManagementAccounts / apis / No No
apiAcls
apiManagementAccounts / apis / No No
connectionAcls
apiManagementAccounts / apis / No No
connections
apiManagementAccounts / apis / No No
connections / connectionAcls
apiManagementAccounts / apis / No No
localizedDefinitions
apiManagementAccounts / No No
connectionAcls
apiManagementAccounts / connections No No
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
billingMeters No No
deletedSites No No
functions No No
hostingEnvironments / multiRolePools No No
hostingEnvironments / workerPools No No
publishingUsers No No
recommendations No No
resourceHealthMetadata No No
runtimes No No
serverFarms / eventGridFilters No No
sites / config No No
sites / eventGridFilters No No
sites / hostNameBindings No No
sites / networkConfig No No
sourceControls No No
validate No No
verifyHostingEnvironmentVnet No No
Microsoft.WindowsDefenderATP
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
diagnosticSettings No No
diagnosticSettingsCategories No No
Microsoft.WindowsIoT
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
Microsoft.WorkloadMonitor
RESOURCE TYPE SUPPORTS TAGS TAG IN COST REPORT
components No No
componentsSummary No No
monitorInstances No No
monitorInstancesSummary No No
monitors No No
notificationSettings No No
Next steps
To learn how to apply tags to resources, see Use tags to organize your Azure resources.
Manage Azure Resource Manager resource groups
by using the Azure portal
12/23/2019 • 3 minutes to read • Edit Online
Learn how to use the Azure portal with Azure Resource Manager to manage your Azure resource groups. For
managing Azure resources, see Manage Azure resources by using the Azure portal.
Other articles about managing resource groups:
Manage Azure resource groups by using Azure CLI
Manage Azure resource groups by using Azure PowerShell
NOTE
This article provides steps for how to delete personal data from the device or service and can be used to support your
obligations under the GDPR. If you’re looking for general info about GDPR, see the GDPR section of the Service Trust portal.
3. To customize the information displayed for the resource groups, select Edit columns. The following
screenshot shows the addition columns you could add to the display:
Next steps
To learn Azure Resource Manager, see Azure Resource Manager overview.
To learn the Resource Manager template syntax, see Understand the structure and syntax of Azure Resource
Manager templates.
To learn how to develop templates, see the step-by-step tutorials.
To view the Azure Resource Manager template schemas, see template reference.
Manage Azure Resource Manager resource groups
by using Azure CLI
12/23/2019 • 4 minutes to read • Edit Online
Learn how to use Azure CLI with Azure Resource Manager to manage your Azure resource groups. For managing
Azure resources, see Manage Azure resources by using Azure CLI.
Other articles about managing resource groups:
Manage Azure resource groups by using the Azure portal
Manage Azure resource groups by using Azure PowerShell
az group list
For more information about how Azure Resource Manager orders the deletion of resources, see Azure Resource
Manager resource group deletion.
For more information, see Lock resources with Azure Resource Manager.
Tag resource groups
You can apply tags to resource groups and resources to logically organize your assets. For information, see Using
tags to organize your Azure resources.
The script displays the template on the console. Copy the JSON, and save as a file.
The export template feature doesn't support exporting Azure Data Factory resources. To learn about how you can
export Data Factory resources, see Copy or clone a data factory in Azure Data Factory.
To export resources created through classic deployment model, you must migrate them to the Resource Manager
deployment model.
For more information, see Single and multi-resource export to template in Azure portal .
Next steps
To learn Azure Resource Manager, see Azure Resource Manager overview.
To learn the Resource Manager template syntax, see Understand the structure and syntax of Azure Resource
Manager templates.
To learn how to develop templates, see the step-by-step tutorials.
To view the Azure Resource Manager template schemas, see template reference.
Manage Azure Resource Manager resource groups
by using Azure PowerShell
12/23/2019 • 5 minutes to read • Edit Online
Learn how to use Azure PowerShell with Azure Resource Manager to manage your Azure resource groups. For
managing Azure resources, see Manage Azure resources by using Azure PowerShell.
Other articles about managing resource groups:
Manage Azure resource groups by using the Azure portal
Manage Azure resource groups by using Azure CLI
Get-AzResourceGroup
For more information about how Azure Resource Manager orders the deletion of resources, see Azure Resource
Manager resource group deletion.
For more information, see Lock resources with Azure Resource Manager.
$resource = Get-AzResource `
-ResourceGroupName <resource-group-name> `
-ResourceName <resource-name> `
-ResourceType <resource-type>
Export-AzResourceGroup `
-ResourceGroupName <resource-group-name> `
-Resource $resource.ResourceId
To export more than one resource, pass the resource IDs in an array.
Export-AzResourceGroup `
-ResourceGroupName <resource-group-name> `
-Resource @($resource1.ResourceId, $resource2.ResourceId)
When exporting the template, you can specify whether parameters are used in the template. By default, parameters
for resource names are included but they don't have a default value. You must pass that parameter value during
deployment.
"parameters": {
"serverfarms_demoHostPlan_name": {
"defaultValue": null,
"type": "String"
},
"sites_webSite3bwt23ktvdo36_name": {
"defaultValue": null,
"type": "String"
}
}
If you use the -IncludeParameterDefaultValue parameter when exporting the template, the template parameter
includes a default value that is set to the current value. You can either use that default value or overwrite the default
value by passing in a different value.
"parameters": {
"serverfarms_demoHostPlan_name": {
"defaultValue": "demoHostPlan",
"type": "String"
},
"sites_webSite3bwt23ktvdo36_name": {
"defaultValue": "webSite3bwt23ktvdo36",
"type": "String"
}
}
If you use the -SkipResourceNameParameterization parameter when exporting the template, parameters for resource
names aren't included in the template. Instead, the resource name is set directly on the resource to its current value.
You can't customize the name during deployment.
"resources": [
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2016-09-01",
"name": "demoHostPlan",
...
}
]
The export template feature doesn't support exporting Azure Data Factory resources. To learn about how you can
export Data Factory resources, see Copy or clone a data factory in Azure Data Factory.
To export resources created through classic deployment model, you must migrate them to the Resource Manager
deployment model.
For more information, see Single and multi-resource export to template in Azure portal .
Next steps
To learn Azure Resource Manager, see Azure Resource Manager overview.
To learn the Resource Manager template syntax, see Understand the structure and syntax of Azure Resource
Manager templates.
To learn how to develop templates, see the step-by-step tutorials.
To view the Azure Resource Manager template schemas, see template reference.
Manage Azure resources by using the Azure portal
12/23/2019 • 3 minutes to read • Edit Online
Learn how to use the Azure portal with Azure Resource Manager to manage your Azure resources. For managing
resource groups, see Manage Azure resource groups by using the Azure portal.
Other articles about managing resources:
Manage Azure resources by using Azure CLI
Manage Azure resources by using Azure PowerShell
NOTE
This article provides steps for how to delete personal data from the device or service and can be used to support your
obligations under the GDPR. If you’re looking for general info about GDPR, see the GDPR section of the Service Trust portal.
Open resources
Azure resources are organized by Azure services and by resource groups. The following procedures shows how to
open a storage account called mystorage0207. The virtual machine resides in a resource group called
mystorage0207rg.
To open a resource by the service type:
1. Sign in to the Azure portal.
2. In the left pane, select the Azure service. In this case, Storage accounts. If you don't see the service listed,
select All services, and then select the service type.
Manage resources
When viewing a resource in the portal, you see the options for managing that particular resource.
The screenshot shows the management options for an Azure virtual machine. You can perform operations such as
starting, restarting, and stopping a virtual machine.
Delete resources
1. Open the resource in the portal. For the steps, see Open resources.
2. Select Delete. The following screenshot shows the management options for a virtual machine.
3. Type the name of the resource to confirm the deletion, and then select Delete.
For more information about how Azure Resource Manager orders the deletion of resources, see Azure Resource
Manager resource group deletion.
Move resources
1. Open the resource in the portal. For the steps, see Open resources.
2. Select Move. The following screenshot shows the management options for a storage account.
3. Select Move to another resource group or Move to another subscription depending on your needs.
For more information, see Move resources to new resource group or subscription.
Lock resources
Locking prevents other users in your organization from accidentally deleting or modifying critical resources, such
as Azure subscription, resource group, or resource.
1. Open the resource in the portal. For the steps, see Open resources.
2. Select Locks. The following screenshot shows the management options for a storage account.
Tag resources
Tagging helps organizing your resource group and resources logically.
1. Open the resource in the portal. For the steps, see Open resources.
2. Select Tags. The following screenshot shows the management options for a storage account.
3. Specify the tag properties, and then select Save.
For information, see Using tags to organize your Azure resources.
Monitor resources
When you open a resource, the portal presents default graphs and tables for monitoring that resource type. The
following screenshot shows the graphs for a virtual machine:
You can select the pin icon on the upper right corner of the graphs to pin the graph to the dashboard. To learn
about working with dashboards, see Creating and sharing dashboards in the Azure portal.
Next steps
To learn Azure Resource Manager, see Azure Resource Manager overview.
To learn the Resource Manager template syntax, see Understand the structure and syntax of Azure Resource
Manager templates.
To learn how to develop templates, see the step-by-step tutorials.
To view the Azure Resource Manager template schemas, see template reference.
Manage Azure resources by using Azure CLI
12/23/2019 • 3 minutes to read • Edit Online
Learn how to use Azure CLI with Azure Resource Manager to manage your Azure resources. For managing
resource groups, see Manage Azure resource groups by using Azure CLI.
Other articles about managing resources:
Manage Azure resources by using the Azure portal
Manage Azure resources by using Azure PowerShell
Deploy a template
The following script creates deploy a Quickstart template to create a storage account. For more information, see
Quickstart: Create Azure Resource Manager templates by using Visual Studio Code.
For more information, see Deploy resources with Resource Manager templates and Azure CLI.
Delete resources
The following script shows how to delete a storage account.
For more information about how Azure Resource Manager orders the deletion of resources, see Azure Resource
Manager resource group deletion.
Move resources
The following script shows how to remove a storage account from one resource group to another resource group.
For more information, see Move resources to new resource group or subscription.
Lock resources
Locking prevents other users in your organization from accidentally deleting or modifying critical resources, such
as Azure subscription, resource group, or resource.
The following script locks a storage account so the account can't be deleted.
For more information, see Lock resources with Azure Resource Manager.
Tag resources
Tagging helps organizing your resource group and resources logically. For information, see Using tags to organize
your Azure resources.
Next steps
To learn Azure Resource Manager, see Azure Resource Manager overview.
To learn the Resource Manager template syntax, see Understand the structure and syntax of Azure Resource
Manager templates.
To learn how to develop templates, see the step-by-step tutorials.
To view the Azure Resource Manager template schemas, see template reference.
Manage Azure resources by using Azure PowerShell
12/23/2019 • 3 minutes to read • Edit Online
Learn how to use Azure PowerShell with Azure Resource Manager to manage your Azure resources. For
managing resource groups, see Manage Azure resource groups by using Azure PowerShell.
Other articles about managing resources:
Manage Azure resources by using the Azure portal
Manage Azure resources by using Azure CLI
Deploy a template
The following script creates deploy a Quickstart template to create a storage account. For more information, see
Quickstart: Create Azure Resource Manager templates by using Visual Studio Code.
For more information, see Deploy resources with Resource Manager templates and Azure PowerShell.
Delete resources
The following script shows how to delete a storage account.
For more information about how Azure Resource Manager orders the deletion of resources, see Azure Resource
Manager resource group deletion.
Move resources
The following script shows how to remove a storage account from one resource group to another resource group.
For more information, see Move resources to new resource group or subscription.
Lock resources
Locking prevents other users in your organization from accidentally deleting or modifying critical resources, such
as Azure subscription, resource group, or resource.
The following script locks a storage account so the account can't be deleted.
For more information, see Lock resources with Azure Resource Manager.
Tag resources
Tagging helps organizing your resource group and resources logically. For information, see Using tags to organize
your Azure resources.
Next steps
To learn Azure Resource Manager, see Azure Resource Manager overview.
To learn the Resource Manager template syntax, see Understand the structure and syntax of Azure Resource
Manager templates.
To learn how to develop templates, see the step-by-step tutorials.
To view the Azure Resource Manager template schemas, see template reference.
Azure Resource Manager resource group and
resource deletion
12/23/2019 • 2 minutes to read • Edit Online
This article shows how to delete resource groups and resources. It describes how Azure Resource Manager
orders the deletion of resources when you delete a resource group.
After deletion
Resource Manager issues a GET call on each resource that it tried to delete. The response of this GET call is
expected to be 404. When Resource Manager gets a 404, it considers the deletion to have completed successfully.
Resource Manager removes the resource from its cache.
However, if the GET call on the resource returns a 200 or 201, Resource Manager recreates the resource.
If the GET operation returns an error, Resource Manager retries the GET for the following error code:
Less than 100
408
429
Greater than 500
For other error codes, Resource Manager fails the deletion of the resource.
Delete resource group
Use one of the following methods to delete the resource group.
PowerShell
Azure CLI
Portal
Delete resource
Use one of the following methods to delete a resource.
PowerShell
Azure CLI
Portal
Remove-AzResource `
-ResourceGroupName ExampleResourceGroup `
-ResourceName ExampleVM `
-ResourceType Microsoft.Compute/virtualMachines
Next steps
To understand Resource Manager concepts, see Azure Resource Manager overview.
For deletion commands, see PowerShell, Azure CLI, and REST API.
Lock resources to prevent unexpected changes
1/2/2020 • 6 minutes to read • Edit Online
As an administrator, you may need to lock a subscription, resource group, or resource to prevent other users in
your organization from accidentally deleting or modifying critical resources. You can set the lock level to
CanNotDelete or ReadOnly. In the portal, the locks are called Delete and Read-only respectively.
CanNotDelete means authorized users can still read and modify a resource, but they can't delete the
resource.
ReadOnly means authorized users can read a resource, but they can't delete or update the resource. Applying
this lock is similar to restricting all authorized users to the permissions granted by the Reader role.
NOTE
This article has been updated to use the new Azure PowerShell Az module. You can still use the AzureRM module, which will
continue to receive bug fixes until at least December 2020. To learn more about the new Az module and AzureRM
compatibility, see Introducing the new Azure PowerShell Az module. For Az module installation instructions, see Install
Azure PowerShell.
Notice the service includes a link for a Managed Resource Group. That resource group holds the infrastructure
and is locked. It can't be directly deleted.
To delete everything for the service, including the locked infrastructure resource group, select Delete for the
service.
Portal
1. In the Settings blade for the resource, resource group, or subscription that you wish to lock, select Locks.
2. To add a lock, select Add. If you want to create a lock at a parent level, select the parent. The currently
selected resource inherits the lock from the parent. For example, you could lock the resource group to
apply a lock to all its resources.
3. Give the lock a name and lock level. Optionally, you can add notes that describe the lock.
4. To delete the lock, select the ellipsis and Delete from the available options.
Template
When using a Resource Manager template to deploy a lock, you use different values for the name and type
depending on the scope of the lock.
When applying a lock to a resource, use the following formats:
name - {resourceName}/Microsoft.Authorization/{lockName}
type - {resourceProviderNamespace}/{resourceType}/providers/locks
When applying a lock to a resource group or subscription, use the following formats:
name - {lockName}
type - Microsoft.Authorization/locks
The following example shows a template that creates an app service plan, a web site, and a lock on the web site.
The resource type of the lock is the resource type of the resource to lock and /providers/locks. The name of the
lock is created by concatenating the resource name with /Microsoft.Authorization/ and the name of the lock.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"hostingPlanName": {
"type": "string"
}
},
"variables": {
"siteName": "[concat('ExampleSite', uniqueString(resourceGroup().id))]"
},
"resources": [
{
"apiVersion": "2016-09-01",
"type": "Microsoft.Web/serverfarms",
"name": "[parameters('hostingPlanName')]",
"location": "[resourceGroup().location]",
"sku": {
"tier": "Free",
"name": "f1",
"capacity": 0
},
"properties": {
"targetWorkerCount": 1
}
},
{
"apiVersion": "2016-08-01",
"name": "[variables('siteName')]",
"type": "Microsoft.Web/sites",
"location": "[resourceGroup().location]",
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', parameters('hostingPlanName'))]"
],
"properties": {
"serverFarmId": "[parameters('hostingPlanName')]"
}
},
{
"type": "Microsoft.Web/sites/providers/locks",
"apiVersion": "2016-09-01",
"name": "[concat(variables('siteName'), '/Microsoft.Authorization/siteLock')]",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', variables('siteName'))]"
],
"properties": {
"level": "CanNotDelete",
"notes": "Site should not be deleted."
}
}
]
}
For an example of setting a lock on a resource group, see Create a resource group and lock it.
PowerShell
You lock deployed resources with Azure PowerShell by using the New -AzResourceLock command.
To lock a resource, provide the name of the resource, its resource type, and its resource group name.
To get information about a lock, use Get-AzResourceLock. To get all the locks in your subscription, use:
Get-AzResourceLock
Azure CLI
You lock deployed resources with Azure CLI by using the az lock create command.
To lock a resource, provide the name of the resource, its resource type, and its resource group name.
To get information about a lock, use az lock list. To get all the locks in your subscription, use:
az lock list
REST API
You can lock deployed resources with the REST API for management locks. The REST API enables you to create
and delete locks, and retrieve information about existing locks.
To create a lock, run:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/locks/{lock-name}?api-version=
{api-version}
The scope could be a subscription, resource group, or resource. The lock-name is whatever you want to call the
lock. For api-version, use 2016-09-01.
In the request, include a JSON object that specifies the properties for the lock.
{
"properties": {
"level": "CanNotDelete",
"notes": "Optional text notes."
}
}
Next steps
To learn about logically organizing your resources, see Using tags to organize your resources
You can apply restrictions and conventions across your subscription with customized policies. For more
information, see What is Azure Policy?.
For guidance on how enterprises can use Resource Manager to effectively manage subscriptions, see Azure
enterprise scaffold - prescriptive subscription governance.
Programmatically create Azure subscriptions
(preview)
1/14/2020 • 14 minutes to read • Edit Online
Azure customers with an Enterprise Agreement (EA), Microsoft Customer Agreement (MCA) or Microsoft Partner
Agreement (MPA) billing account can create subscriptions programmatically. In this article, you learn how to create
subscriptions programmatically using Azure Resource Manager.
When you create an Azure subscription programmatically, that subscription is governed by the agreement under
which you obtained Azure services from Microsoft or an authorized reseller. To learn more, see Microsoft Azure
Legal Information.
NOTE
This article has been updated to use the new Azure PowerShell Az module. You can still use the AzureRM module, which will
continue to receive bug fixes until at least December 2020. To learn more about the new Az module and AzureRM
compatibility, see Introducing the new Azure PowerShell Az module. For Az module installation instructions, see Install Azure
PowerShell.
GET https://management.azure.com/providers/Microsoft.Billing/enrollmentAccounts?api-version=2018-03-01-preview
The API response lists all enrollment accounts you have access to:
{
"value": [
{
"id": "/providers/Microsoft.Billing/enrollmentAccounts/747ddfe5-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "747ddfe5-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "Microsoft.Billing/enrollmentAccounts",
"properties": {
"principalName": "[email protected]"
}
},
{
"id": "/providers/Microsoft.Billing/enrollmentAccounts/4cd2fcf6-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "4cd2fcf6-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "Microsoft.Billing/enrollmentAccounts",
"properties": {
"principalName": "[email protected]"
}
}
]
}
Use the principalName property to identify the account that you want subscriptions to be billed to. Copy the name
of that account. For example, if you wanted to create subscriptions under the [email protected]
enrollment account, you'd copy 747ddfe5-xxxx-xxxx-xxxx-xxxxxxxxxxxx . This identifier is the object ID of the
enrollment account. Paste this value somewhere so that you can use it in the next step as
enrollmentAccountObjectId .
POST
https://management.azure.com/providers/Microsoft.Billing/enrollmentAccounts/<enrollmentAccountObjectId>/provid
ers/Microsoft.Subscription/createSubscription?api-version=2018-03-01-preview
{
"displayName": "Dev Team Subscription",
"offerType": "MS-AZR-0017P",
"owners": [
{
"objectId": "<userObjectId>"
},
{
"objectId": "<servicePrincipalObjectId>"
}
]
}
ELEMENT NAME REQUIRED TYPE DESCRIPTION
In the response, you get back a subscriptionOperation object for monitoring. When the subscription creation is
finished, the subscriptionOperation object would return a subscriptionLink object, which has the subscription ID.
Limitations of Azure Enterprise subscription creation API
Only Azure Enterprise subscriptions can be created using this API.
There's a limit of 200 subscriptions per enrollment account. After that, more subscriptions for the account can
only be created in the Azure portal. If you want to create more subscriptions through the API, create another
enrollment account.
Users who aren't Account Owners, but were added to an enrollment account via RBAC, can't create
subscriptions in the Azure portal.
You can't select the tenant for the subscription to be created in. The subscription is always created in the home
tenant of the Account Owner. To move the subscription to a different tenant, see change subscription tenant.
GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts?api-version=2019-10-01-preview
The API response lists the billing accounts that you have access to.
{
"value": [
{
"id": "/providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-
xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx",
"name": "5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx",
"properties": {
"accountId": "5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"accountStatus": "Active",
"accountType": "Enterprise",
"agreementType": "MicrosoftCustomerAgreement",
"displayName": "Contoso",
"hasReadAccess": true,
"organizationId": "41b29574-xxxx-xxxx-xxxx-xxxxxxxxxxxxx_xxxx-xx-xx"
},
"type": "Microsoft.Billing/billingAccounts"
},
{
"id": "/providers/Microsoft.Billing/billingAccounts/4f89e155-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-
xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx",
"name": "4f89e155-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx",
"properties": {
"accountId": "4f89e155-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"accountStatus": "Active",
"accountType": "Enterprise",
"agreementType": "MicrosoftCustomerAgreement",
"displayName": "Fabrikam",
"hasReadAccess": true,
"organizationId": "41b29574-xxxx-xxxx-xxxx-xxxxxxxxxxxxx_xxxx-xx-xx"
},
"type": "Microsoft.Billing/billingAccounts"
}
]
}
Use the displayName property to identify the billing account for which you want to create subscriptions. Ensure,
the agreeementType of the account is MicrosoftCustomerAgreement. Copy the name of the account. For example,
if you want to create a subscription for the Contoso billing account, you'd copy
5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx . Paste this value
somewhere so that you can use it in the next step.
Find invoice sections to create subscriptions
The charges for your subscription appear on a section of a billing profile's invoice. Use the following API to get the
list of invoice sections and billing profiles on which you have permission to create Azure subscriptions.
Make the following request, replacing <billingAccountName> with the copied from the first step (
name
5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx ).
POST
https://management.azure.com/providers/Microsoft.Billing/billingAccounts/<billingAccountName>/listInvoiceSecti
onsWithCreateSubscriptionPermission?api-version=2019-10-01-preview
The API response lists all the invoice sections and their billing profiles on which you have access to create
subscriptions:
{
"value": [{
"billingProfileDisplayName": "Contoso finance",
"billingProfileId": "/providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-
xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/PBFV-xxxx-xxx-xxx",
"enabledAzurePlans": [{
"productId": "DZH318Z0BPS6",
"skuId": "0001",
"skuDescription": "Microsoft Azure Plan"
}, {
"productId": "DZH318Z0BPS6",
"skuId": "0002",
"skuDescription": "Microsoft Azure Plan for DevTest"
}],
"invoiceSectionDisplayName": "Development",
"invoiceSectionId": "/providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-
xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/PBFV-xxxx-xxx-
xxx/invoiceSections/GJ77-xxxx-xxx-xxx"
}, {
"billingProfileDisplayName": "Contoso finance",
"billingProfileId": "/providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-
xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/PBFV-xxxx-xxx-xxx",
"enabledAzurePlans": [{
"productId": "DZH318Z0BPS6",
"skuId": "0001",
"skuDescription": "Microsoft Azure Plan"
}, {
"productId": "DZH318Z0BPS6",
"skuId": "0002",
"skuDescription": "Microsoft Azure Plan for DevTest"
}],
"invoiceSectionDisplayName": "Testing",
"invoiceSectionId": "/providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-
xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/PBFV-XXXX-XXX-
XXX/invoiceSections/GJGR-XXXX-XXX-XXX"
}]
}
Use the invoiceSectionDisplayName property to identify the invoice section for which you want to create
subscriptions. Copy the invoiceSectionId , billingProfileId and one of the skuId for the invoice section. For
example, if you want to create a subscription of type Microsoft Azure plan for Development invoice section, you'd
copy
/providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx_2019-05-31/billingProfiles/PBFV-XXXX-XXX-XXX/invoiceSections/GJGR-XXXX-XXX-XXX
,
/providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx_2019-05-31/billingProfiles/PBFV-xxxx-xxx-xxx
, and 0001 . Paste these values somewhere so that you can use them in the next step.
Create a subscription for an invoice section
The following example creates a subscription named Dev Team subscription of type Microsoft Azure Plan for the
Development invoice section. The subscription will be billed to the Contoso finance's billing profile and appear on
the Development section of its invoice.
Make the following request, replacing <invoiceSectionId> with the invoiceSectionId copied from the second step
(
/providers/Microsoft.Billing/billingAccounts/5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx_2019-05-31/billingProfiles/PBFV-XXXX-XXX-XXX/invoiceSections/GJGR-XXXX-XXX-XXX
). You'd need to pass the billingProfileId and skuId copied from the second step in the request parameters of
the API. If you'd like to specify owners, learn how to get user object IDs.
POST https://management.azure.com<invoiceSectionId>/providers/Microsoft.Subscription/createSubscription?api-
version=2018-11-01-preview
In the response, you get back a subscriptionCreationResult object for monitoring. When the subscription creation
is finished, the subscriptionCreationResult object would return a subscriptionLink object, which has the
subscription ID.
GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts?api-version=2019-10-01-preview
{
"value": [
{
"id": "/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-
xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx",
"name": "99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx",
"properties": {
"accountId": "5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"accountStatus": "Active",
"accountType": "Enterprise",
"agreementType": "MicrosoftPartnerAgreement",
"displayName": "Contoso",
"hasReadAccess": true,
"organizationId": "1d100e69-xxxx-xxxx-xxxx-xxxxxxxxxxxxx_xxxx-xx-xx"
},
"type": "Microsoft.Billing/billingAccounts"
},
{
"id": "/providers/Microsoft.Billing/billingAccounts/4f89e155-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-
xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx",
"name": "4f89e155-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx",
"properties": {
"accountId": "4f89e155-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"accountStatus": "Active",
"accountType": "Enterprise",
"agreementType": "MicrosoftCustomerAgreement",
"displayName": "Fabrikam",
"hasReadAccess": true,
"organizationId": "1d100e69-xxxx-xxxx-xxxx-xxxxxxxxxxxxx_xxxx-xx-xx"
},
"type": "Microsoft.Billing/billingAccounts"
}
]
}
Use the displayName property to identify the billing account for which you want to create subscriptions. Ensure,
the agreeementType of the account is MicrosoftPartnerAgreement. Copy the name for the account. For example, if
you want to create a subscription for the Contoso billing account, you'd copy
99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx . Paste this value
somewhere so that you can use it in the next step.
Find customers that have Azure plans
Make the following request, replacing <billingAccountName> with the copied from the first step (
name
5e98e158-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx ) to list all customers in the
billing account for whom you can create Azure subscriptions.
GET https://management.azure.com/providers/Microsoft.Billing/billingAccounts/<billingAccountName>/customers?
api-version=2019-10-01-preview
The API response lists the customers in the billing account with Azure plans. You can create subscriptions for these
customers.
{
"value": [
{
"id": "/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-
xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/customers/2281f543-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "2281f543-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"properties": {
"billingProfileDisplayName": "Contoso USD",
"billingProfileId": "/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-
xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/JUT6-xxxx-xxxx-xxxx",
"displayName": "Fabrikam toys"
},
"type": "Microsoft.Billing/billingAccounts/customers"
},
{
"id": "/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-
xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/customers/97c3fac4-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "97c3fac4-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"properties": {
"billingProfileDisplayName": "Fabrikam sports",
"billingProfileId": "/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-
xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx_xxxx-xx-xx/billingProfiles/JUT6-xxxx-xxxx-xxxx",
"displayName": "Fabrikam bakery"
},
"type": "Microsoft.Billing/billingAccounts/customers"
}]
}
Use the displayName property to identify the customer for which you want to create subscriptions. Copy the id
for the customer. For example, if you want to create a subscription for Fabrikam toys , you'd copy
/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx_xxxx-xx-xx/customers/2281f543-xxxx-xxxx-xxxx-xxxxxxxxxxxx
. Paste this value somewhere to use it in the subsequent steps.
Optional for Indirect providers: Get the resellers for a customer
If you're an Indirect provider in the CSP two-tier model, you can specify a reseller while creating subscriptions for
customers.
Make the following request, replacing <customerId> with the id copied from the second step (
/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx_xxxx-xx-xx/customers/2281f543-xxxx-xxxx-xxxx-xxxxxxxxxxxx
) to list all resellers that are available for a customer.
GET https://management.azure.com<customerId>?$expand=resellers&api-version=2019-10-01-preview
Use the property to identify the reseller who will be associated with the subscription. Copy the
description
resellerIdfor the reseller. For example, if you want to associate Wingtip , you'd copy 3xxxxx . Paste this value
somewhere so that you can use it in the next step.
Create a subscription for a customer
The following example creates a subscription named Dev Team subscription for Fabrikam toys and associate
Wingtip reseller to the subscription. T
Make the following request, replacing <customerId> with the id copied from the second step (
/providers/Microsoft.Billing/billingAccounts/99a13315-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx_xxxx-xx-xx/customers/2281f543-xxxx-xxxx-xxxx-xxxxxxxxxxxx
). Pass the optional resellerId copied from the second step in the request parameters of the API.
POST https://management.azure.com<customerId>/providers/Microsoft.Subscription/createSubscription?api-
version=2018-11-01-preview
In the response, you get back a subscriptionCreationResult object for monitoring. When the subscription creation
is finished, the subscriptionCreationResult object would return a subscriptionLink object, which has the
subscription ID.
Next steps
For an example on creating an Enterprise Agreement (EA) subscription using .NET, see sample code on GitHub.
Now that you've created a subscription, you can grant that ability to other users and service principals. For
more information, see Grant access to create Azure Enterprise subscriptions (preview ).
To learn more about managing large numbers of subscriptions using management groups, see Organize your
resources with Azure management groups
Grant access to create Azure Enterprise subscriptions
(preview)
12/23/2019 • 5 minutes to read • Edit Online
As an Azure customer on Enterprise Agreement (EA), you can give another user or service principal permission to
create subscriptions billed to your account. In this article, you learn how to use Role-Based Access Control (RBAC )
to share the ability to create subscriptions, and how to audit subscription creations. You must have the Owner role
on the account you wish to share.
NOTE
This article has been updated to use the new Azure PowerShell Az module. You can still use the AzureRM module, which will
continue to receive bug fixes until at least December 2020. To learn more about the new Az module and AzureRM
compatibility, see Introducing the new Azure PowerShell Az module. For Az module installation instructions, see Install Azure
PowerShell.
Grant access
To create subscriptions under an enrollment account, users must have the RBAC Owner role on that account. You
can grant a user or a group of users the RBAC Owner role on an enrollment account by following these steps:
1. Get the object ID of the enrollment account you want to grant access to
To grant others the RBAC Owner role on an enrollment account, you must either be the Account Owner or
an RBAC Owner of the account.
REST
PowerShell
Azure CLI
Request to list all enrollment accounts you have access to:
GET https://management.azure.com/providers/Microsoft.Billing/enrollmentAccounts?api-version=2018-03-01-
preview
Azure responds with a list of all enrollment accounts you have access to:
{
"value": [
{
"id": "/providers/Microsoft.Billing/enrollmentAccounts/747ddfe5-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "747ddfe5-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "Microsoft.Billing/enrollmentAccounts",
"properties": {
"principalName": "[email protected]"
}
},
{
"id": "/providers/Microsoft.Billing/enrollmentAccounts/4cd2fcf6-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "4cd2fcf6-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "Microsoft.Billing/enrollmentAccounts",
"properties": {
"principalName": "[email protected]"
}
}
]
}
Use the principalName property to identify the account that you want to grant RBAC Owner access to.
Copy the name of that account. For example, if you wanted to grant RBAC Owner access to the
[email protected] enrollment account, you'd copy 747ddfe5-xxxx-xxxx-xxxx-xxxxxxxxxxxx .
This is the object ID of the enrollment account. Paste this value somewhere so that you can use it in the next
step as enrollmentAccountObjectId .
Use the principalName property to identify the account that you want to grant RBAC Owner access to.
Copy the name of that account. For example, if you wanted to grant RBAC Owner access to the
[email protected] enrollment account, you'd copy 747ddfe5-xxxx-xxxx-xxxx-xxxxxxxxxxxx .
This is the object ID of the enrollment account. Paste this value somewhere so that you can use it in the next
step as enrollmentAccountObjectId .
2. Get object ID of the user or group you want to give the RBAC Owner role to
a. In the Azure portal, search on Azure Active Directory.
b. If you want to grant a user access, click on Users in the menu on the left. If you want to grant access to a
group, click Groups.
c. Select the User or Group you want to give the RBAC Owner role to.
d. If you selected a User, you'll find the object ID in the Profile page. If you selected a Group, the object ID
will be in the Overview page. Copy the ObjectID by clicking the icon to the right of the text box. Paste
this somewhere so that you can use it in the next step as userObjectId .
3. Grant the user or group the RBAC Owner role on the enrollment account
Using the values you collected in the first two steps, grant the user or group the RBAC Owner role on the
enrollment account.
REST
PowerShell
Azure CLI
Run the following command, replacing <enrollmentAccountObjectId> with the name you copied in the first
step ( 747ddfe5-xxxx-xxxx-xxxx-xxxxxxxxxxxx ). Replace <userObjectId> with the object ID you copied from
the second step.
PUT
https://management.azure.com/providers/Microsoft.Billing/enrollmentAccounts/<enrollmentAccountObjectId>
/providers/Microsoft.Authorization/roleAssignments/<roleAssignmentGuid>?api-version=2015-07-01
{
"properties": {
"roleDefinitionId":
"/providers/Microsoft.Billing/enrollmentAccounts/providers/Microsoft.Authorization/roleDefinitions/<own
erRoleDefinitionId>",
"principalId": "<userObjectId>"
}
}
When the Owner role is successfully assigned at the enrollment account scope, Azure responds with
information of the role assignment:
{
"properties": {
"roleDefinitionId":
"/providers/Microsoft.Billing/enrollmentAccounts/providers/Microsoft.Authorization/roleDefinitions/<own
erRoleDefinitionId>",
"principalId": "<userObjectId>",
"scope": "/providers/Microsoft.Billing/enrollmentAccounts/747ddfe5-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"createdOn": "2018-03-05T08:36:26.4014813Z",
"updatedOn": "2018-03-05T08:36:26.4014813Z",
"createdBy": "<assignerObjectId>",
"updatedBy": "<assignerObjectId>"
},
"id":
"/providers/Microsoft.Billing/enrollmentAccounts/providers/Microsoft.Authorization/roleDefinitions/<own
erRoleDefinitionId>",
"type": "Microsoft.Authorization/roleAssignments",
"name": "<roleAssignmentGuid>"
}
GET "/providers/Microsoft.Insights/eventtypes/management/values?api-version=2015-04-
01&$filter=eventTimestamp ge '{greaterThanTimeStamp}' and eventTimestamp le '{lessThanTimestamp}' and
eventChannels eq 'Operation' and resourceProvider eq 'Microsoft.Subscription'"
To conveniently call this API from the command line, try ARMClient.
Next steps
Now that the user or service principal has permission to create a subscription, you can use that identity to
programmatically create Azure Enterprise subscriptions.
For an example on creating subscriptions using .NET, see sample code on GitHub.
To learn more about Azure Resource Manager and its APIs, see Azure Resource Manager overview.
To learn more about managing large numbers of subscriptions using management groups, see Organize your
resources with Azure management groups
To see a comprehensive best practice guidance for large organizations on subscription governance, see Azure
enterprise scaffold - prescriptive subscription governance
Authenticate requests across tenants
12/23/2019 • 2 minutes to read • Edit Online
When creating a multi-tenant application, you may need to handle authentication requests for resources that are in
different tenants. A common scenario is when a virtual machine in one tenant must join a virtual network in
another tenant. Azure Resource Manager provides a header value for storing auxiliary tokens to authenticate the
requests to different tenants.
Next steps
To learn about authentication requests, see Authentication flows and application scenarios.
For more information about tokens, see Azure Active Directory access tokens.
View activity logs to monitor actions on resources
12/23/2019 • 5 minutes to read • Edit Online
Azure portal
To view the activity logs through the portal, follow these steps:
1. On the Azure portal menu, select Monitor, or search for and select Monitor from any page.
5. Select one of the options. For example, select Failed deployments to see errors from deployments.
6. Notice the filters have been changed to focus on deployment errors in the last 24 hours. Only operations
that match the filters are displayed.
7. To focus on specific operations, change the filters or apply new ones. For example, the following image
shows a new value for the Timespan and Resource type is set to storage accounts.
8. If you need to run the query again later, select Pin current filters.
11. From the portal, you can view changes to a resource. Go back to the default view in Monitor, and select an
operation that involved changing a resource.
12. Select Change history (Preview) and pick one of the available operations.
13. The changes in the resource are displayed.
PowerShell
NOTE
This article has been updated to use the new Azure PowerShell Az module. You can still use the AzureRM module, which will
continue to receive bug fixes until at least December 2020. To learn more about the new Az module and AzureRM
compatibility, see Introducing the new Azure PowerShell Az module. For Az module installation instructions, see Install Azure
PowerShell.
To retrieve log entries, run the Get-AzLog command. You provide additional parameters to filter the list of entries.
If you don't specify a start and end time, entries for the last seven days are returned.
The following example shows how to use the activity log to research operations taken during a specified time. The
start and end dates are specified in a date format.
Or, you can use date functions to specify the date range, such as the last 14 days.
Get-AzLog -ResourceGroup ExampleGroup -StartTime (Get-Date).AddDays(-14)
You can focus on one error by looking at the status message for that entry.
You can select specific values to limit the data that is returned.
Depending on the start time you specify, the previous commands can return a long list of operations for the
resource group. You can filter the results for what you are looking for by providing search criteria. For example,
you can filter by the type of operation.
You can use Resource Graph to see the change history for a resource. For more information, see Get resource
changes.
Azure CLI
To retrieve log entries, run the az monitor activity-log list command with an offset to indicate the time span.
The following example shows how to use the activity log to research operations taken during a specified time. The
start and end dates are specified in a date format.
You can look up the actions taken by a particular user, even for a resource group that no longer exists.
You can select specific values to limit the data that is returned.
Depending on the start time you specify, the previous commands can return a long list of operations for the
resource group. You can filter the results for what you are looking for by providing search criteria. For example,
you can filter by the type of operation.
You can use Resource Graph to see the change history for a resource. For more information, see Get resource
changes.
REST API
The REST operations for working with the activity log are part of the Insights REST API. To retrieve activity log
events, see List the management events in a subscription.
Next steps
Azure Activity logs can be used with Power BI to gain greater insights about the actions in your subscription.
See View and analyze Azure Activity Logs in Power BI and more.
To learn about setting security policies, see Azure Role-based Access Control.
To view more details about the changes to your applications from the infrastructure layer all the way to
application deployment, see Use Application Change Analysis in Azure Monitor.
To learn about the commands for viewing deployment operations, see View deployment operations.
To learn how to prevent deletions on a resource for all users, see Lock resources with Azure Resource Manager.
To see the list of operations available for each Microsoft Azure Resource Manager provider, see Azure Resource
Manager Resource Provider operations
Azure resource providers and types
12/23/2019 • 6 minutes to read • Edit Online
When deploying resources, you frequently need to retrieve information about the resource providers and types.
For example, if you want to store keys and secrets, you work with the Microsoft.KeyVault resource provider. This
resource provider offers a resource type called vaults for creating the key vault.
The name of a resource type is in the format: {resource-provider}/{resource-type}. The resource type for a key
vault is Microsoft.KeyVault/vaults.
In this article, you learn how to:
View all resource providers in Azure
Check registration status of a resource provider
Register a resource provider
View resource types for a resource provider
View valid locations for a resource type
View valid API versions for a resource type
You can do these steps through the Azure portal, Azure PowerShell, or Azure CLI.
For a list that maps resource providers to Azure services, see Resource providers for Azure services.
Azure portal
To see all resource providers, and the registration status for your subscription:
1. Sign in to the Azure portal.
2. On the Azure portal menu, select All services.
3. In the All services box, enter subscription, and then select Subscriptions.
4. Select the subscription from the subscription list to view.
5. Select Resource providers and view the list of available resource providers.
6. Registering a resource provider configures your subscription to work with the resource provider. The scope
for registration is always the subscription. By default, many resource providers are automatically registered.
However, you may need to manually register some resource providers. To register a resource provider, you
must have permission to do the /register/action operation for the resource provider. This operation is
included in the Contributor and Owner roles. To register a resource provider, select Register. In the previous
screenshot, the Register link is highlighted for Microsoft.Blueprint.
You can't unregister a resource provider when you still have resource types from that resource provider in
your subscription.
To see information for a particular resource provider:
1. Sign in to the Azure portal.
2. On the Azure portal menu, select All services.
3. In the All services box, enter resource explorer, and then select Resource Explorer.
4. Expand Providers by selecting the right arrow.
5. Expand a resource provider and resource type that you want to view.
6. Resource Manager is supported in all regions, but the resources you deploy might not be supported in all
regions. In addition, there may be limitations on your subscription that prevent you from using some
regions that support the resource. The resource explorer displays valid locations for the resource type.
7. The API version corresponds to a version of REST API operations that are released by the resource
provider. As a resource provider enables new features, it releases a new version of the REST API. The
resource explorer displays valid API versions for the resource type.
Azure PowerShell
NOTE
This article has been updated to use the new Azure PowerShell Az module. You can still use the AzureRM module, which will
continue to receive bug fixes until at least December 2020. To learn more about the new Az module and AzureRM
compatibility, see Introducing the new Azure PowerShell Az module. For Az module installation instructions, see Install Azure
PowerShell.
To see all resource providers in Azure, and the registration status for your subscription, use:
ProviderNamespace RegistrationState
-------------------------------- ------------------
Microsoft.ClassicCompute Registered
Microsoft.ClassicNetwork Registered
Microsoft.ClassicStorage Registered
Microsoft.CognitiveServices Registered
...
Registering a resource provider configures your subscription to work with the resource provider. The scope for
registration is always the subscription. By default, many resource providers are automatically registered. However,
you may need to manually register some resource providers. To register a resource provider, you must have
permission to do the /register/action operation for the resource provider. This operation is included in the
Contributor and Owner roles.
ProviderNamespace : Microsoft.Batch
RegistrationState : Registering
ResourceTypes : {batchAccounts, operations, locations, locations/quotas}
Locations : {West Europe, East US, East US 2, West US...}
You can't unregister a resource provider when you still have resource types from that resource provider in your
subscription.
To see information for a particular resource provider, use:
{ProviderNamespace : Microsoft.Batch
RegistrationState : Registered
ResourceTypes : {batchAccounts}
Locations : {West Europe, East US, East US 2, West US...}
...
Which returns:
batchAccounts
operations
locations
locations/quotas
The API version corresponds to a version of REST API operations that are released by the resource provider. As a
resource provider enables new features, it releases a new version of the REST API.
To get the available API versions for a resource type, use:
Which returns:
2017-05-01
2017-01-01
2015-12-01
2015-09-01
2015-07-01
Resource Manager is supported in all regions, but the resources you deploy might not be supported in all regions.
In addition, there may be limitations on your subscription that prevent you from using some regions that support
the resource.
To get the supported locations for a resource type, use.
Which returns:
West Europe
East US
East US 2
West US
...
Azure CLI
To see all resource providers in Azure, and the registration status for your subscription, use:
Provider Status
-------------------------------- ----------------
Microsoft.ClassicCompute Registered
Microsoft.ClassicNetwork Registered
Microsoft.ClassicStorage Registered
Microsoft.CognitiveServices Registered
...
Registering a resource provider configures your subscription to work with the resource provider. The scope for
registration is always the subscription. By default, many resource providers are automatically registered. However,
you may need to manually register some resource providers. To register a resource provider, you must have
permission to do the /register/action operation for the resource provider. This operation is included in the
Contributor and Owner roles.
az provider register --namespace Microsoft.Batch
{
"id": "/subscriptions/####-####/providers/Microsoft.Batch",
"namespace": "Microsoft.Batch",
"registrationsState": "Registering",
"resourceTypes:" [
...
]
}
Which returns:
Result
---------------
batchAccounts
operations
locations
locations/quotas
The API version corresponds to a version of REST API operations that are released by the resource provider. As a
resource provider enables new features, it releases a new version of the REST API.
To get the available API versions for a resource type, use:
Which returns:
Result
---------------
2017-05-01
2017-01-01
2015-12-01
2015-09-01
2015-07-01
Resource Manager is supported in all regions, but the resources you deploy might not be supported in all regions.
In addition, there may be limitations on your subscription that prevent you from using some regions that support
the resource.
To get the supported locations for a resource type, use.
Which returns:
Result
---------------
West Europe
East US
East US 2
West US
...
Next steps
To learn about creating Resource Manager templates, see Authoring Azure Resource Manager templates.
To view the resource provider template schemas, see Template reference.
For a list that maps resource providers to Azure services, see Resource providers for Azure services.
To view the operations for a resource provider, see Azure REST API.
Throttling Resource Manager requests
1/3/2020 • 6 minutes to read • Edit Online
This article describes how Azure Resource Manager throttles requests. It shows you how to track the number of
requests that remain before reaching the limit, and how to respond when you've reached the limit.
Throttling happens at two levels. Azure Resource Manager throttles requests for the subscription and tenant. If the
request is under the throttling limits for the subscription and tenant, Resource Manager routes the request to the
resource provider. The resource provider applies throttling limits that are tailored to its operations. The following
image shows how throttling is applied as a request goes from the user to Azure Resource Manager and the
resource provider.
These limits are scoped to the security principal (user or application) making the requests and the subscription ID
or tenant ID. If your requests come from more than one security principal, your limit across the subscription or
tenant is greater than 12,000 and 1,200 per hour.
These limits apply to each Azure Resource Manager instance. There are multiple instances in every Azure region,
and Azure Resource Manager is deployed to all Azure regions. So, in practice, the limits are higher than these
limits. The requests from a user are usually handled by different instances of Azure Resource Manager.
Network throttling
The Microsoft.Network resource provider applies the following throttle limits:
OPERATION LIMIT
Compute throttling
For information about throttling limits for compute operations, see Troubleshooting API throttling errors -
Compute.
For checking virtual machine instances within a virtual machine scale set, use the Virtual Machine Scale Sets
operations. For example, use the Virtual Machine Scale Set VMs - List with parameters to check the power state of
virtual machine instances. This API reduces the number of requests.
Azure Resource Graph throttling
Azure Resource Graph limits the number of requests to its operations. The steps in this article to determine the
remaining requests and how to respond when the limit is reached also apply to Resource Graph. However,
Resource Graph sets its own limit and reset rate. For more information, see Resource Graph throttling headers.
Request increase
Sometimes, throttle limits can be increased. To see if the throttling limits for your scenario can be increased, create
a support request. The details of your calling pattern will be evaluated.
Error code
When you reach the limit, you receive the HTTP status code 429 Too many requests. The response includes a
Retry-After value, which specifies the number of seconds your application should wait (or sleep) before sending
the next request. If you send a request before the retry value has elapsed, your request isn't processed and a new
retry value is returned.
After waiting for specified time, you can also close and reopen your connection to Azure. By resetting the
connection, you may connect to a different instance of Azure Resource Manager.
If you're using an Azure SDK, the SDK may have an auto retry configuration. For more information, see Retry
guidance for Azure services.
Some resource providers return 429 to report a temporary problem. The problem could be an overload condition
that isn't directly caused by your request. Or, it could represent a temporary error about the state of the target
resource or dependent resource. For example, the network resource provider returns 429 with the
RetryableErrorDueToAnotherOperation error code when the target resource is locked by another operation. To
determine if the error comes from throttling or a temporary condition, view the error details in the response.
Remaining requests
You can determine the number of remaining requests by examining response headers. Read requests return a
value in the header for the number of remaining read requests. Write requests include a value for the number of
remaining write requests. The following table describes the response headers you can examine for those values:
This header is only added for requests at tenant level, and only
if a service has overridden the default limit. Resource Manager
adds this value instead of the tenant reads or writes.
This header is only added for requests at tenant level, and only
if a service has overridden the default limit.
The resource provider can also return response headers with information about remaining requests. For
information about response headers returned by the Compute resource provider, see Call rate informational
response headers.
response.Headers.GetValues("x-ms-ratelimit-remaining-subscription-reads").GetValue(0)
In PowerShell, you retrieve the header value from an Invoke-WebRequest operation.
For a complete PowerShell example, see Check Resource Manager Limits for a Subscription.
If you want to see the remaining requests for debugging, you can provide the -Debug parameter on your
PowerShell cmdlet.
Get-AzResourceGroup -Debug
Status Code:
OK
Headers:
Pragma : no-cache
x-ms-ratelimit-remaining-subscription-reads: 11999
Status Code:
Created
Headers:
Pragma : no-cache
x-ms-ratelimit-remaining-subscription-writes: 1199
In Azure CLI, you retrieve the header value by using the more verbose option.
Next steps
For a complete PowerShell example, see Check Resource Manager Limits for a Subscription.
For more information about limits and quotas, see Azure subscription and service limits, quotas, and
constraints.
To learn about handling asynchronous REST requests, see Track asynchronous Azure operations.
Track asynchronous Azure operations
12/23/2019 • 3 minutes to read • Edit Online
Some Azure REST operations run asynchronously because the operation can't be completed quickly. This article
describes how to track the status of asynchronous operations through values returned in the response.
However, not every asynchronous operation returns all these values. For example, you may need to evaluate the
Azure-AsyncOperation header value for one operation, and the Location header value for another operation.
You retrieve the header values as you would retrieve any header value for a request. For example, in C#, you
retrieve the header value from an HttpWebResponse object named response with the following code:
response.Headers.GetValues("Azure-AsyncOperation").GetValue(0)
Only status is returned for all responses. The error object is returned when the status is Failed or Canceled. All
other values are optional; therefore, the response you receive may look different than the example.
provisioningState values
Operations that create, update, or delete (PUT, PATCH, DELETE ) a resource typically return a provisioningState
value. When an operation has completed, one of following three values is returned:
Succeeded
Failed
Canceled
All other values indicate the operation is still running. The resource provider can return a customized value that
indicates its state. For example, you may receive Accepted when the request is received and running.
POST
https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-
group}/providers/Microsoft.Compute/virtualMachines/{vm-name}/start?api-version=2016-03-30
It returns status code 202. Among the header values, you see:
Azure-AsyncOperation : https://management.azure.com/subscriptions/{subscription-
id}/providers/Microsoft.Compute/locations/{region}/operations/{operation-id}?api-version=2016-03-30
To check the status of the asynchronous operation, sending another request to that URL.
GET
https://management.azure.com/subscriptions/{subscription-
id}/providers/Microsoft.Compute/locations/{region}/operations/{operation-id}?api-version=2016-03-30
PUT
https://management.azure.com/subscriptions/{subscription-id}/resourcegroups/{resource-
group}/providers/microsoft.resources/deployments/{deployment-name}?api-version=2016-09-01
"provisioningState":"Accepted",
Azure-AsyncOperation: https://management.azure.com/subscriptions/{subscription-id}/resourcegroups/{resource-
group}/providers/Microsoft.Resources/deployments/{deployment-name}/operationStatuses/{operation-id}?api-
version=2016-09-01
To check the status of the asynchronous operation, sending another request to that URL.
GET
https://management.azure.com/subscriptions/{subscription-id}/resourcegroups/{resource-
group}/providers/Microsoft.Resources/deployments/{deployment-name}/operationStatuses/{operation-id}?api-
version=2016-09-01
{"status":"Running"}
{"status":"Succeeded"}
PUT
https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-
group}/providers/Microsoft.Storage/storageAccounts/{storage-name}?api-version=2016-01-01
And the request body contains properties for the storage account:
{ "location": "South Central US", "properties": {}, "sku": { "name": "Standard_LRS" }, "kind": "Storage" }
It returns status code 202. Among the header values, you see the following two values:
Location: https://management.azure.com/subscriptions/{subscription-
id}/providers/Microsoft.Storage/operations/{operation-id}?monitor=true&api-version=2016-01-01
Retry-After: 17
After waiting for number of seconds specified in Retry-After, check the status of the asynchronous operation by
sending another request to that URL.
GET
https://management.azure.com/subscriptions/{subscription-
id}/providers/Microsoft.Storage/operations/{operation-id}?monitor=true&api-version=2016-01-01
If the request is still running, you receive a status code 202. If the request has completed, your receive a status code
200, and the body of the response contains the properties of the storage account that has been created.
Next steps
For documentation about each REST operation, see REST API documentation.
For information about deploying templates through the Resource Manager REST API, see Deploy resources
with Resource Manager templates and Resource Manager REST API.
Manage personal data associated with Azure
Resource Manager
12/23/2019 • 2 minutes to read • Edit Online
To avoid exposing sensitive information, delete any personal information you may have provided in deployments,
resource groups, or tags. Azure Resource Manager provides operations that let you manage personal data you may
have provided in deployments, resource groups, or tags.
NOTE
This article provides steps for how to delete personal data from the device or service and can be used to support your
obligations under the GDPR. If you’re looking for general info about GDPR, see the GDPR section of the Service Trust portal.
NOTE
This article has been updated to use the new Azure PowerShell Az module. You can still use the AzureRM module, which will
continue to receive bug fixes until at least December 2020. To learn more about the new Az module and AzureRM
compatibility, see Introducing the new Azure PowerShell Az module. For Az module installation instructions, see Install Azure
PowerShell.
Next steps
For an overview of Azure Resource Manager, see the What is Resource Manager?