Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo descreve como o Azure Resource Manager limita as solicitações. Ele mostra como controlar o número de solicitações que permanecem antes de atingir o limite e como responder quando você atinge o limite.
Limitação regional e algoritmo de balde de tokens
A Microsoft migrou as assinaturas do Azure para uma arquitetura de limitação atualizada a partir de 2024. Os limites de limitação agora são aplicados por região, em vez de por instância do Azure Resource Manager. Essa nova arquitetura usa um algoritmo de bucket de token para gerenciar a limitação de API.
O bucket de token representa o número máximo de solicitações que você pode enviar para cada segundo. Quando você atinge o número máximo de solicitações, a taxa de recarga determina a rapidez com que os tokens ficam disponíveis no bucket.
Esses limites atualizados facilitam a atualização e o gerenciamento de sua cota.
Os limites atualizados são:
Âmbito | Operações | Tamanho da caçamba | Taxa de recarga por segundo |
---|---|---|---|
Subscrição | leituras | 250 | 25 |
Subscrição | eliminações | 200 | 10 |
Subscrição | escritas | 200 | 10 |
Inquilino | leituras | 250 | 25 |
Inquilino | eliminações | 200 | 10 |
Inquilino | escritas | 200 | 10 |
Os limites de subscrição aplicam-se por subscrição, por entidade de serviço e por tipo de operação. Há também limites de assinatura global que são equivalentes a 15 vezes os limites de entidade de serviço individual para cada tipo de operação. Os limites globais aplicam-se a todas as entidades de serviço. As solicitações são limitadas se os limites globais, da entidade de serviço ou do locatário forem excedidos.
Os limites podem ser menores para clientes gratuitos ou de avaliação.
Por exemplo, suponha que você tenha um tamanho de bucket de 250 tokens para solicitações de leitura e taxa de recarga de 25 tokens por segundo. Se você enviar 250 solicitações de leitura em um segundo, o bucket estará vazio e suas solicitações serão limitadas. A cada segundo, 25 tokens ficam disponíveis até que o bucket atinja sua capacidade máxima de 250 tokens. Você pode usar tokens à medida que eles ficam disponíveis.
A leitura de métricas usando a API contribui significativamente para o */providers/microsoft.insights/metrics
tráfego geral do Azure Resource Manager e é uma causa comum de eventos de limitação de assinatura. Se você usar essa API intensamente, recomendamos que alterne para a getBatch
API. Você pode consultar vários recursos em uma única solicitação REST, o que melhora o desempenho e reduz a limitação. Para obter mais informações sobre como converter suas operações, consulte Como migrar da API de métricas para a API getBatch.
Esses limites e arquitetura também se aplicarão a todas as nuvens soberanas até o final de 2026.
Como posso ver as minhas requisições restritas?
Para visualizar as suas solicitações limitadas e outras métricas do Gestor de Recursos, consulte Como aceder às métricas do Gestor de Recursos do Azure.
Por que a limitação é por região e não por instância?
Como regiões diferentes têm um número diferente de instâncias do Resource Manager, a limitação por instância causa um desempenho de limitação inconsistente. A limitação por região torna a limitação consistente e previsível.
Como a experiência de limitação melhorada afeta os meus limites?
Pode enviar mais pedidos. As solicitações de gravação aumentam em 30 vezes. As solicitações de exclusão aumentam em 2,4 vezes. As solicitações de leitura aumentam 7,5 vezes.
Regulação de tarefas em segundo plano
Os trabalhos em segundo plano no Azure Resource Manager (ARM) são tarefas automatizadas executadas nos bastidores para dar suporte a operações como implantações de recursos, diagnósticos e manutenção do sistema. Esses trabalhos são essenciais para processar solicitações de usuários e garantir a funcionalidade do serviço. Para manter a estabilidade e a confiabilidade da plataforma, o ARM emprega a limitação de tarefas em segundo plano para gerenciar a carga dessas tarefas.
Você pode identificar quando ocorre limitação de processo em segundo plano se você receber a seguinte mensagem de erro:
The request for subscription '{0}' could not be processed due to an excessive volume of traffic. Please try again later.
Os clientes podem enfrentar limitação devido a trabalhos em segundo plano excessivos, que podem ser acionados por operações de alta frequência ou atividades em todo o sistema. Embora os clientes não tenham controle direto sobre a criação ou execução desses trabalhos, a consciência do potencial de limitação é importante.
Controlo de velocidade nas nuvens soberanas
A limitação ocorre em dois níveis. O Azure Resource Manager limita os pedidos para a subscrição e o inquilino. Se o pedido estiver abaixo dos limites de limitação da subscrição e do inquilino, o Resource Manager direcionará o pedido para o fornecedor de recursos. O fornecedor de recursos aplicará os limites da limitação personalizados às operações.
As solicitações são inicialmente limitadas por ID principal e por instância do Azure Resource Manager na região do usuário que envia a solicitação. As solicitações para a instância do Azure Resource Manager na região também são limitadas por ID de usuário principal e por hora. Quando a solicitação é encaminhada para o provedor de recursos, as solicitações são limitadas por região do recurso, em vez de por instância do Azure Resource Manager na região do usuário.
Observação
Os limites de um provedor de recursos podem diferir dos limites da instância do Azure Resource Manager na região do usuário.
A imagem a seguir mostra como a limitação é aplicada quando uma solicitação passa do usuário para o Azure Resource Manager e o provedor de recursos.
Limites de subscrição e inquilino
Todas as operações de nível de assinatura e de locatário estão sujeitas a limites de limitação. As solicitações de assinatura são aquelas que envolvem a passagem de sua ID de assinatura, como a recuperação dos grupos de recursos em sua assinatura. Por exemplo, enviar uma solicitação para é uma operação no https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups?api-version=2022-01-01
nível de assinatura. As solicitações de locatário não incluem sua ID de assinatura, como a recuperação de locais válidos do Azure. Por exemplo, enviar uma solicitação para é uma operação no https://management.azure.com/tenants?api-version=2022-01-01
nível do locatário.
Os limites predefinidos de limitação por hora são apresentados na seguinte tabela.
Âmbito | Operações | Limite |
---|---|---|
Subscrição | leituras | 12.000 |
Subscrição | eliminações | 15 000 |
Subscrição | escritas | 1200 |
Inquilino | leituras | 12.000 |
Inquilino | escritas | 1200 |
Estes limites estão circunscritos ao principal de segurança (utilizador ou aplicação) que faz os pedidos e o ID de subscrição ou ID de inquilino. Se os seus pedidos forem provenientes de mais de um principal de segurança, o limite da subscrição ou do inquilino é superior a 12 000 e 1200 por hora.
Esses limites se aplicam a cada instância do Azure Resource Manager. Há várias instâncias em cada região do Azure e o Azure Resource Manager é implantado em todas as regiões do Azure. Assim, na prática, os limites são superiores a esses limites. Instâncias diferentes do Azure Resource Manager geralmente lidam com as solicitações do usuário.
As solicitações restantes são retornadas nos valores de cabeçalho de resposta.
Limites do provedor de recursos
Os fornecedores de recursos aplicam os seus próprios limites de limitação. Dentro de cada assinatura, o provedor de recursos é limitado por região do recurso na solicitação. Como o Gerenciador de Recursos é limitado por instância do Gerenciador de Recursos e há várias instâncias do Gerenciador de Recursos em cada região, o provedor de recursos pode receber mais solicitações do que os limites padrão na seção anterior.
Esta seção discute os limites de limitação de alguns provedores de recursos amplamente utilizados.
Limitação de armazenamento
Os limites a seguir se aplicam somente quando você executa operações de gerenciamento usando o Gerenciador de Recursos do Azure com o Armazenamento do Azure e o Provedor de Recursos de Armazenamento. Os limites aplicam-se por subscrição por região do recurso no pedido.
Recurso | Limite |
---|---|
Operações de gestão da conta de armazenamento (leitura) | 800 por 5 minutos |
Operações de gestão da conta de armazenamento (escrita) | 10 por segundo/1200 por hora |
Operações de gestão da conta de armazenamento (lista) | 100 por 5 minutos |
Limitação da rede
O fornecedor de recursos Microsoft.Network aplica os seguintes limites de limitação:
Operação | Limite |
---|---|
escrita/eliminação (PUT) | 1000 por 5 minutos |
leitura (GET) | 10 000 por 5 minutos |
Além desses limites gerais, consulte os limites de uso do DNS do Azure.
Limitação de computação
O Microsoft Compute implementa a limitação para fornecer uma experiência ideal para usuários de Máquina Virtual e Conjunto de Dimensionamento de Máquina Virtual. Os Limites de Limitação de Computação fornecem informações abrangentes sobre políticas e limites de limitação para VMs, Conjuntos de Dimensionamento de Máquinas Virtuais e VMs de Conjuntos de Escala.
Limitação do Azure Resource Graph
O Azure Resource Graph limita o número de solicitações para suas operações. As etapas neste artigo para determinar as solicitações restantes e como responder quando o limite for atingido também se aplicam ao Gráfico de Recursos. No entanto, o Resource Graph define seu próprio limite e taxa de redefinição. Para obter mais informações, consulte Cabeçalhos de limitação do Gráfico de Recursos.
O Azure Resource Graph também tem uma solução que permite um mecanismo adicional para obter dados de recursos quando você atinge os limites de limitação do provedor de recursos integrando-se perfeitamente com as APIs GET e LIST existentes do plano de controle do Azure Resource Manager, oferecendo uma solução poderosa e escalável para acesso a dados de recursos. Para obter mais informações, consulte ARG GET/LIST API.
Outros fornecedores de recursos
Para obter informações sobre limitação em outros provedores de recursos, consulte:
Código de erro
Quando você atinge o limite, você recebe o código de status HTTP 429 Muitas solicitações. A resposta inclui um valor Retry-After que especifica o número de segundos que seu aplicativo deve aguardar antes de enviar a próxima solicitação. Se você enviar uma solicitação antes do valor de repetição expirar, sua solicitação não será processada e um novo valor de repetição será retornado.
Se você estiver usando um SDK do Azure, o SDK pode ter uma configuração de repetição automática. Para obter mais informações, consulte Diretrizes de repetição para serviços do Azure.
Alguns provedores de recursos retornam 429 para relatar um problema temporário. O problema pode ser uma condição de sobrecarga que sua solicitação não causou. Ou, pode ser um erro temporário sobre o estado do recurso de destino ou recurso dependente. Por exemplo, o provedor de recursos de rede retorna 429 com o código de erro RetryableErrorDueToAnotherOperation quando outra operação bloqueia o recurso de destino. Para determinar se o erro vem da limitação ou de uma condição temporária, exiba os detalhes do erro na resposta.
Pedidos restantes
Você pode determinar o número de solicitações restantes examinando os cabeçalhos de resposta. As solicitações de leitura retornam um valor no cabeçalho para o número de solicitações de leitura restantes. As solicitações de gravação incluem um valor para o número de solicitações de gravação restantes. A tabela a seguir descreve os cabeçalhos de resposta que você pode examinar para esses valores:
Cabeçalho da resposta | Descrição |
---|---|
x-ms-limite-de-taxa-restante-assinatura-exclusões | O escopo da assinatura exclui as exclusões restantes. Esse valor é retornado em operações de exclusão. |
Limite de taxa restante da subscrição de leituras x-ms | As leituras com escopo da assinatura permanecem. Esse valor é retornado em operações de leitura. |
x-ms-ratelimit-remaining-subscription-writes (limite de taxa restante para gravações de assinaturas) | Gravações com escopo de assinatura restantes. Esse valor é retornado em operações de gravação. |
x-ms-ratelimit-remaining-(leituras-restantes-do-locatário) | O escopo do locatário lê o restante. |
x-ms-ratelimit-remaining-tenant-writes | Gravações com escopo do locatário restantes. |
x-ms-limite-de-taxa-restante-inscrição-requisições-de-recursos | Solicitações de tipo de recurso com escopo de assinatura restante. Esse valor de cabeçalho é retornado somente se um serviço substituir o limite padrão. O Resource Manager adiciona esse valor em vez das leituras ou gravações da assinatura. |
x-ms-limite-de-taxa-restante-assinatura-recurso-entidades-leitura | Solicitações de coleta de tipo de recurso com escopo de assinatura restante. Esse valor de cabeçalho é retornado somente se um serviço substituir o limite padrão. Esse valor fornece o número de solicitações de coleta restantes (recursos de lista). |
x-ms-ratelimit-restante-pedidos-recurso-inquilino | Solicitações de tipo de recurso com escopo de locatário restante. Esse cabeçalho é adicionado para solicitações no nível do locatário e somente se um serviço substituir o limite padrão. O Resource Manager adiciona esse valor em vez de o locatário ler ou gravar. |
x-ms-limite-taxas-restante-recurso-entidades-leitura-inquilino | Solicitações de coleta de tipo de recurso com escopo do locatário restantes. Esse cabeçalho só é adicionado para solicitações no nível do locatário e somente se um serviço substituir o limite padrão. |
O provedor de recursos também pode retornar cabeçalhos de resposta com informações sobre solicitações restantes. Para obter informações sobre cabeçalhos de resposta retornados pelo provedor de recursos de computação, consulte Cabeçalhos de resposta informativos de taxa de chamada.
Recuperando os valores de cabeçalho
Recuperar esses valores de cabeçalho em seu código ou script não é diferente de recuperar qualquer valor de cabeçalho.
Por exemplo, em C#, você recupera o valor do cabeçalho de um objeto HttpWebResponse chamado response com o seguinte código:
response.Headers.GetValues("x-ms-ratelimit-remaining-subscription-reads").GetValue(0)
No PowerShell, recupere o valor do cabeçalho de uma Invoke-WebRequest
operação.
$r = Invoke-WebRequest -Uri https://management.azure.com/subscriptions/{guid}/resourcegroups?api-version=2016-09-01 -Method GET -Headers $authHeaders
$r.Headers["x-ms-ratelimit-remaining-subscription-reads"]
Para obter um exemplo completo do PowerShell, consulte Verificar limites de ARM para uma determinada assinatura.
Para ver as solicitações restantes de depuração, forneça o parâmetro -Debug em seu cmdlet do PowerShell .
Get-AzResourceGroup -Debug
A resposta inclui muitos valores, incluindo o seguinte valor de resposta:
DEBUG: ============================ HTTP RESPONSE ============================
Status Code:
OK
Headers:
Pragma : no-cache
x-ms-ratelimit-remaining-subscription-reads: 11999
Para obter limites de gravação, use uma operação de gravação:
New-AzResourceGroup -Name myresourcegroup -Location westus -Debug
A resposta inclui muitos valores, incluindo os seguintes valores:
DEBUG: ============================ HTTP RESPONSE ============================
Status Code:
Created
Headers:
Pragma : no-cache
x-ms-ratelimit-remaining-subscription-writes: 1199
Na CLI do Azure, você usa a opção mais detalhada para recuperar o valor do cabeçalho:
az group list --verbose --debug
O comando retorna muitos valores, incluindo os seguintes valores:
msrest.http_logger : Response status: 200
msrest.http_logger : Response headers:
msrest.http_logger : 'Cache-Control': 'no-cache'
msrest.http_logger : 'Pragma': 'no-cache'
msrest.http_logger : 'Content-Type': 'application/json; charset=utf-8'
msrest.http_logger : 'Content-Encoding': 'gzip'
msrest.http_logger : 'Expires': '-1'
msrest.http_logger : 'Vary': 'Accept-Encoding'
msrest.http_logger : 'x-ms-ratelimit-remaining-subscription-reads': '11998'
Para obter limites de gravação, use uma operação de gravação:
az group create -n myresourcegroup --location westus --verbose --debug
A operação retorna muitos valores, incluindo os seguintes valores:
msrest.http_logger : Response status: 201
msrest.http_logger : Response headers:
msrest.http_logger : 'Cache-Control': 'no-cache'
msrest.http_logger : 'Pragma': 'no-cache'
msrest.http_logger : 'Content-Length': '163'
msrest.http_logger : 'Content-Type': 'application/json; charset=utf-8'
msrest.http_logger : 'Expires': '-1'
msrest.http_logger : 'x-ms-ratelimit-remaining-subscription-writes': '1199'
Próximos passos
- Para obter mais informações sobre limites e quotas, veja Subscrição do Azure e limites, quotas e restrições do serviço.
- Para saber como lidar com pedidos REST assíncronos, veja Monitorizar operações assíncronas do Azure.