Configuração do Exception Handler
Last updated
Last updated
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
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
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.
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
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.
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.
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.
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.
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:
Acesse "Configurações" na área de edição do fluxo.
Clique na aba "Alertas".
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.
Por fim, clique em "Salvar alterações".
É fundamental que a opção “Fluxos” esteja ativada em “Notificações de elementos”. Leia o artigo "Notificações".
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: