Azure İşlevleri'da Node.js uygulamalarının sorunlarını giderme
Önemli
Bu makalenin içeriği, sayfanın üst kısmındaki seçicide Node.js programlama modeli seçiminize göre değişir. Genel kullanıma sunulan v4 modeli, JavaScript ve TypeScript geliştiricileri için daha esnek ve sezgisel bir deneyime sahip olacak şekilde tasarlanmıştır. Geçiş kılavuzunda v3 ve v4 arasındaki farklar hakkında daha fazla bilgi edinin.
Bu makalede Node.js işlev uygulamalarında yaygın senaryolarda sorun gidermeye yönelik bir kılavuz sağlanır.
Azure portalındaki Sorunları tanılama ve çözme sekmesi, uygulamanızla ilgili olası sorunları izlemek ve tanılamak için kullanışlı bir kaynaktır. Ayrıca tanıya dayalı olarak sorunlarınıza olası çözümler sunar. Daha fazla bilgi için bkz. Azure İşlevi uygulaması tanılama.
Bir diğer yararlı kaynak da Özel KQL sorguları çalıştırabilmeniz için Uygulama Analizler örneğiniz için Azure portalındaki Günlükler sekmesidir. Aşağıdaki örnek sorgu, geçen gün uygulamanız için hataları ve uyarıları nasıl görüntüleyebileceğinizi gösterir:
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
Bu kaynaklar sorununuzu çözmediyse, aşağıdaki bölümlerde belirli uygulama sorunları için öneriler sağlanır:
İşlev bulunamadı
Günlüklerinizde aşağıdaki hatalardan herhangi birini görürseniz:
HTTP tetikleyicisi bulunamadı.
İş işlevi bulunamadı. İş sınıflarınızı ve yöntemlerinizi genel yapmayı deneyin. Bağlama uzantıları (örneğin Azure Depolama, ServiceBus, Zamanlayıcılar vb.) kullanıyorsanız başlangıç kodunuzda (örneğin oluşturucu) uzantılar için kayıt yöntemini çağırdığınızdan emin olun. AddAzure Depolama() oluşturucu. AddServiceBus(), oluşturucu. AddTimers(), vb.).
Aşağıdaki düzeltmeleri deneyin:
- Yerel olarak çalışırken Azure İşlevleri Core Tools v4.0.5382 veya üzerini kullandığınızdan emin olun.
- Azure'da çalışırken:
Azure İşlevleri Runtime Sürüm 4.25 veya üzerini kullandığınızdan emin olun.
Node.js v18 veya üzerini kullandığınızdan emin olun.
Uygulama ayarını
FUNCTIONS_NODE_BLOCK_ON_ENTRY_POINT_ERROR
olaraktrue
ayarlayın. Bu ayar tüm model v4 uygulamaları için önerilir ve tüm giriş noktası hatalarının uygulama içgörüleri günlüklerinizde görünür olmasını sağlar. Daha fazla bilgi için bkz. Azure İşlevleri için uygulama ayarları başvurusu.Giriş noktası hataları için işlev uygulaması günlüklerinizi denetleyin. Aşağıdaki örnek sorgu, geçen gün uygulamanız için giriş noktası hatalarını nasıl görüntüleyebileceğinizi gösterir:
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"
- Uygulamanızın kökte host.json ile gerekli klasör yapısına ve function.json dosyası içeren her işlev için bir klasöre sahip olduğundan emin olun.
Undici isteği bir oluşturucu değil
İşlev uygulaması günlüklerinizde aşağıdaki hatayı alırsanız:
System.Private.CoreLib: İşlev yürütülürken özel durum oluştu: Functions.httpTrigger1. System.Private.CoreLib: Sonuç: Hata Özel Durumu: undici_1.İstek bir oluşturucu değil
Node.js sürüm 18.x veya üzerini kullandığınızdan emin olun.
Azure İşlevleri çalışma zamanı algılanamadı
İşlev uygulaması günlüklerinizde aşağıdaki hatayı alırsanız:
UYARI: Azure İşlevleri çalışma zamanı algılanamadı. "@azure/işlevler" paketini test moduna geçirme - tüm özellikler desteklenmez.
Dosyanıza package.json
başvuru applicationinsights
olup olmadığını denetleyin ve sürümün veya daha yüksek olduğundan ^2.7.1
emin olun. Sürümü güncelleştirdikten sonra komutunu çalıştırın npm install
Microsoft’tan yardım alın
Microsoft'tan daha fazla yardım almak için aşağıdaki yollardan birini kullanabilirsiniz:
- Azure İşlevleri Node.js deposunda bilinen sorunları arayın. Sorununuzun belirtildiğini görmüyorsanız yeni bir sorun oluşturun ve neler olduğunu bize bildirin.
- Bu kılavuzu kullanarak sorununuzu tanılayamıyorsanız, uygulamanızla ilgili sorunları tanılamaya yardımcı olmak için Microsoft destek mühendisleri kullanılabilir. Microsoft çeşitli destek planları sunar. Azure portalındaki işlev uygulaması sayfanızın Destek + sorun giderme bölümünde bir destek bileti oluşturun.