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.
O Azure Resource Graph (ARG) foi concebido para consultas rápidas e em grande escala nos seus recursos do Azure. Como o ARG indexa dados de forma assíncrona, é importante perceber quando consultar diretamente o ARG e quando recorrer ao fornecedor de recursos (RP) que detém o recurso – a fonte de verdade para o seu estado de recurso. Este artigo explica como o ARG se encaixa no plano de controlo 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 a sua API Get/List.
Como o ARG se encaixa no plano de controlo do Azure
O plano de controlo de recursos tem três componentes:
Azure Resource Manager (ARM) – o gateway de pedidos para ARG. O ARM encaminha pedidos para o ARG sem necessidade de fazer chamadas individuais a cada fornecedor de recursos.
Fornecedores de recursos (por exemplo, o Fornecedor de Recursos de Computação, ou CRP) – a fonte de verdade para o estado do recurso. Chamadas diretas para as APIs de um fornecedor de recursos retornam dados fortemente consistentes.
Azure Resource Graph (ARG) – um índice assíncrono sobre dados do plano de controlo, construído para consultas de alto débito e escalável em grandes conjuntos de recursos. O ARG é quase em tempo real, segue um modelo eventualmente consistente, devido à natureza distribuída do sistema que suporta a API. Apresenta um breve atraso em relação à fonte fidedigna, ocasionalmente mais prolongado caso ocorram falhas no backend.
O ARG permanece sincronizado através de dois mecanismos: notificações assíncronas de alteração do ARM e dos fornecedores de recursos, e processos periódicos de reconciliação que detetam tudo o que uma notificação possa não ter detetado.
Note
A ARG troca consistência forte por escala e rendimento. As APIs dos fornecedores de recursos trocam throughput por correção no momento certo. Escolha com base em qual deles a sua operação necessita.
Use uma estratégia de consulta híbrida para cenários críticos
Em cenários onde a frescura e fiabilidade dos dados são importantes, use uma estratégia híbrida: consultar o ARG para escalar e recorrer à API do fornecedor de recursos quando detetar um problema de frescura dos dados, atraso na indexação, latência elevada ou antes de tomar uma ação crítica baseada no estado do recurso. Esta abordagem evita dois modos de falha ao mesmo tempo – o custo de chamar sempre diretamente o RP e o risco de agir com dados ARG obsoletos como se estivessem atualizados (por exemplo, reiniciar ou desprovisionar um recurso com base num estado desatualizado).
Cenários comuns
Sondagem imediatamente após a criação do recurso - Alguns fluxos de trabalho sondam um recurso dentro de 1–2 segundos após a sua criação — por exemplo, esperar que provisioningState atinja 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 ser retornada 404 Not Found mesmo que o recurso exista. Utilize uma estratégia híbrida para evitar falsos negativos: se o ARG devolver “não encontrado” imediatamente após uma operação de escrita, recorra ao fornecedor do recurso antes de o tratar como um erro.
Verificar o estado antes de uma operação destrutiva - Se o seu fluxo de trabalho usar ARG para identificar recursos candidatos a uma operação, e essa operação for destrutiva (eliminar, 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. Este risco é significativo quando a ação resultante não pode ser desfeita.
Importante
Use o ARG para construir a sua lista de candidatos e depois faça uma verificação de consistência forte contra o fornecedor de recursos imediatamente antes de executar a ação destrutiva.
Orientações para gerir 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 fornecedor de recursos antes de fluxos de trabalho que impactem o cliente ou sejam destrutivos — não em todas as consultas do ARG. Verificar todas as sondagens anula o propósito de usar ARG e pode desencadear a limitação em escala. A abordagem é: confiar no ARG para identificação e escalabilidade, e verificar junto da fonte fidedigna imediatamente antes de qualquer ação irreversível.
Sugestão
Se verificar o volume da sua operação levantar preocupações sobre limitação, contacte a Microsoft antes de atingir um limite. Os aumentos de quotas para apoiar este padrão são um pedido justificável e esperado — não um caso extremo.
Adiciona tempo de espera entre consultas ARG subsequentes onde o teu cenário o permite. Onde acontecer, usa o recuo exponencial: começa com alguns segundos antes da primeira tentativa e aumenta o tempo de espera a cada tentativa subsequente (por exemplo, 2s → 4s → 8s → 16s...) até um limite de alguns minutos. Para de aumentar quando atingires esse limite e continua a fazer polling no intervalo limite ou volta à API do fornecedor de recursos.
Considere a API ARG Get/List para sondagens de alta frequência. Consulte esta secção que explica mais sobre como configurar um plano B com a API Get/List.
Comparação de API
Use esta tabela para decidir qual a API que se encaixa no seu cenário.
| Feature | APIs de fornecedores de recursos (exemplo: CRP) | API de Consulta do ARG | ARG Get/List API |
|---|---|---|---|
| O que é | Chamadas diretas para as próprias APIs de um fornecedor de recursos (por exemplo, APIs VM/VMSS) para consultar recursos e inventário. | API de consultas em massa do Azure Resource Graph, disponível através do Resource Graph Explorer no portal Azure, Azure PowerShell, CLI do Azure, SDKs e API REST. | Utiliza as APIs Get/List existentes do plano de controlo, com useResourceGraph=true acrescentado, o que encaminha a chamada através da infraestrutura de back-end do ARG. Disponível através das APIs REST do Azure e SDKs selecionados. |
| Referência | Localizar fornecedores de recursos por serviços do Azure |
Execute uma consulta Azure Resource Graph usando a API REST, que utilizaPOST /providers/Microsoft.ResourceGraph/resources |
ARG GET/LIST API aproveita as APIs GET do plano de controlo existentes, adicionando a flag useResourceGraph=true às APIs que encaminham a chamada para este backend de forma fluida. |
| Ideal para | • Consultas em pequena escala, ad hoc ou pouco frequentes às APIs do plano de controlo. • 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 (eliminar, reiniciar, desprovisionar). • Um plano B quando os dados ARG estão obsoletos. |
• Consultas em massa ao nível do inquilino que combinam dados de múltiplos inquilinos, subscrições, grupos de recursos ou grupos de gestão para cenários analíticos complexos. • Digitalizar ou sondar muitos recursos (milhares+) para o estado. |
• Consultas abrangendo toda a superfície da API get/list para uma única subscrição ou grupo de recursos. • Cenários de sondagens de alta concorrência e alto rendimento. |
| Quota de limitação | Varia consoante o recurso e a operação, geralmente abaixo dos limites do ARG. Exemplo: o GET nas VMs do VMSS é de 36 chamadas/min no nível do recurso e de 2 000 chamadas/min no nível da subscrição. | 15 consultas por 5 segundos. Pode ser levantado caso a caso. | Está alinhado com os limites do ARM — até 4.000 consultas/minuto/subscrição/autor da chamada. Este é um limite suave e pode ser aumentado conforme necessário. |
| Nível de consistência | Fortemente consistente — esta é a fonte da verdade. | Segue um modelo de consistência eventual. Os dados são indexados no backend ARG com uma latência de alguns minutos, normalmente inferior a 1 minuto. | Segue um modelo de consistência eventual. Os dados são indexados no backend ARG com uma latência de alguns minutos, normalmente inferior a 1 minuto. |
| Availability | As APIs de plano de controlo em si não transportam um SLA, mas os recursos geridos através delas têm – por exemplo, Azure VMs transportam um SLA de 99,9% ou superior, dependendo das opções de redundância. | Não existe SLA público. | Não há SLA público. |
| Fase do ciclo de vida do produto | Disponível de forma geral (GA) | Disponível de forma geral (GA) | Disponível de forma geral (GA) |
| Preços | É grátis para ligar. Recursos criados ou geridos através destas APIs (VMs, armazenamento, etc.) incorrem em encargos padrão do Azure. | Gratuito | Gratuito |
Note
Os limites de limitação variam consoante o tipo de recurso e a operação. As figuras acima são exemplos (VMSS mostrado para a coluna do fornecedor de recursos) – verifique os limites atuais para o seu tipo e região específicos de recursos, em vez de tratar estes números como constantes fixas.
Tanto o padrão híbrido de contingência como a API Get/List ajudam a garantir que está a recuperar o estado do recurso mais preciso disponível, sem ficar bloqueado por breves falhas na atualização dos dados.