Solucionar problemas de aplicativos .js nó no Azure Functions

Importante

O conteúdo deste artigo muda com base na sua escolha do modelo de programação Node.js no seletor na parte superior da página. O modelo v4 está geralmente disponível e foi projetado para ter uma experiência mais flexível e intuitiva para desenvolvedores JavaScript e TypeScript. Saiba mais sobre as diferenças entre v3 e v4 no guia de migração.

Este artigo fornece um guia para solucionar problemas de cenários comuns em aplicativos de função .js nó.

A guia Diagnosticar e resolver problemas no portal do Azure é um recurso útil para monitorar e diagnosticar possíveis problemas relacionados ao seu aplicativo. Também fornece potenciais soluções para os seus problemas com base no diagnóstico. Para obter mais informações, consulte Diagnóstico do aplicativo Azure Function.

Outro recurso útil é a guia Logs no portal do Azure para sua instância do Application Insights para que você possa executar consultas KQL personalizadas. A consulta de exemplo a seguir mostra como exibir erros e avisos para seu aplicativo no dia anterior:

let myAppName = "<your app name>";
let startTime = ago(1d);
let endTime = now();
union traces,requests,exceptions
| where cloud_RoleName =~ myAppName
| where timestamp between (startTime .. endTime)
| where severityLevel > 2

Se esses recursos não resolverem seu problema, as seções a seguir fornecem conselhos para problemas específicos do aplicativo:

Nenhuma função encontrada

Se vir algum dos seguintes erros nos seus registos:

Nenhum gatilho HTTP encontrado.

Nenhuma função de trabalho encontrada. Tente tornar públicas as suas aulas e métodos de trabalho. Se você estiver usando extensões de vinculação (por exemplo, Armazenamento do Azure, ServiceBus, Timers, etc.), certifique-se de ter chamado o método de registro para a(s) extensão(ões) em seu código de inicialização (por exemplo, builder. AddAzureStorage(), construtor. AddServiceBus(), construtor. AddTimers(), etc.).

Tente as seguintes correções:

  • Ao executar localmente, certifique-se de que está a utilizar as Ferramentas Principais do Azure Functions v4.0.5382 ou superior.
  • Ao executar no Azure:
    • Certifique-se de que está a utilizar o Azure Functions Runtime Versão 4.25 ou superior.

    • Certifique-se de que está a utilizar o Node.js v18 ou superior.

    • Defina a configuração FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR do aplicativo como true. Essa configuração é recomendada para todos os aplicativos do modelo v4 e garante que todos os erros de ponto de entrada estejam visíveis nos logs de insights do aplicativo. Para obter mais informações, consulte Referência de configurações de aplicativo para o Azure Functions.

    • Verifique se há erros no ponto de entrada nos logs do aplicativo de função. A consulta de exemplo a seguir mostra como exibir erros de ponto de entrada para seu aplicativo no dia anterior:

      let myAppName = "<your app name>";
      let startTime = ago(1d);
      let endTime = now();
      union traces,requests,exceptions
      | where cloud_RoleName =~ myAppName
      | where timestamp between (startTime .. endTime)
      | where severityLevel > 2
      | where message has "entry point"
      

Undici request não é um construtor

Se você receber o seguinte erro nos logs do aplicativo de função:

System.Private.CoreLib: Exceção durante a execução da função: Functions.httpTrigger1. System.Private.CoreLib: Resultado: Exceção de falha: undici_1.Request não é um construtor

Certifique-se de que está a utilizar o Node.js versão 18.x ou superior.

Falha ao detetar o tempo de execução do Azure Functions

Se você receber o seguinte erro nos logs do aplicativo de função:

AVISO: Falha ao detetar o tempo de execução do Azure Functions. Alternar o pacote "@azure/funções" para o modo de teste - nem todos os recursos são suportados.

Verifique o seu package.json ficheiro para obter uma referência e applicationinsights certifique-se de que a versão é ^2.7.1 ou superior. Depois de atualizar a versão, execute npm install

Obtenha ajuda da Microsoft

Pode obter mais ajuda da Microsoft de uma das seguintes formas:

  • Pesquise os problemas conhecidos no repositório .js nó do Azure Functions. Se não vir o seu problema mencionado, crie um novo problema e informe-nos do que aconteceu.
  • Se você não conseguir diagnosticar seu problema usando este guia, os engenheiros de suporte da Microsoft estão disponíveis para ajudar a diagnosticar problemas com seu aplicativo. A Microsoft oferece vários planos de suporte. Crie um tíquete de suporte na seção Suporte + solução de problemas da página do seu aplicativo de função no portal do Azure.

Próximos passos