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 Functions gerar logs como se estivesse utilizando o JavaScript do browser.


O que é

O processo de debugging em 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 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 function

Siga estas etapas para criar uma function que registra mensagens:

  1. Acesse o Azion Console com suas credenciais de login.
  2. No Products Menu, navegue até Libraries > Functions.
  3. Clique em + Function para criar uma nova 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 function, deve configurar sua application para executar a função para que os logs sejam acessíveis.


Instancie a function

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

  1. No Products Menu, navegue até Build > Applications.
  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 function recém-criada no menu suspenso.
  6. Clique no botão Save.

Agora sua 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 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 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 Functions como a fonte.
  5. Selecione o modelo 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 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 Functions Console para ver os logs originados das 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.