AWS, Python ve .NET için Lambda SnapStart özelliğini genel kullanıma sundu. Bu özellik, serverless uygulamaların başlangıç performansını önemli ölçüde iyileştiriyor. AWS, daha önce Java fonksiyonları için Lambda SnapStart’ı tanıtmıştı. Şimdi ise Python, C#, F# ve PowerShell gibi dillerde yazılmış fonksiyonlar için de bu yenilik geçerli hale geldi.
Lambda SnapStart, AWS Lambda fonksiyonlarının “cold start” gecikmesini azaltmaya yönelik bir özellik sunuyor. Bu özellik, ortamları önceden başlatarak hafıza ve disk durumlarını önbelleğe alıyor. Bu sayede, Lambda fonksiyonları her çağrıldığında yeni bir ortam başlatmak yerine, önbelleğe alınan bu ortamdan devam ediyor. Sonuç olarak başlatma süresi de büyük ölçüde hızlanıyor.
AWS Cloud geliştirici savunucusu Channy Yun, şu açıklamayı yaptı;
“Fonksiyon versiyonunu ilk kez çağırdığınızda ve çağrılar arttıkça, Lambda yeni çalışma ortamlarını önbellekten başlatacak. Bu da cold start gecikmelerini önemli ölçüde azaltacak.”
AWS Lambda SnapStart özelliği, Firecracker tabanlı mikro sanal makineler (MicroVM) kullanıyor. Böylece mikro makinelerde hafıza, cihaz durumu ve CPU gibi her bir işlevin durumu saklanıyor. “Snapshot” terimi, bu durumun dosyaya yazılması anlamına geliyor. Bu dosya, aynı fiziksel makineye ya da aynı donanım yapılandırmasına sahip farklı bir makineye aktarılabilir. Snapshot geri yüklemesi ise hafıza, cihazlar ve CPU’ya hızlıca aktarılır. Daha sonra işlemci çalışmaya başlar.
AWS kullanıcıları, Lambda SnapStart’ı AWS Management Console, AWS CLI veya AWS SDK kullanarak etkinleştirebilir, güncelleyebilir ve silebilir. Python 3.12 ve daha yüksek sürümleri ile .NET 8 ve üstü sürümleri de destekliyor.
Yan Cui, AWS Serverless Hero, bu yeniliği Twitter’da şu şekilde duyurdu;
“Vay canına, SnapStart artık Python ve .NET fonksiyonları için mevcut. Node.js’in dahil edilmemesi ilginç, popülerlikten ziyade Node.js’in SnapStart ile uyumsuz olması olasılığı var.”
AWS Lambda SnapStart, şu bölgelerde kullanılabilir;
- US East (N. Virginia)
- US East (Ohio)
- US West (Oregon)
- Asya Pasifik (Singapore)
- Asya Pasifik (Sydney)
- Asya Pasifik (Tokyo)
- Avrupa (Frankfurt)
- Avrupa (Ireland)
- Avrupa (Stockholm)
SnapStart özelliği ile Python ve .NET fonksiyonları için ek maliyetler olabilir. Bu maliyetler, fonksiyonları önbelleğe almak ve geri yüklemek için alınan ücretleri kapsar. AWS bu yüzden kullanılmayan fonksiyon versiyonlarını silerek maliyetlerinizi düşürmenizi tavsiye ediyor.