Résoudre les problèmes liés aux applications Node.js dans Azure Functions

Important

Le contenu de cet article change en fonction de votre choix de modèle de programmation Node.js dans le sélecteur en haut de la page. Le modèle v4 est en disponibilité générale. Il est conçu pour offrir une expérience plus flexible et intuitive aux développeurs JavaScript et TypeScript. En savoir plus sur les différences entre v3 et v4 dans le guide de migration.

Cet article propose un guide de dépannage pour les scénarios courants dans les applications de fonction en Node.js.

L’onglet Diagnostiquer et résoudre les problèmes dans le portail Azure est une ressource utile pour surveiller et diagnostiquer les éventuels problèmes liés à votre application. Il fournit également des solutions potentielles à vos problèmes en fonction du diagnostic. Pour plus d’informations, consultez les diagnostics pour les applications Fonction Azure.

Une autre ressource utile est l’onglet Journaux dans le portail Azure pour votre instance Application Insights afin de pouvoir exécuter des requêtes KQL personnalisées. L’exemple de requête suivant montre comment afficher les erreurs et les avertissements pour votre application au cours de la dernière journée :

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

Si ces ressources n’ont pas résolu votre problème, les sections suivantes fournissent des conseils pour des problèmes d’application spécifiques :

Aucune fonction trouvée

Si vous voyez l’une des erreurs suivantes dans vos journaux d’activité :

Aucun déclencheur HTTP trouvé.

Aucune fonction de travail trouvée. Essayez de rendre vos classes et méthodes de travail publiques. Si vous utilisez des extensions de liaison (par exemple stockage Azure, ServiceBus, Timers, etc.), assurez-vous d’avoir appelé la méthode d’enregistrement de l’extension ou des extensions dans votre code d’initialisation (par exemple builder.AddAzureStorage(), builder.AddServiceBus(), builder.AddTimers(), etc.).

Essayez les correctifs suivants :

  • Lors de l'exécution locale, vérifiez que vous utilisez Azure Functions Core Tools v4.0.5382 ou version ultérieure.
  • Lors de l’exécution dans Azure :
    • Vérifiez que vous utilisez Azure Functions runtime version 4.25 ou ultérieure.

    • Vérifiez que vous utilisez Node.js v18 ou version ultérieure.

    • Définissez le paramètre FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR d’application sur true. Ce paramètre est recommandé pour toutes les applications de modèle v4 et garantit que toutes les erreurs de point d'entrée sont visibles dans vos journaux d’Application Insights. Pour plus d'informations, consultez Informations de référence sur les paramètres d'application d'Azure Functions.

    • Vérifiez les journaux de votre application de fonction afin de détecter les erreurs de point d'entrée. L’exemple de requête suivant montre comment afficher les erreurs de point d’entrée pour votre application au cours de la dernière journée :

      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"
      
  • Vérifiez que votre application a la structure de dossiers requise avec un host.json à la racine et un dossier pour chaque fonction contenant un fichier function.json .

Undici request is not a constructor (La requête Undici n'est pas un constructeur)

Si l'erreur suivante apparaît dans les journaux de votre application de fonction :

System.Private.CoreLib : Exception lors de l’exécution de la fonction : Functions.httpTrigger1. System.Private.CoreLib : Résultat : Exception d’échec : undici_1.Request n’est pas un constructeur

Vérifiez que vous utilisez Node.js version 22.x ou ultérieure.

Échec de la détection du runtime Azure Functions

Si l'erreur suivante apparaît dans les journaux de votre application de fonction :

AVERTISSEMENT : Échec de la détection du runtime Azure Functions. Basculement du package « @azure/functions » en mode test . Toutes les fonctionnalités ne sont pas prises en charge.

Vérifiez que votre package.json fichier contient une référence applicationinsights et vérifiez que la version est ^2.7.1 ou ultérieure. Après avoir mis à jour la version, exécutez npm install

Obtenir de l’aide de Microsoft

Vous pouvez obtenir plus d’aide de Microsoft de l’une des manières suivantes :

  • Recherchez les problèmes connus dans le référentiel Azure Functions Node.js. Si vous ne voyez pas votre problème mentionné, créez un problème et indiquez-nous ce qui s’est passé.
  • Si vous n'êtes pas en mesure de diagnostiquer votre problème à l'aide de ce guide, Microsoft ingénieurs du support technique sont disponibles pour diagnostiquer les problèmes liés à votre application. Microsoft propose différents plans de support. Créez un ticket de support dans la section Support + résolution des problèmes de la page de votre application de fonction dans le portail Azure.

Étapes suivantes