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.

  • ☁️ Sunucusuz model: AWS Lambda, sunucu tedarik etme veya yönetme gerektirmeden kod çalıştırır; bu da işletim sistemi yamalama, ölçeklendirme ve kapasite planlama gibi sorunları ortadan kaldırır.
  • Olay odaklı yürütme: Fonksiyonlar S3 gibi AWS hizmetlerinden tetiklenir, DynamoDBAPI Ağ Geçidi ve SNS, yalnızca bir olay meydana geldiğinde çalışır.
  • 🧩 Dil desteği: Lambda, Node.js'i destekler. Python, JavaGo, C# ve Ruby'nin yanı sıra diğer diller için özel çalışma ortamları.
  • ???? Kullanım başına ödeme: BillBu özellik yalnızca kod yürütülürken geçerlidir ve milisaniye cinsinden ölçülür; aylık bir milyon istek için kalıcı ücretsiz kullanım hakkı bulunur.
  • Temel kavramlar: Fonksiyonlar, çalışma ortamları, olay kaynakları, katmanlar ve günlük akışları, Lambda'nın kodu nasıl yürüttüğünü ve yönettiğini tanımlar.
  • 🤖 Yapay zeka yardımı: GitHub Copilot ve Amazon Q, Lambda kodu üretirken, Lambda da üretken yapay zeka çıkarımını düzenler. Amazon ana kaya.

AWS Lambda nedir?

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:

AWS Lambda Blok Şeması

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.

AWS Lambda nasıl kullanılır?

) 2 Adım Hesap oluştur

Ardından, bir hesap oluşturun veya mevcut hesabınızla giriş yapın.

AWS Lambda nasıl kullanılır?

) 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 nasıl kullanılır?

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.

SSS

AWS Lambda, Node.js'i doğal olarak destekler. Python, JavaGo, C#, PowerShell ve Ruby. Çalışma zamanı API'si ve konteyner imajı desteği, neredeyse diğer tüm dilleri çalıştırmanıza olanak tanır, bu nedenle ekipler nadiren tercih ettikleri teknoloji yığınıyla sınırlı kalırlar.

AWS Lambda, aylık bir milyon istek ve 400,000 GB-saniye işlem gücü içeren kalıcı bir ücretsiz katman sunmaktadır. Bunun ötesinde, yalnızca istekler ve kodunuzun gerçekten kullandığı işlem gücü için, milisaniye başına ücretlendirme yapılır.

Soğuk başlatma, Lambda'nın uzun süredir boşta olan bir fonksiyon için yeni bir yürütme ortamı başlatırken yaşadığı kısa gecikmedir. Bunu, sağlanan eşzamanlılık, daha küçük paketler veya SnapStart ile azaltabilirsiniz. Java fonksiyonlar.

Evet. Lambda, ZIP arşivi yüklemenin yanı sıra, bir fonksiyonu 10 GB'a kadar konteyner imajı olarak paketlemenize de olanak tanır. Bu, daha büyük bağımlılıklar ve makine öğrenimi kütüphaneleri için uygundur.ping Aynı olay odaklı, sunucusuz yürütme modeli.

Lambda, otomatik ölçeklendirme ve milisaniye başına faturalandırma ile kısa, olay odaklı işlevleri çalıştırır. AWS Fargate ise sunucu yönetimi gerektirmeden daha uzun süreli konteynerleştirilmiş iş yüklerini çalıştırır. Hızlı olay yanıtları için Lambda'yı, istikrarlı ve uzun süreli konteyner görevleri için ise Fargate'i tercih edin.

Evet. Lambda, genellikle hafif çıkarım işlemleri yaparak ve aşağıdaki gibi hizmetlere yapılan çağrıları düzenleyerek yapay zeka uygulamalarına güç sağlar. Amazon Bedrock ve SageMaker. Konteyner imajı desteği, makine öğrenimi kütüphanelerinin paketlenmesine yardımcı olurken, Lambda ise üretken yapay zeka işlem hattının ölçeklendirilmesini üstlenir.

Evet. GitHub Yardımcı Pilotu Bir yorumdan veya isimden işleyici fonksiyonları yazarken... Amazon Q Developer, IAM politikaları, CloudFormation ve SDK çağrıları için AWS uyumlu yardım ekleyerek sunucusuz geliştirmeyi hızlandırıyor.

Her bir fonksiyona en düşük ayrıcalıklı IAM rolü atayın, gizli bilgileri şifrelenmiş ortam değişkenlerinde veya Secrets Manager'da saklayın ve hassas fonksiyonları bir VPC içine yerleştirin. Ardından CloudWatch ve CloudTrail, izleme ve denetim için etkinlikleri kaydeder.

Bu yazıyı şu şekilde özetleyin: