AWS Lambda nedir? Örneklerle Lambda Fonksiyonu
⚡ Akıllı Özet
AWS Lambda, olay odaklı, sunucusuz bir bilgi işlem platformudur. Amazon Tetikleyicilere yanıt olarak kodunuzu çalıştıran, kaynak tahsisi, ölçeklendirme ve sunucu yönetimini otomatik olarak halleden, böylece siz yalnızca iş mantığına odaklanabileceğiniz web hizmetleri.
AWS Lambda'yı incelemeden önce, sunucusuz mimarinin ne anlama geldiğini anlamak faydalı olacaktır.
Sunucusuz Nedir?
Sunucusuz (serverless) terimi genel olarak sunucu gerektirmeyen uygulamaları ifade eder. Sunucusuz uygulamalar, herhangi bir sunucu kurulumuna ihtiyaç duymayan ve sunucuları yönetmenizi gerektirmeyen uygulamalardır.
AWS Lambda nedir?
AWS Lambda, tarafından sağlanan olay odaklı, sunucusuz bir bilgi işlem platformudur. Amazon bir parçası olarak Amazon Web servisleri sayesinde hangi AWS kaynaklarını başlatacağınız veya bunları nasıl yöneteceğiniz konusunda endişelenmenize gerek yok. Bunun yerine, kodu Lambda'ya koymanız yeterli, kod çalışır.
AWS Lambda'da kod, S3 kovasına dosya ekleme veya silme, HTTP isteği gibi AWS hizmetlerindeki olayların yanıtına göre yürütülür. Amazon API Ağ Geçidi ve benzeri etkinlikler. Ancak, Amazon Lambda yalnızca arka plan görevlerini yürütmek için kullanılabilir.
AWS Lambda fonksiyonu, işletim sistemi (OS) erişim kontrolü, işletim sistemi yamalama, boyutlandırma, kaynak tahsisi, ölçeklendirme vb. işlemlerle uğraşmak yerine, temel ürününüze ve iş mantığınıza odaklanmanıza yardımcı olur.
AWS Lambda nasıl çalışır?
Aşağıdaki AWS Lambda örneği ve blok diyagramı, AWS Lambda'nın çalışma şeklini birkaç kolay adımda açıklıyor:
1 Adım: Öncelikle AWS Lambda kodunuzu AWS Lambda tarafından desteklenen herhangi bir dilde yükleyin. Java, PythonGo ve C#, AWS Lambda fonksiyonu tarafından desteklenen dillerden bazılarıdır.
2 Adım: Bunlar, AWS Lambda'yı tetiklemenize olanak tanıyan bazı AWS hizmetleridir.
3 Adım: AWS Lambda, kodunuzu ve tetiklenmesi gereken olay ayrıntılarını yüklemenize yardımcı olur.
4 Adım: AWS hizmetleri tarafından tetiklendiğinde AWS Lambda kodunu çalıştırır.
5 Adım: AWS, yalnızca AWS Lambda kodu çalıştırıldığında ücret alır, bunun dışında ücret almaz.
Bu durum aşağıdaki senaryolarda gerçekleşir:
- Dosyaları bir S3 klasörüne yükleyin
- Bir HTTP GET/POST uç noktası URL vuruldu
- Dynamo DB tablolarını eklemek, değiştirmek ve silmek için.
- Veri akışlarının toplanması sürecinde
- Bildirim almak
- Web sitesinin barındırılması
- E-posta gönderme
Not: AWS hizmetleri için yalnızca AWS Lambda kodu çalıştırıldığında ücretlendirileceğinizi, bunun dışında herhangi bir ücret ödemeniz gerekmediğini unutmamalısınız.
AWS Lambda'yı Tetikleyen Etkinlikler
AWS Lambda'yı kullandığınızda tetiklenecek olaylar şunlardır.
- Dynamo DB tablosunda veri ekleme, güncelleme ve silme işlemleri
- SNS'e anlık bildirimleri dahil etmek için
- CloudTrail'de günlük geçmişini aramak için
- S3 nesnesine giriş
- DynamoDB Tabloya veri eklendiğinde, değiştirildiğinde ve silindiğinde AWS Lambda'yı tetikleyebilir.
- Etkinliği planlayarak görevi düzenli bir zaman diliminde gerçekleştirmenize yardımcı olur.
- S3 paketlerindeki nesnelerde yapılan değişiklikler
- Gönderilen bildirimler Amazon SNS.
- AWS Lambda, CloudTrail günlüklerini işlemek için kullanılabilir.
- API Gateway, AWS Lambda'yı GET/POST yöntemlerinde tetiklemenize olanak tanır.
AWS Lambda Concepts
Fonksiyon: İşlev, AWS Lambda'da çalışan bir program veya komut dosyasıdır. Lambda, çağırma olaylarını, bir olayı işleyen ve yanıtını döndüren işlevinize aktarır.
Çalışma zamanları: Çalışma zamanı (runtime), aynı temel yürütme ortamında çalışan çeşitli dillerdeki işlevlere olanak tanır. Bu, işlevinizi çalışma zamanında yapılandırmanıza yardımcı olur. Ayrıca seçtiğiniz dille de uyumludur. Programlama dili.
Etkinlik kaynağı: Olay kaynağı bir AWS hizmetidir; örneğin Amazon SNS veya özel bir servis. Bu tetikleyici, fonksiyonun mantığını yürütmesine yardımcı olur.
Lambda Katmanları: Lambda katmanları kitaplıklar, özel çalışma süreleri ve diğer önemli işlev bağımlılıkları için önemli bir dağıtım mekanizmasıdır. Bu AWS bileşeni aynı zamanda geliştirme işlevi kodunuzu, kullandığı değişmeyen kod ve kaynaklardan ayrı olarak yönetmenize de yardımcı olur.
Günlük akışları: Günlük akışı, AWS Lambda işlevlerinizin yürütme akışını ve performansını analiz etmenize yardımcı olan özel günlük kaydı ifadeleriyle işlev kodunuzu açıklamanıza olanak tanır.
AWS Lambda nasıl kullanılır?
Şimdi, bir AWS Lambda örneğiyle AWS Lambda'yı nasıl kullanacağımızı öğreneceğiz:
) 1 Adım AWS Lambda'yı açın URL
MyCAD'de yazılım Güncelleme ye git https://aws.amazon.com/lambda/ ve Başlayın.
) 2 Adım Hesap oluştur
Ardından, bir hesap oluşturun veya mevcut hesabınızla giriş yapın.
) 3 Adım Kodu düzenleyin ve Çalıştır'a tıklayın.
Sonraki Lambda sayfasında kodu düzenleyin ve Çalıştır'a tıklayın.
) 4 Adım çıktıyı kontrol et
Çıktıyı göreceksiniz.
AWS Lambda VS AWS EC2
İşte AWS Lambda ile AWS Lambda arasındaki bazı önemli farklar. EC2.
| Parametreler | AWS Lambda | AWS EC2 |
| Tanım | AWS Lambda bir Hizmet Olarak Platformdur (PaaS). Arka uç kodunuzu çalıştırmanıza ve yürütmenize yardımcı olur. | AWS EC2, Hizmet Olarak Altyapı (IaaS) modelidir. Sanallaştırılmış bilgi işlem kaynakları sağlar. |
| Esneklik | Hesaplama örneklerine giriş yapma konusunda herhangi bir esneklik sunmaz. Özelleştirilmiş bir işletim sistemi veya dil çalışma ortamı seçmenize olanak tanır. | Çeşitli örnek sürümleri, özel işletim sistemleri, güvenlik yamaları ve ağ ayarları vb. seçme esnekliği sunar. |
| Kurulum süreci | Kodu çalıştırmak istediğiniz ortamı seçmeniz ve kodu AWS Lambda'ya göndermeniz gerekiyor. | EC2'de ilk kez işletim sistemini seçip gerekli tüm yazılımı yüklemeniz ve ardından kodunuzu EC2'ye aktarmanız gerekir. |
| Çevre kısıtlamaları | Bu, yalnızca birkaç dille sınırlıdır. | Ortam kısıtlaması yok. |
AWS Lambda mı, AWS Elastic mi? Beanstalk
İşte AWS Lambda ve Elastic arasındaki bazı önemli farklar. Beanstalk.
| Parametreler | AWS Elastik Beanstalk | AWS Lambda |
| Ana görev | Uygulamaları çalıştıran altyapı konusunda endişelenmeden uygulamaları AWS Cloud'da dağıtın ve yönetin. | AWS Lambda, arka uç kodunuzu çalıştırmak ve yürütmek için kullanılır. Uygulama dağıtımı için kullanamazsınız. |
| AWS kaynaklarının seçimi | Bu size AWS kaynaklarını seçme özgürlüğü verir; örneğin, uygulamanıza en uygun EC2 örneğini seçebilirsiniz. | AWS kaynaklarını, örneğin bir EC2 örneği türünü seçemezsiniz; Lambda, iş yükünüze göre kaynaklar sunar. |
| sistem tipi | Durumsal bir sistemdir. | Vatansız bir sistemdir. |
AWS Lambda'nın Kullanım Örnekleri
AWS Lambda, aşağıdakiler gibi çok çeşitli uygulamalar için kullanılır:
- Size şu konularda yardımcı olur: ETL süreci
- Gerçek zamanlı dosya işleme ve gerçek zamanlı akış işleme gerçekleştirmenizi sağlar
- Web uygulamaları oluşturmak için kullanın
- Kullanım yeri Amazon Alexa Chatbot'lar ve benzeri ürünler Amazon Yankı / Alexa
- Veri işleme (gerçek zamanlı akış analitiği)
- Günlük görevlerin otomatik yedeklemeleri
- Ölçeklenebilir arka uçlar (mobil uygulamalar, IoT cihazları)
- Sunucu tarafı arka uç mantığını yürütmenize yardımcı olur
- Verileri filtrelemenize ve dönüştürmenize olanak tanır.
Lambda işlevine ilişkin en iyi uygulamalar
İşte AWS Lambda fonksiyonlarının en iyi kullanım örneklerinden bazıları:
- Doğru "zaman aşımını" kullanın.
- /temp klasöründeki 500 MB boyutundaki yerel depolama alanının özelliklerinden yararlanın.
- Mevcut olayın işlenmesiyle doğrudan ilgili olmayan başlangıç kodunun kullanımını en aza indirin.
- İstek gecikmelerini görüntülemek ve optimize etmek için Lambda işlevlerinizin yerleşik CloudWatch izlemesini kullanmalısınız.
AWS Lambda ne zaman kullanılmamalıdır?
Aşağıda Lambda'nın kesinlikle ideal bir seçenek olmadığı durumlar yer almaktadır:
- AWS Lambda'yı, altta yatan fonksiyonları çağırmaya dayanan yazılım paketleri veya uygulamalar için kullanmak uygun değildir. Windows RPC'ler.
- Eğer MS-Office belge işleme gibi lisans anlaşmaları olan özel yazılım uygulamaları için kullanılıyorsa, Oracle veritabanları vb.
- AWS Lambda, GPU hızlandırma ve donanım yakınlığı gibi özel donanım süreçleri için kullanılmamalıdır.
AWS Lambda'yı kullanmanın avantajları
İşte AWS Lambda kullanmanın avantajları/faydaları:
- AWS Lambda, kullanımı son derece esnek bir araçtır.
- Bu, VPC'ler de dahil olmak üzere kaynaklara erişim izni vermenize yardımcı olur.
- Yazar doğrudan iletişime geçti WYSIWYG editörü konsolda.
- Bunu eklenti olarak kullanabilirsiniz Eclipse hem de Visual Studio.
- Sunucusuz bir mimari olduğu için sunucuları yönetme veya tedarik etme konusunda endişelenmenize gerek yok.
- Herhangi bir kurulum yapmanıza gerek yok Sanal makine.
- Geliştiricilerin herhangi bir altyapı oluşturmadan olaylara kodun yanıtını çalıştırmasına ve yürütmesine yardımcı olur.
- Sadece kodunuz çalıştığında harcanan işlem süresi için ödeme yapmanız yeterlidir.
- CloudWatch aracılığıyla kod performansınızı gerçek zamanlı olarak izleyebilirsiniz.
- Bu sayede, başka bir sunucu tedarik etmeye veya yönetmeye gerek kalmadan kodunuzu çalıştırabilirsiniz.
- Kodu yalnızca gerektiğinde çalıştırmanıza yardımcı olur.
- Günde birkaç isteği karşılayacak ve hatta saniyede binlerce isteği destekleyecek şekilde otomatik olarak ölçeklendirebilirsiniz.
- AWS Lambda, planlanmış görevleri gerçekleştirmek için harici olay zamanlayıcıların yardımıyla yapılandırılabilir.
- AWS'deki Lambda fonksiyonu, zamanlama için kullanılabilmesi amacıyla harici olaylar ve zamanlayıcılarla yapılandırılmalıdır.
- Lambda fonksiyonları durumsuz oldukları için hızlı bir şekilde ölçeklendirilebilirler.
- AWS Lambda hızlı olduğundan kodunuzu milisaniyeler içinde yürütür.
AWS Lambda sınırlamaları
AWS Lambda kullanmanın eksileri/dezavantajları şunlardır:
- AWS Lambda aracı küçük projeler için uygun değildir.
- AWS Lambda, altyapı açısından tamamen AWS'ye bağımlıdır; bu nedenle, kodunuz gerektiriyorsa ek bir yazılım yüklemenize gerek yoktur.
- Eş zamanlı yürütme, bölge başına varsayılan 1,000 ile sınırlıdır ve talep üzerine artırılabilir.
- Bellek hacmi 128 MB ile 10,240 MB arasında değişebilir.
- Etkinlik isteği 128 KB'ı geçmemelidir.
- Lambda işlevleri, günlüklerini yalnızca CloudWatch'ta yazmanıza yardımcı olur. Bu, işlevlerinizi izlemenize veya sorun gidermenize olanak tanıyan tek araçtır.
- Kod yürütme zaman aşımı 15 dakika ile sınırlıdır.





