# Timeout Hatası Nedir?
1. API Gateway ile entegre olmuş bir Lambda fonksiyonu çalıştırıldığında: API Gateway, Lambda fonksiyonunun tamamlanması için belirli bir süre bekler. Eğer Lambda, bu sürede sonuç veremezse, API Gateway zaman aşımına uğrar ve 504 Gateway Timeout hatası alırsınız.
2. Sadece Lambda fonksiyonu içinde: AWS Lambda'nın işlem süresi bitmeden önce tamamlanmadığında, Lambda kendisi bir timeout hatası verir.
# Timeout Hatasının Sebepleri
- Aşırı uzun işlem süreleri: Lambda fonksiyonunuzun yapması gereken işlem çok karmaşık veya zaman alıcıysa, zaman aşımına uğrayabilir.
- Yanıt verme süresi yavaş API'ler: Lambda fonksiyonunuz harici bir API'ye bağlanıyorsa ve bu API çok yavaş çalışıyorsa, fonksiyonunuzun işlem süresi uzayabilir.
- Düşük kaynak yapılandırması: Lambda fonksiyonuna atanan bellek miktarı, işlem süresine uygun olmayabilir.
- Yanıt süreleri: API Gateway veya diğer tetikleyiciler, zaman aşımına neden olacak şekilde yeterince hızlı yanıt veremeyebilir.
# Lambda Timeout Hatası Nasıl Çözülür?
1. Timeout Süresini Artırın
Lambda'nın çalışma süresi genellikle varsayılan olarak 3 saniyedir, fakat daha uzun bir işlem süresi gerektiren fonksiyonlar için bu süreyi arttırmanız gerekebilir. Bunun için Lambda fonksiyonunun timeout ayarını değiştirebilirsiniz.
// Lambda timeout ayarını 15 saniye olarak artırma örneği
const params = {
FunctionName: 'myLambdaFunction',
Timeout: 15 // Timeout'u 15 saniye olarak ayarladık
};
lambda.updateFunctionConfiguration(params, function(err, data) {
if (err) {
console.log('Hata:', err);
} else {
console.log('Başarılı:', data);
}
});
2. Kodunuzu Optimiz Edin
Lambda fonksiyonunuzu daha verimli hale getirmek için kod optimizasyonu yapmanız gerekebilir. Gereksiz döngüleri kaldırarak ve daha hızlı veri işlemleri gerçekleştirmek, Lambda'nın daha hızlı çalışmasına yardımcı olur.
3. Bellek Miktarını Artırın
Lambda'nın belleği, işlem süresini doğrudan etkiler. Eğer Lambda fonksiyonunuz daha fazla bellek gerektiriyorsa, bu değeri artırarak performansı artırabilirsiniz. AWS Lambda'nın bellek ayarı, CPU gücünü de artıracaktır, bu da fonksiyonun daha hızlı çalışmasını sağlar.
// Lambda fonksiyonunun belleğini artırma örneği
const params = {
FunctionName: 'myLambdaFunction',
MemorySize: 1024 // Belleği 1024 MB olarak ayarladık
};
lambda.updateFunctionConfiguration(params, function(err, data) {
if (err) {
console.log('Hata:', err);
} else {
console.log('Başarılı:', data);
}
});
4. Harici Bağlantıların Yanıt Süresini Gözden Geçirin
Lambda fonksiyonunuz harici bir kaynağa bağlanıyorsa, bu kaynağın yanıt süresi de Lambda'nın zaman aşımına uğramasına neden olabilir. Bağlantınızın hızını izleyin ve gerekirse bağlanmayı yeniden yapılandırın.
5. API Gateway Zaman Aşımını Artırın
Lambda, bir API Gateway üzerinden tetikleniyorsa, API Gateway’in Timeout ayarlarını da gözden geçirmeniz gerekebilir. Lambda fonksiyonu tamamlanmadan önce API Gateway'in zaman aşımına uğramaması için bu süreyi artırın.
# Sonuç
---