Share via


Solucionar problemas de aplicativos Node.js no Azure Functions

Importante

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

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

A guia Diagnosticar e resolver problemas no portal do Azure é um recurso útil para monitorar e diagnosticar possíveis problemas relacionados ao seu aplicativo. Além disso, fornece possíveis 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 a 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 último dia:

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 os recursos não resolverem seu problema, as seções a seguir fornecerão orientações relacionadas a problemas específicos do aplicativo:

Nenhuma função encontrada

Se você vir algum dos seguintes erros em seus registros:

Nenhum gatilho HTTP encontrado.

Nenhuma função de trabalho encontrada. Tente tornar suas classes de trabalho e métodos públicos. Se você estiver usando extensões de associação (por exemplo, Armazenamento do Azure, ServiceBus, Temporizadores etc.) verifique se chamou o método de registro para as extensões em seu código de inicialização (por exemplo, builder.AddAzureStorage(), builder.AddServiceBus(), builder.AddTimers() etc.).

Experimente as correções a seguir:

  • Ao executar localmente, verifique se você está usando Azure Functions Core Tools v4.0.5382 ou superior.
  • Ao executar no Azure:
    • Verifique se você está usando Azure Functions Runtime Versão 4.25 ou superior.

    • Verifique se você está usando Node.js v18 ou superior.

    • Defina a configuração do aplicativo FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR 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 saber mais, veja Referência das configurações de aplicativos para o Azure Functions.

    • Verifique os logs do aplicativo de funções em busca de erros de ponto de entrada. A consulta de exemplo a seguir mostra como exibir erros de ponto de entrada para seu aplicativo no último dia:

      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"
      
  • Verifique se o aplicativo tem a estrutura de pasta necessária com um host.json na raiz e uma pasta para cada função que contém um arquivo function.json.

A solicitação Undici não é um construtor

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

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

Verifique se você está usando Node.js versão 18.x ou superior.

Falha ao detectar o runtime do Azure Functions

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

AVISO: falha ao detectar o runtime do Azure Functions. Alternando o pacote "@azure/functions" para o modo de teste – nem todos os recursos têm suporte.

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

Obter ajuda da Microsoft

Você pode obter mais ajuda da Microsoft de uma das seguintes maneiras:

  • Pesquise os problemas conhecidos no repositório Azure Functions Node.js. Se você não vir seu problema mencionado, crie um novo problema e informe-nos o que aconteceu.
  • Se você não conseguir diagnosticar seu problema usando este guia, os engenheiros de suporte da Microsoft estarão disponíveis para ajudar a diagnosticar problemas com o 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ções no portal do Azure.

Próximas etapas