Important
ページの上部にあるセレクターで Node.js プログラミング モデルを選ぶと、この記事の内容は変わります。 v4 モデルは一般提供されており、JavaScript と TypeScript の開発者にとって、より柔軟で直感的なエクスペリエンスが得られるように設計されています。 v3 と v4 の違いの詳細については、移行ガイドを参照してください。
この記事では、Node.js 関数アプリの一般的なシナリオをトラブルシューティングするためのガイドを提供します。
Azure ポータルの [問題の診断と解決] タブは、アプリケーションに関連する可能性のある問題を監視および診断するのに役立つリソースです。 また、診断に基づいて問題に対する潜在的な解決策も提供します。 詳細については、「Azure Function app diagnostics」を参照してください。
もう 1 つの便利なリソースは、カスタム KQL クエリを実行できるように、Application Insights インスタンスのAzure ポータルの [ログ] タブです。 次のクエリ例は、過去 1 日のアプリのエラーと警告を表示する方法を示しています。
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
これらのリソースで問題が解決しなかった場合は、次のセクションで特定のアプリケーションの問題に関するアドバイスを提供します。
関数が見つかりません
ログに次のいずれかのエラーが表示される場合:
HTTP トリガーが見つかりません。
ジョブ関数が見つかりません。 ジョブクラスとメソッドを public に設定してみてください。 バインド拡張機能 (Azure Storage、ServiceBus、Timers など) を使用している場合は、スタートアップ コード (ビルダーなど) で拡張機能の登録メソッドを呼び出したことを確認してください。AddAzureStorage() ビルダー。AddServiceBus() ビルダー。AddTimers() など)。
次の修正を試してください。
- ローカルで実行する場合は、Azure Functions Core Tools v4.0.5382 以降を使用していることを確認してください。
- Azureで実行する場合:
ランタイム バージョン 4.25 以降Azure Functions使用していることを確認します。
Node.js v18 以降を使用していることを確認します。
アプリ設定の
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERRORをtrueに設定します。 この設定は、すべてのモデル v4 アプリに対して推奨され、すべてのエントリ ポイント エラーがアプリケーション分析情報ログに確実に表示されます。 詳細については、「Azure Functions のアプリケーション設定のリファレンス」をご覧ください。関数アプリのログでエントリ ポイントのエラーを確認します。 次のクエリ例は、過去 1 日のアプリのエントリ ポイント エラーを表示する方法を示しています。
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"
- ルートに host.json と、function.jsonファイルを含む各関数のフォルダーを含む必要なフォルダー構造がアプリにあることを確認します。
Undici 要求はコンストラクターではありません
関数アプリのログに次のエラーが表示される場合:
System.Private.CoreLib: 関数の実行中の例外: Functions.httpTrigger1。 System.Private.CoreLib: 結果: エラー例外: undici_1.Request はコンストラクターではありません
バージョン 22.x 以降 Node.js 使用していることを確認します。
Azure Functions ランタイムを検出できませんでした
関数アプリのログに次のエラーが表示される場合:
警告: Azure Functions ランタイムを検出できませんでした。 "@azure/functions" パッケージをテスト モードに切り替える - すべての機能がサポートされているわけではありません。
package.json ファイルでapplicationinsightsへの参照を確認し、バージョンが^2.7.1以上であることを確認します。 バージョンを更新した後、次を実行します。 npm install
Microsoftからヘルプを取得する
次のいずれかの方法で、Microsoftからさらにヘルプを取得できます。
- Azure Functions Node.js リポジトリで既知の問題を検索します。 問題が表示されない場合は、新しい問題を作成し、発生した内容をお知らせください。
- このガイドを使用して問題を診断できない場合は、Microsoftサポート エンジニアがアプリケーションの問題の診断に役立ちます。 Microsoftでは、さまざまなサポート プランが提供されます。 Azure ポータルの関数アプリ ページの [サポート + トラブルシューティング] セクションでサポート チケットを作成します。
次のステップ
Azure Functions の Microsoft Q&A ページ - Azure Functions Node.js 開発者ガイド