Yeni Başlayanlar İçin AWS Lambda: İlk Fonksiyonunuzu Oluşturun
Yeni Başlayanlar İçin AWS Lambda: İlk Fonksiyonunuzu Oluşturun
AWS Lambda, Amazon tarafından tanıtılan ve geliştiricilerin altyapı yönetimi yapmadan kod çalıştırmasını sağlayan yenilikçi bir servistir. Lambda ile sunucu tedarik etme veya bakım gibi süreçlerle uğraşmazsınız; yalnızca kodunuzun çalıştığı işlem süresi için ödeme yaparsınız.
Özetle, iş mantığınızı (business logic) Lambda'ya yüklersiniz ve bir HTTP isteği geldiğinde veya AWS ekosisteminde belirli bir olay (event) gerçekleştiğinde kodunuz tetiklenir. Bu olay odaklı (event-driven) yapısı, sunucu yönetim yükünü ortadan kaldırdığı için Lambda'yı hafif ve basit görevler için son derece ideal hale getirir.
Fiyatlandırma açısından oldukça cömerttir: Ücretsiz katman (free tier) ayda 1 milyon istek ve 400.000 GB-saniye işlem süresi sunar. Bu, devasa bir hizmet sunmuyorsanız Lambda'yı büyük ihtimalle ücretsiz kullanabileceğiniz anlamına gelir.
1. Konsolda Yeni Bir Fonksiyon Oluşturma
AWS Lambda web konsoluna girdiğinizde ilk olarak kontrol paneliyle karşılaşırsınız. Buradan "Create a Lambda function" (Lambda fonksiyonu oluştur) butonuna tıklayın.
Lambda tamamen olay odaklı çalıştığı için (yani fonksiyonlar yalnızca olaylara tepki olarak çalışır), her bir iş birimi için ayrı bir Lambda fonksiyonu oluşturmanız gerekir.
2. Taslakları (Blueprints) Atlamak
Fonksiyonunuzu oluşturmaya başlamadan önce, size önceden hazırlanmış bir taslak (blueprint) seçmenizi öneren bir ekran çıkar. Taslaklar, başlangıç noktası olarak kullanıp değiştirebileceğiniz hazır Lambda fonksiyon şablonlarıdır. Bu rehberde bu adımı atlayacağız (ancak aratırsanız basit bir "helloworld" taslağı bulabilirsiniz).
3. Fonksiyon Detaylarını Yapılandırma
Ardından, ana yapılandırma ekranına ulaşacaksınız. Burada doldurmanız gereken temel alanlar şunlardır:
- Name (İsim): Fonksiyonunuza anlaşılır bir isim verin. Örneğin
HelloWorld. - Runtime (Çalışma Zamanı): Bu rehberde Node.js kullanacağız.
- Handler: Lambda'ya bir olay gerçekleştiğinde hangi metodun çalıştırılacağını söyler. Örneğin
index.handlerolarak ayarlarsanız, AWSindex.jsdosyanızın içindekihandleradlı dışa aktarılmış fonksiyonu arayacaktır. - Role (Rol): Lambda fonksiyonunuzun ihtiyaç duyduğu izinleri belirler. Eğer kodunuz S3 veya bir veritabanı gibi diğer AWS kaynaklarına erişecekse, gerekli izinlere sahip bir IAM Rolü oluşturmalı ve buraya eklemelisiniz.
- Memory and Timeout (Bellek ve Zaman Aşımı): Sayfanın alt kısmında, fonksiyonunuzun kullanabileceği maksimum belleği ve çalışma süresini ayarlayabilirsiniz. Test aşamasında varsayılan değerleri bırakabilirsiniz.
4. Handler Kodunu Yazma
Handler fonksiyonu belirli bir formata uymak zorundadır. Bu fonksiyon iki ana parametre alır:
- event: Olay tetiklendiğinde handler'a iletilen veriyi (örneğin HTTP isteğinin içeriğini) barındırır.
- context: Lambda fonksiyonunun çalışma zamanı bilgileri hakkında detayları sağlar.
Basit bir Node.js örneği:
console.log('Loading function');
exports.handler = function(event, context) {
console.log('event: ', JSON.stringify(event));
var name = event.myname || 'Anonymous';
context.succeed('Hello World, ' + name);
};
Bu kod, gelen olayı günlüklere (log) kaydeder ve olay içeriğinde myname değeri varsa bunu kullanarak, yoksa "Anonymous" diyerek "Hello World" mesajı döner.
context.succeed() metodu, Lambda fonksiyonunun başarıyla tamamlandığını bildirir.
5. İnceleme ve Oluşturma
Tüm bilgileri girdikten sonra "Next" (İleri) butonuna tıklayın. Yapılandırmanızı kontrol edebileceğiniz bir inceleme ekranı gelecek. Her şey doğru görünüyorsa "Create function" butonuna tıklayarak işlemi tamamlayın.
6. Lambda Fonksiyonunu Test Etme
Oluşturduktan sonra fonksiyonunuzun paneline yönlendirileceksiniz. Kodu test etmek için "Test" butonuna veya "Actions -> Configure test event" menüsüne tıklayın.
Kodumuz myname adında bir değer beklediği için test verisi olarak buna uygun bir JSON girebilirsiniz. Testi çalıştırdığınızda, ekranın alt kısmında fonksiyonun başarıyla çalışıp çalışmadığını ve konsola yazdırdığınız logları (bunlar CloudWatch'ta da tutulur) görebilirsiniz.
7. Olay Kaynaklarını ve API Uç Noktalarını Bağlama
Lambda fonksiyonunuz artık hazır, ancak çalışmak için bir tetikleyiciye (trigger) ihtiyacı var.
Olay Kaynakları (Event Sources): S3, DynamoDB veya CloudWatch gibi AWS servislerinde belirli olaylar olduğunda fonksiyonunuzu otomatik çalıştırabilirsiniz.
API Uç Noktaları (API Endpoints): Eğer uygulamanızın dış dünyadan (örneğin bir web sitesi veya mobil uygulama) HTTP istekleri almasını istiyorsanız, Lambda fonksiyonunuzu bir URL üzerinden erişilebilir hale getirmek için AWS API Gateway kullanmanız gerekir. Web uygulamaları geliştirirken en sık başvuracağınız yöntem budur.
Lambda'nın sunduğu sunucusuz yaklaşım, sadece operasyonel yükü azaltmakla kalmaz, aynı zamanda yüksek ölçeklenebilir ve modern uygulamalar geliştirmenin kapılarını aralar.