Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure Resource Graph (ARG) foi construído para consultas rápidas e em larga escala em seus recursos do Azure. Como o ARG indexa dados de forma assíncrona, é importante entender quando consultar o ARG diretamente e quando recorrer ao provedor de recurso (RP) que possui o recurso – a fonte de verdade para seu estado de recurso. Este artigo explica como o ARG se encaixa no plano de controle do Azure, quando usar uma estratégia híbrida de consulta ARG + RP, e como escolher entre RP, a API de Consulta do ARG e sua API Get/List.
Como o ARG se encaixa no plano de controle do Azure
O plano de controle de recursos possui três componentes:
Azure Resource Manager (ARM) – o gateway de requisições para ARG. O ARM roteia requisições para o ARG sem precisar fazer chamadas individuais para cada provedor de recursos.
Provedores de recursos (por exemplo, o Provedor de Recursos de Computação, ou CRP) – a fonte de verdade para o estado do recurso. Chamadas diretas para as APIs de um provedor de recursos retornam dados fortemente consistentes.
Azure Resource Graph (ARG) – um índice assíncrono sobre dados de plano de controle, construído para consultas de alta taxa e escalabilidade em grandes conjuntos de recursos. O ARG é próximo de tempo real; ele segue um modelo de consistência eventual, devido à natureza distribuída do sistema que dá suporte à API. O ARG fica um pouco atrasado em relação à fonte da verdade por um breve período, ocasionalmente mais longo em caso de interrupções no back-end.
O ARG permanece sincronizado por meio de dois mecanismos: notificações de alteração assíncronas do ARM e dos provedores de recursos, e passagens de reconciliação periódicas que detectam qualquer informação que uma notificação tenha perdido.
Note
O ARG abre mão da consistência forte em troca de escala e throughput. As APIs dos provedores de recursos priorizam a precisão em um determinado momento em detrimento da taxa de transferência. Escolha com base em qual deles sua operação precisa.
Use uma estratégia híbrida de consulta para cenários críticos
Em cenários onde o frescor e a confiabilidade dos dados importam, use uma estratégia híbrida: consulte o ARG para escala e recorra à API do provedor de recursos quando detectar um problema de atualização dos dados, atraso na indexação, latência elevada ou antes de tomar uma ação crítica baseada no estado do recurso. Essa abordagem evita dois modos de falha ao mesmo tempo – o custo de sempre ligar diretamente ao RP e o risco de agir com dados do ARG obsoletos como se estivessem atuais (por exemplo, reiniciar ou desprovisionar um recurso com base em estado desatualizado).
Cenários comuns
Consulta imediatamente após a criação do recurso - Alguns fluxos de trabalho sondam um recurso em 1–2 segundos após a criação — por exemplo, esperar para provisioningState atingir um estado final ou esperar que certas propriedades apareçam na resposta. Como a indexação ARG pode não estar completa, uma consulta emitida logo após a criação pode retornar 404 Not Found mesmo que o recurso exista. Use uma estratégia híbrida para evitar falsos negativos: se o ARG retornar "não encontrado" imediatamente após uma gravação, consulte o provedor de recursos antes de tratar a operação como um erro.
Verificando o estado antes de uma operação destrutiva - Se seu fluxo de trabalho usa o ARG para identificar recursos candidatos a uma operação, e essa operação for destrutiva (excluir, reiniciar, desprovisionar), não aja diretamente sobre o resultado do ARG. A latência do backend pode deixar a visão do ARG sobre um recurso desatualizada. Esse risco é significativo quando a ação resultante não pode ser desfeita.
Importante
Use o ARG para construir sua lista de candidatos e depois faça uma verificação de forte consistência contra o provedor de recursos imediatamente antes de executar a ação destrutiva.
Orientações para lidar com a consistência eventual do ARG
Verifique apenas antes de ações irreversíveis, não em todas as sondagens. Adicione uma verificação secundária do provedor de recursos antes de fluxos de trabalho que impactam o cliente ou são destrutivos — não em toda consulta ARG. Verificar cada consulta anula o propósito de usar o ARG e pode acionar a limitação de taxa em grande escala. O padrão é: confie no ARG para identificação e escalabilidade, verifique com a fonte da verdade imediatamente antes de qualquer ação irreversível.
Tip
Se a verificação no volume da sua operação gerar preocupações com a limitação de taxa, entre em contato com a Microsoft antes de atingir um limite. Solicitações de aumento de quota para dar suporte a esse padrão são esperadas e podem ser atendidas — não são um caso excepcional.
Adicione o tempo de espera entre consultas ARG subsequentes quando seu cenário permitir. Onde acontecer, use o recuo exponencial: comece com alguns segundos antes da primeira tentativa e aumente o tempo de espera a cada tentativa subsequente (por exemplo, 2s → 4s → 8s → 16s...) até um limite de alguns minutos. Pare de aumentar assim que atingir esse limite e continue a sondar no intervalo limitado ou recorra à API do provedor de recursos.
Considere a API ARG Get/List para pesquisas de alta frequência. Consulte esta seção que fala mais sobre como configurar um plano B com a API Get/List.
Comparação da API
Use esta tabela para decidir qual API se encaixa no seu cenário.
| Característica | APIs de provedores de recursos (exemplo: CRP) | API de consulta ARG | API ARG Get/List |
|---|---|---|---|
| O que é | Chamadas diretas para as próprias APIs de um provedor de recursos (por exemplo, APIs VM/VMSS) para consultar recursos e inventário. | API de consultas em massa do Azure Resource Graph, disponível via Resource Graph Explorer no portal Azure, Azure PowerShell, CLI do Azure, SDKs e API REST. | Utiliza as APIs Get/List do plano de controle existentes com useResourceGraph=true adicionado, que encaminha a chamada através do back-end ARG. Disponível através das APIs REST do Azure e SDKs selecionados. |
| Referência | Encontre provedores de recursos por serviços do Azure |
Execute uma consulta Azure Resource Graph usando a API REST, que usaPOST /providers/Microsoft.ResourceGraph/resources |
ARG GET/LIST API aproveita as APIs GET do plano de controle existentes, adicionando a flag useResourceGraph=true às APIs e roteando a chamada para esse backend de forma fluida. |
| Mais adequado para | • Consultas de pequena escala, ad hoc ou pouco frequentes a APIs do plano de controle. • Cenários que exigem dados fortemente consistentes diretamente da fonte da verdade. • Uma verificação final antes de uma operação destrutiva ou irreversível (exclusão, reiniciação, desprovisionamento). • Um plano B quando os dados do ARG estão obsoletos. |
• Consultas em massa no nível do locatário que combinam dados de vários locatários, assinaturas, grupos de recursos ou grupos de gerenciamento para cenários analíticos complexos. • Escaneia ou investiga muitos recursos (milhares ou mais) para obter o estado. |
• Consultas com escopo na superfície completa da API get/list para uma assinatura única ou grupo de recursos. • Cenários de pesquisa de alta concorrência e alto rendimento. |
| Cota de limitação | Varia conforme o recurso e a operação, geralmente abaixo dos limites do ARG. Exemplo: GET nas VMs do VMSS é de 36 chamadas/min no nível do recurso e 2.000 chamadas/min no nível da assinatura. | 15 consultas a cada 5 segundos. Pode ser tratado caso a caso. | Alinha-se aos limites do ARM — até 4.000 consultas/minuto/assinatura/chamador. Esse é um limite suave e pode ser aumentado conforme necessário. |
| Nível de coerência | Fortemente consistente — essa é a fonte da verdade. | Segue um modelo de consistência eventual. Os dados são indexados no backend do ARG com uma latência de alguns minutos, tipicamente inferior a 1 minuto. | Segue um modelo de consistência eventual. Os dados são indexados no backend do ARG com uma latência de alguns minutos, tipicamente inferior a 1 minuto. |
| Disponibilidade | As APIs de plano de controle em si não carregam um SLA, mas os recursos gerenciados por elas têm – por exemplo, Azure VMs carregam um SLA de 99,9% ou superior, dependendo das opções de redundância. | Não há SLA público. | Não há SLA público. |
| Estágio do ciclo de vida do produto | GA (em disponibilidade geral) | GA (em disponibilidade geral) | GA (em disponibilidade geral) |
| Preços | É gratuito para ligar. Recursos criados ou gerenciados por meio dessas APIs (VMs, armazenamento, etc.) incorrem em cobranças padrão do Azure. | Gratuito | Gratuito |
Note
Os limites de limitação variam de acordo com o tipo de recurso e a operação. As figuras acima são exemplos (VMSS mostrado na coluna do provedor de recursos) – verifique os limites atuais para seu tipo de recurso e região específicos, em vez de tratar esses números como constantes fixas.
Tanto o padrão híbrido de fallback quanto a API Get/List ajudam a garantir que você obtenha o estado mais preciso possível do recurso, sem ficar bloqueado por lacunas temporárias de atualização dos dados.