Configuração do Exception Handler

Para configurar um "Exception Handler" é necessário definí-lo dentro de um fluxo e aplicá-lo aos módulos. Também pode ser necessário configurar o servidor syslog e o e-mail de notificação


Como acessar

Na página de edição de fluxo, selecione o botão "Exception Handlers".


Objetivos

Configurar o tratamento de exceção para um módulo REST.


Passo a Passo

Passo 01: Criar o Exception Handler de tratamento de erros HTTP

Clique em "Adicionar Exception Handler".

Na tela apresentada:

  • Defina um nome para o seu Exception Handler, por exemplo HTTP Handler. Esse nome será visualizado na configuração do módulo.

  • Crie uma descrição sobre esta Exception Handler.

  • Defina um escopo de disponibilidade do seu EH.

    • Fluxo: Visualizado e disponível apenas no flow que você está editando.

    • Integração: Visualizado e disponível para todos os flows da Integração que você está editando.

    • Espaço: Disponível para qualquer fluxo de qualquer integração do seu espaço.

  • Clique em "Adicionar regra" para criar uma nova Regra do Handler.

Tela para a inserção de dados do Handler

Após o clique em "Adicionar regra", será a segunda parte das configurações:

  • Defina um nome para sua Regra do Handler, como por exemplo Client/Server Error Responses.

  • Defina as re-tentativas para 1. O objetivo é permitir que a plataforma tente mais 1 vez a chamada, eliminando eventuais erros pontuais de comunicação.

  • Defina o tempo de espera.

  • Defina a expressão regular que identifica qualquer erro de cliente ou servidor HTTP. Para isso usamos uma expressão regular que encontra qualquer sequência de 3 dígitos iniciada em 4 ou 5. Observe que quaisquer caracteres são importante para o funcionamento de uma expressão regular, inclusive os espaços.

    • “status”: [45]\d\d

Você pode encontrar validadores de expressões regulares na Internet, ex: https://regex101.com/

  • Selecione as notificações que essa ER irá gerar, por exemplo Syslog e Local.

  • Defina a mensagem gerada nessas notificações, por exemplo: HTTP Error 400/500. Essa mensagem poderá ser filtradas no syslog ou nos logs locais.

Essa Regra do Handler pode ser sumarizada pelo quadro abaixo:

Nome

Tentativa

Tempo de espera

REGEX

ANY

Notificação

Mensagem

Enviar Parâmetros?

Client/Server Error Responses

1

0

“status”: [45]\d\d

syslog

local

HTTP Error 400/500

Mais abaixo, em Regra default do Handler:

  • Defina as notificações que serão geradas, por exemplo syslog e Local.

  • Defina a mensagem de notificação, por exemplo: HTTP FATAL ERROR.

  • Selecione Enviar parâmetros na mensagem? Essa opção irá incluir na mensagem de notificação toda a informação de contexto da chamada, permitindo identificar exatamente os parâmetros utilizados.

  • Escolha a Ação final (Continuar, Continuar loop ou Parar)

  • Clique em "Salvar" para finalizar as configurações.

Passo 02: Criar o Exception Handler de tratamento de erros Genéricos

Muitos erros são imprevisíveis. Podemos definir um EH para tratá-los de forma padronizada.

  • Crie um novo EH com nome Generic com escopo de Integração.

  • Adicione a seguinte Regra do Handler:

Name

Retries

Delay

REGEX

ANY

Notificação

Message

Send Params

Generic

1

0

syslog

local

UNKNOWN ERROR

  • Observe que selecionamos o campo ANY. Com essa opção qualquer exceção será tratada por essa regra. Tipicamente essa opção é aplicada apenas uma vez no final de uma sequência de EHs para tratar todos os erros que não foram especificamente definidos anteriormente.

  • Configure a Regra default do Handler.

  • Selecione Syslog e Local como mecanismos de notificação.

  • Selecione Enviar parâmetros na mensagem?. Essa opção nos permitirá investigar os detalhes do erro desconhecido que gerou a exceção.

  • Selecione a ação final com "Parar". Dessa forma o fluxo será interrompido, pois estamos lidando com algum erro grave para o qual nosso fluxo não está preparado a responder.

  • Clique em "Salvar" para finalizar as configurações.

Passo 03: Aplicar os Exception Handlers no Módulo

Entre no modo de edição do módulo que receberá os Exception Handlers. Observe que ambos EH criados estão disponíveis para aplicação no módulo.

Tela de edição do módulo e os Exception Handlers disponíveis
  • Primeiro selecione HTTP Handler e em seguida selecione Generic.

  • Observe que eles são inseridos no campo de Handlers selecionados na ordem em que foram selecionados. Essa ordem determina também a ordem na qual as exceções serão avaliadas e portanto é fundamental para o correto funcionamento da pilha de EH.

Exception Handlers aplicados ao módulo

Passo 04: Configurar as notificações syslog e e-mail do Exception Handler

Ao criar uma regra no Exception Handler, é possível escolher qual ou quais mensagens você receberá.

No entanto, somente selecionar o tipo de mensagem não é suficiente para garantir o recebimento da notificação.

Para receber todas as notificações, siga os seguintes passos:

  1. Acesse "Configurações" na área de edição do fluxo.

  2. Clique na aba "Alertas".

  3. Em "Configurações de logs", insira o endereço do servidor syslog e/ou os endereços de e-mail que devem receber as notificações.

  4. Por fim, clique em "Salvar alterações".

Passo 05: Executar o fluxo

Execute esse fluxo contra algum serviço programado para responder com código de erro (400) ou provoque o erro através de algum parâmetro configurado erroneamente.

  • Execute o fluxo contra um serviço que responda código de erro, por exemplo 400.

  • Observe que o fluxo é finalizado com sucesso apesar da exceção, uma vez que ela foi tratada com ação de continuar.

  • Observe que as mensagens de log geradas localmente apontam que o EH HTTP Handler foi responsável pela manipulação da exceção.

  • Observe que foram geradas duas chamadas sendo uma re-tentativa com suas respectivas notificações. A terceira mensagem de erro foi gerada pela Regra default do Handler e inclui os detalhes da chamada que gerou a exceção.

  • Adicionalmente você pode executar esse fluxo contra um serviço que está indisponível. Nesse caso não receberemos um código HTTP, mas algum outro tipo de erro. O exemplo abaixo foi gerado contra um servidor com o serviço desabilitado.

  • Observe o erro de Conexão Recusada na mensagem detalhada.

  • Observe que a manipulação desse erro foi executada pelo EH Generic.

  • O fluxo foi interrompido com a geração de um ERRO conforme programado no Handler através da ação Parar da Regra default do Handler.


Próximos Passos:

Cases do Exception Handler


Last updated