1 of 20
2 of 20
3 of 20
4 of 20
5 of 20
6 of 20
7 of 20
8 of 20
9 of 20
10 of 20
11 of 20
12 of 20
13 of 20
14 of 20
15 of 20
16 of 20
17 of 20
18 of 20
19 of 20
20 of 20

doc

Como fazer o debug de regras criadas com Rules Engine

Visão geral

Debug Rules permite que você verifique se as regras ou rule sets criados usando o módulo Rules Engine para Edge Application e Edge Firewall foram executadas na sua aplicação.

Saiba mais sobre regras em Rules Engine para Edge Application e Rules Engine para Edge Firewall.

Você pode fazer o debug de regras usando GraphQL API, Azion Data Streaming e Azion Real-Time Events.


  1. Habilitando Debug Rules
  2. Realizando debug de regras usando GraphQL API
    2.1. Criando Personal Tokens
    2.2. Consultando dados de regras com o Postman
  3. Realizando debug de regras usando Data Streaming
  4. Realizando debug de regras usando Real-Time Events

1. Habilitando Debug Rules

Para fazer o debug de regras ou rule sets, você deve ativar a funcionalidade Debug Rules no Azion Real-Time Manager (RTM).

Nota: essa funcionalidade está em early access. Entre em contato com o time de Vendas para a habilitar em sua conta.

Para habilitar o debug de regras em Edge Application:

  1. Accesse o RTM.
  2. Acesse Products menu > Edge Application.
  3. Selecione a aplicação em que deseja habilitar o debug.
  4. Na aba Main Settings, habilite a opção Debug rules.
  5. Clique no botão Save.

Para habilitar o debug de regras em Edge Firewall:

  1. Accesse o RTM.
  2. Acesse Products menu > Edge Firewall.
  3. Selecione o rule set em que deseja habilitar o debug.
  4. Na aba Main Settings, habilite a opção Debug rules.
  5. Clique no botão Save.

Aviso: a funcionalidade de debug só funciona em rule sets ativas. Certifique-se que a rule set que você deseja incluir no processo de debugging está com a opção Active habilitada.


2. Realizando debug de regras usando GraphQL API

Consulte a documentação da GraphQL API para mais informações.

Para consultar os dados sobre regras disponibilizados pela GraphQL API, você irá realizar duas etapas: criar um Personal Token e executar sua solicitação no Postman. Para isso, siga os passos nas próximas seções.

2.1. Criando Personal Tokens

Para começar a usar a API GraphQL, você precisa de uma personal token a fim de validar seu acesso.

Para criar um personal token:

  1. Acesse o RTM.
  2. Acesse Account Menu > Personal Tokens.
  3. Clique no botão Add Personal Token e preencha os campos.
  4. Salve seu personal token em um local seguro para utilizá-lo nas próximas etapas.

Consulte a página de documentação de Personal Tokens para mais informações sobre seu processo de criação.

Como alternativa, você pode criar um personal token de curta duração através da Azion API.

2.2. Consultando dados de regras com o Postman

Após criar o seu personal token, vá para o Postman e siga os próximos passos:

  1. Na parte superior do Postman, clique no botão com o símbolo + para criar uma nova requisição.
  2. Vá até a aba Headers na parte superior da página, clique em Bulk Edit.
  3. Adicione o seguinte código, juntamente com o valor do personal token, sem os colchetes:
Authorization:Token [TOKEN VALUE]

Após criar o Headers com o token, continue na mesma tela do Postman para criar o corpo da requisição:

  1. No canto superior esquerdo, clique na opção GET para abrir a lista suspensa.
  2. Selecione a opção POST.
  3. Na linha de opções, selecione a aba Body > GraphQL.
  4. No espaço QUERY, adicione a seguinte HTTP Query:
query HttpQuery {
  httpEvents(
    limit: 10,
    filter: {
      tsRange: {begin:"2023-02-14T10:10:10", end:"2023-02-15T10:10:10"}
    }
    orderBy: [ts_ASC]
  ) 
  {
    ts
    remoteAddress
    requestUri
    stacktrace
  }
}

O exemplo acima consulta dados sobre regras usando o dataset HTTP Events. O limit filtra as últimas 10 entradas de dados dentro do tempo definido por tsRange. Os dados são ordenados através do campo ts (timestamp).

