GraphiQL Playground
Abra o GraphiQL em uma URL de endpoint da GraphQL API, execute queries no navegador e adapte queries de exemplo para o schema, ataques e IPs de ataque.
O GraphiQL Playground é um editor no navegador para a GraphQL API. Nele, você escreve, valida e executa queries na URL de endpoint que o serve, e o editor verifica erros na query enquanto você digita. Use-o para explorar os datasets e os campos de um endpoint e para testar uma query antes de enviá-la pelo código.
Acessar o GraphiQL PlaygroundAbrir o Playground
Cada URL de endpoint da GraphQL API serve o Playground quando você a abre em um navegador. O Playground de um endpoint executa apenas os datasets que esse endpoint serve:
| URL do endpoint | Dados |
|---|---|
https://api.azion.com/v4/metrics/graphql | Métricas agregadas, como o dataset workloadMetrics |
https://api.azion.com/v4/events/graphql | Eventos brutos, como o dataset workloadEvents |
https://api.azion.com/v4/billing/graphql | Dados de faturamento |
https://api.azion.com/v4/accounting/graphql | Dados contábeis |
https://api.azion.com/v4/consumption/graphql | Dados de consumo |
Para abrir o Playground, faça login no Azion Console e acesse a URL do endpoint no mesmo navegador. Sem uma sessão ativa, a URL retorna HTTP 401 com este corpo em vez do Playground:
Executar uma query
Para executar uma query, cole-a no editor do Playground e execute-a. O Playground valida a query contra o schema do endpoint enquanto você digita e marca cada erro que encontra. A resposta é um JSON: um objeto data com um array por dataset da query, ou uma mensagem detail quando a API recusa a query.
Uma query para um dataset que o endpoint não serve é recusada. Por exemplo, uma query workloadEvents enviada ao endpoint de métricas retorna HTTP 400:
Para executar essa query, abra o Playground do endpoint de eventos.
Queries de exemplo
As queries desta seção são executadas no Playground como estão escritas. Cada uma indica o endpoint cujo Playground a executa. Cole uma query e, em seguida, altere os campos, os filtros e as datas para ver como a resposta muda.
Introspecção do schema
Esta query de introspecção é executada no Playground de qualquer um dos cinco endpoints. Ela retorna o schema desse endpoint: cada tipo, com os campos, os argumentos e os valores de enum, incluindo os depreciados e o motivo pelo qual cada um foi depreciado:
A resposta indica Query como o tipo de query e retorna null para os tipos de mutation e de subscription: a GraphQL API lê dados e não tem mutations.
Dados transferidos ao longo do tempo
A query HttpCalculatedDataTransferred lê o dataset workloadMetrics no Playground do endpoint de métricas. Ela seleciona ts, dataTransferredIn, dataTransferredOut e dataTransferredTotal para a janela em tsRange, agrupa as linhas por ts, ordena as linhas com ts_ASC e define limit como 2000. O dataset depreciado httpMetrics aceita a mesma query; use workloadMetrics.
IPs por trás dos ataques
A query TOP5IPsWAFRequests lê o dataset workloadEvents, então ela é executada no Playground do endpoint de eventos, https://api.azion.com/v4/events/graphql. Ela conta as requisições que o WAF sinalizou como ataques, agrupa as requisições por endereço IP do cliente e por família de ataque e retorna as cinco maiores contagens. No Playground do endpoint de métricas, a mesma query retorna HTTP 400.
O endpoint de eventos mantém os registros por cerca de 7 dias. Substitua os valores de begin e end por uma janela dentro dos últimos 7 dias:
Quando o WAF não sinalizou nenhuma requisição na janela, o array workloadEvents retorna vazio. Para saber o que cada argumento e cada campo faz, consulte Encontre os IPs por trás do tráfego de ataque.
Principais famílias de ataque
A query Top5Attacks lê o dataset workloadMetrics no Playground do endpoint de métricas. Ela agrupa as requisições por família de ataque, classifica as famílias por wafRequestsThreat, o número de requisições que o WAF sinalizou como ameaças, e retorna as cinco maiores. Substitua os valores de begin e end pela sua janela:
Para uma janela em que o WAF não sinalizou nenhuma requisição, a resposta contém uma linha, com - como família de ataque e 0 requisições de ameaça:
Para saber o que cada argumento e cada campo faz, consulte Encontre os principais ataques com GraphQL.