Debugging

Debug é um processo que possibilita aos desenvolvedores depurar mensagens de log ou valores de variáveis, por exemplo. A depuração permite ao usuário de Edge Functions gerar logs como se estivesse utilizando o JavaScript do browser.


O que é

O processo de debugging em Edge Functions tem por finalidade promover maior controle da aplicação para identificação de erros. Pode ser usado, também, para auxiliar no desenvolvimento e depuração de uma function, resultando em maior observabilidade.


Como funciona

Para depurar códigos, você deve criar uma nova edge function que utilizará o método log. Esse métodoo imprime no console uma mensagem que foi previamente enviada como parâmetro para a função.

Crie uma edge function

Siga estas etapas para criar uma edge function que registra mensagens:

  1. Acesse o Azion Console com suas credenciais de login.
  2. No Products Menu, navegue até Libraries > Edge Functions.
  3. Clique em + Edge Function para criar uma nova edge function.
  4. Escolha um nome para sua função.
  5. Na aba Code, cole o seguinte código:
async function handleRequest(request) {
console.log("Hello World");
return new Response("Checking console output.", {
status: 200,
});
}
addEventListener("fetch", (event) => {
event.respondWith(handleRequest(event.request));
});
  1. Clique no botão Save para finalizar o processo.

Agora que você criou a edge function, deve configurar sua edge application para executar a função para que os logs sejam acessíveis.


Instancie a edge function

Para instanciar a função recém criada em sua aplicação, siga estas etapas:

  1. No Products Menu, navegue até Build > Edge Application.
  2. Clique na aplicação à qual você deseja adicionar a função ou crie uma nova.
  3. Vá para a aba Function Instances e clique em + Function Instance.
  4. Nomeie sua instância de função.
  5. Selecione a edge function recém-criada no menu suspenso.
  6. Clique no botão Save.

Agora sua edge function está instanciada e pronta para ser usada em sua aplicação. Você pode configurar as condições de execução e comportamentos usando o Rules Engine:

  1. Ainda na página de configuração da edge application, navegue até a aba Rules Engine e clique no botão + Rule.
  2. Dê um nome descritivo à sua regra.
  3. Selecione Request Phase.
  4. Na seção Criteria, configure os critérios da seguinte forma:
    • If ${uri} starts with /
  5. Na seção Behaviors, selecione Run Function no menu suspenso.
  6. Escolha a instância da sua edge function.
  7. Clique no botão Save.

Agora a função será executada de acordo com a regra e seus logs estarão prontos para serem capturados pelo Data Stream.


Configure um data stream

  1. No Products Menu, vá para Observe > Data Stream.
  2. Selecione um stream existente ou crie um novo clicando no botão + Stream.
  3. No campo Name, dê ao seu stream um nome único e fácil de lembrar.
  4. Na seção Data Settings, selecione Edge Functions como a fonte.
  5. Selecione o modelo Edge Functions Event Collector. Na caixa Data Set, você verá o conjunto pré-definido de variáveis:
{
"time": "$time",
"client": "$client",
"configuration": "$global_id",
"edgeFunctionID": "$edge_function_id",
"requestID": "$request_id",
"messageSource": "$message_source",
"logLevel": "$log_level",
"logMessage": "$log_message"
}
VariávelDescrição
$timeData e hora da requisição.
$clientIdentificador único do cliente Azion.
$global_idIdentificador da configuração.
$edge_function_idIdentificador da Edge Function.
$request_idIdentificador da requisição.
$message_sourceA origem da mensagem.
$log_levelNível do log gerado (ERROR, WARN, INFO, DEBUG, TRACE).
$log_messageMensagem usada para o log na chamada da função.
  1. Na seção Destination, deixe o Connector como Standard HTTP/HTTPS POST e insira a URL que receberá os dados coletados.

  2. Clique no botão Save para finalizar o processo.

Agora seu data stream coletará logs das edge functions e os enviará para a URL especificada.

Consulte a documentação para saber mais sobre Data Stream e suas configurações. Você também pode usar Real-Time Events para observar e analisar os logs gerados.

  1. No Products Menu, navegue até Observe > Real-Time Events.
  2. Selecione a aba Edge Functions Console para ver os logs originados das edge functions. Use os filtros para especificar uma consulta detalhada.
  3. Na aba Data Stream, você pode ver os logs de dados enviados para vários endpoints via Data Stream.
  4. Clique em qualquer item para ver os detalhes dos dados enviados.

Leia a documentação do Real-Time Events para saber mais.


Contribuidores