A consulta acima deve retornar:

  • ts: o timestamp de quando a requisição foi iniciada.
  • remoteAddress: o IP do cliente que fez a requisição para a aplicação.
  • requestUri: o tipo de requisição HTTP e URI.
  • stacktrace: regras e rule sets executados.

Após criar a consulta, você pode enviá-la para a API GraphQL e receber o retorno dos dados:

  1. No campo Enter request URL, adicione a URL da API GraphQL: https://api.azionapi.net/events/graphql
  2. No canto superior direito da página, clique no botão Send.

Você receberá um retorno com os dados solicitados, como no exemplo a seguir:

{
  "data": {
    "httpEvents": [
      {
        "ts": "2023-02-15T17:52:16Z",
        "remoteAddress": "00.00.000.00",
        "requestUri": "/get",
        "stacktrace": "{\\\"edge_application_response\\\":[\\\"Add Azion Cookie\\\"],\\\"edge_firewall\\\":[\\\"Set WAF\\\",\\\"Rate-Limit Root\\\"],\\\"edge_application_request\\\":[\\\"Default Rule\\\",\\\"Test Send Cert to Origin 1\\\",\\\"Test Send Cert to Origin 2\\\"]}"
      }
    ]
  }
}

No exemplo acima, a GraphQL API retornou todas as regras executadas de Request Phase e Response Phase criadas usando Edge Application, bem como uma rule set de Edge Firewall que também foi executada com sucesso.

Para saber mais sobre como consultar dados com a API GraphQL, visite a página de documentação.


3. Realizando debug de regras usando Data Streaming

Consulte a documentação de Data Streaming para mais informações sobre como configurar um endpoint de data streaming.

Para fazer o debug de rules usando Data Streaming, siga os passos:

  1. Accesse o RTM.
  2. Acesse Products menu > Data Streaming.
  3. Clique Add Streaming.
  4. Dê um nome para seu data streaming.
  5. No menu dropdown Data Source, selecione Edge Applications.
  6. No menu dropdown Template, selecione Custom Template.
  7. Na caixa de código Data Set, adicione as variáveis:

     {
         "time": "$time",
         "traceback": "$traceback"
     }
    
  8. Em Options, selecione Filter Domains ou All Domains. Veja mais sobre cada opção em Como associar domínios no Data Streaming.
  9. Na seção Destination, selecione um Endpoint Type na lista suspensa.

    Os campos para preenchimento são diferentes dependendo do tipo de endpoint que você escolher. Descubra mais informações sobre cada campo na página de configuração de endpoint.

  10. Confira se a opção Active está ligada.
  11. Clique no botão Save.

Para confirmar que seus logs estão sendo enviados, você pode utilizar o Real-Time Events para consultar análises detalhadas.

Para visualizar todos os seus data streamings, vá para a página de Data Streaming no RTM e selecione um a partir da lista exibida. Você pode criar diversos data streamings.

Definição das variáveis

Variável Definição
$time Data e hora da requisição. Exemplo: Oct. 31st, 2022 - 19:30:41
$traceback Retorna os nomes das regras criadas usando Rules Engine para Edge Application ou Edge Firewall que foram executadas a partir da requisição.

4. Realizando debug de regras usando Real-Time Events

Consulte a documentação de Real-Time Events para mais informações sobre seu funcionamento.

Para acessar os dados de regras através do Real-Time Events, siga os passos:

  1. Accesse o RTM.
  2. Acesse Products menu > Real-Time Events.
  3. No campo Data Source, selecione Edge Applications.
  4. Modifique o período de tempo em que as requisição foi realizada e adicione filtros, se necessário.
  5. Clique no botão Search.
  6. Selecione o log body desejado.
  7. Procure pelo campo traceback.

O campo traceback deverá conter o tipo de regra e o comportamento executados dentro do tempo selecionado. Por exemplo:

{\"edge_application_response\":[\"Add Azion Cookie\"],\"edge_firewall\":[\"Set WAF\",\"Rate-Limit Root\"],\"edge_application_request\":[\"Default Rule\",\"Test Send Cert to Origin 1\",\"Test Send Cert to Origin 2\"]}

No exemplo acima, o campo traceback contém todas as regras executadas de Request Phase e Response Phase criadas usando Edge Application, bem como uma rule set ativa de Edge Firewall.


Não encontrou o que procurava? Abra um ticket.