Memecahkan masalah aplikasi Node.js di Azure Functions
Penting
Konten artikel ini berubah berdasarkan pilihan Model pemrograman Node.js pilihan Anda di pemilih di bagian atas halaman. Model v4 umumnya tersedia dan dirancang untuk memiliki pengalaman yang lebih fleksibel dan intuitif untuk pengembang JavaScript dan TypeScript. Pelajari selengkapnya tentang perbedaan antara v3 dan v4 dalam panduan migrasi.
Artikel ini menyediakan panduan untuk memecahkan masalah skenario umum di aplikasi fungsi Node.js.
Tab Diagnosis dan selesaikan masalah di portal Azure adalah sumber daya yang berguna untuk memantau dan mendiagnosis kemungkinan masalah yang terkait dengan aplikasi Anda. Ini juga memasok solusi potensial untuk masalah Anda berdasarkan diagnosis. Untuk informasi selengkapnya, lihat Diagnostik aplikasi Azure Function.
Sumber daya lain yang berguna adalah tab Log di portal Azure untuk instans Application Insights Anda sehingga Anda dapat menjalankan kueri KQL kustom. Contoh kueri berikut menunjukkan cara menampilkan kesalahan dan peringatan untuk aplikasi Anda dalam sehari terakhir:
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
Jika sumber daya tersebut tidak menyelesaikan masalah Anda, bagian berikut memberikan saran untuk masalah aplikasi tertentu:
Tidak ada fungsi yang ditemukan
Jika Anda melihat salah satu kesalahan berikut di log Anda:
Tidak ada pemicu HTTP yang ditemukan.
Tidak ada fungsi pekerjaan yang ditemukan. Cobalah membuat kelas dan metode pekerjaan Anda menjadi publik. Jika Anda menggunakan ekstensi pengikatan (misalnya Azure Storage, ServiceBus, Timer, dll.) pastikan Anda telah memanggil metode pendaftaran untuk ekstensi dalam kode startup Anda (misalnya builder. TambahkanAzureStorage(), penyusun. TambahkanServiceBus(), penyusun. AddTimers(), dll.).
Coba perbaikan berikut:
- Saat berjalan secara lokal, pastikan Anda menggunakan Azure Functions Core Tools v4.0.5382 atau yang lebih tinggi.
- Saat berjalan di Azure:
Pastikan Anda menggunakan Azure Functions Runtime Versi 4.25 atau yang lebih tinggi.
Pastikan Anda menggunakan Node.js v18 atau yang lebih tinggi.
Atur pengaturan
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR
aplikasi ketrue
. Pengaturan ini direkomendasikan untuk semua aplikasi model v4 dan memastikan bahwa semua kesalahan titik masuk terlihat di log wawasan aplikasi Anda. Untuk informasi selengkapnya, lihat Referensi pengaturan aplikasi untuk Azure Functions.Periksa log aplikasi fungsi Anda untuk kesalahan titik masuk. Contoh kueri berikut menunjukkan cara menampilkan kesalahan titik entri untuk aplikasi Anda dalam sehari terakhir:
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"
- Pastikan aplikasi Anda memiliki struktur folder yang diperlukan dengan host.json di root dan folder untuk setiap fungsi yang berisi file function.json.
Permintaan Undici bukan konstruktor
Jika Anda mendapatkan kesalahan berikut di log aplikasi fungsi Anda:
System.Private.CoreLib: Pengecualian saat menjalankan fungsi: Functions.httpTrigger1. System.Private.CoreLib: Hasil: Pengecualian Kegagalan: undici_1.Request bukan konstruktor
Pastikan Anda menggunakan Node.js versi 18.x atau yang lebih tinggi.
Gagal mendeteksi runtime Bahasa Umum Azure Functions
Jika Anda mendapatkan kesalahan berikut di log aplikasi fungsi Anda:
PERINGATAN: Gagal mendeteksi runtime Azure Functions. Mengalihkan paket "@azure/functions" ke mode pengujian - tidak semua fitur didukung.
Periksa file Anda package.json
untuk referensi applicationinsights
dan pastikan versinya ^2.7.1
atau lebih tinggi. Setelah memperbarui versi, jalankan npm install
Dapatkan bantuan dari Microsoft
Anda bisa mendapatkan bantuan lainnya dari Microsoft dengan salah satu cara berikut:
- Cari masalah yang diketahui di repositori Node.js Azure Functions. Jika Anda tidak melihat masalah Anda disebutkan, buat masalah baru dan beri tahu kami apa yang telah terjadi.
- Jika Anda tidak dapat mendiagnosis masalah Anda menggunakan panduan ini, teknisi dukungan Microsoft tersedia untuk membantu mendiagnosis masalah dengan aplikasi Anda. Microsoft menawarkan berbagai paket dukungan. Buat tiket dukungan di bagian Dukungan + pemecahan masalah di halaman aplikasi fungsi Anda di portal Azure.