AWS Lambda nedir? Örneklerle Lambda Fonksiyonu

AWS Lambda işlevinden önce şunu anlayalım:

Sunucusuz Nedir?

Sunucusuz, genel olarak sunucusuz uygulamaları ifade eden bir terimdir. Sunucusuz uygulamalar, herhangi bir sunucu provizyonu gerektirmeyen ve sunucu yönetimi 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 Ağ hizmetleri. Bu nedenle 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 gerekir ve çalışır.

AWS Lambda'da kod, S3 klasörüne dosya ekleme/silme, HTTP isteği gibi AWS hizmetlerindeki olayların yanıtına göre yürütülür. Amazon API ağ geçidi vb. Ancak Amazon Lambda yalnızca arka plan görevlerini yürütmek için kullanılabilir.

AWS Lambda işlevi, işletim sistemi (OS) erişim kontrolünü, işletim sistemi düzeltme eklerini, doğru boyutlandırmayı, provizyonu, ölçeklendirmeyi vb. yönetmek 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ı
AWS Lambda Blok Şeması

1 Adım: Öncelikle AWS Lambda kodunuzu AWS Lambda tarafından desteklenen herhangi bir dilde yükleyin. Java, Python, Go ve C#, AWS Lambda işlevi 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 Code'u çalıştırır:

5 Adım: AWS yalnızca AWS lambda kodu yürütüldüğünde ücretlendirme yapar, aksi takdirde ücretlendirme yapmaz.

Bu durum aşağıdaki senaryolarda gerçekleşir:

  • Dosyaları bir S3 klasörüne yükleyin
  • HTTP alma/gönderme uç noktası URL'sine ulaşıldığında
  • 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 yürütüldüğünde ücret alacağınızı, aksi takdirde herhangi bir ödeme yapmanız gerekmediğini unutmamalısınız.

AWS Lambda'yı Tetikleyen Etkinlikler

AWS Lambda'yı kullandığınızda tetiklenecek Olaylar burada verilmiştir.

  • Dynamo DB tablosunu ekleme, güncelleme ve silme
  • 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.
  • Görevi normal zaman düzeninde gerçekleştirecek şekilde etkinliği planlamanıza 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ı, aynı temel yürütme ortamında çalışan çeşitli dillerdeki işlevlere izin verir. Bu, çalışma zamanında işlevinizi yapılandırmanıza yardımcı olur. Ayrıca seçtiğiniz öğeyle de eşleşiyor Programlama dili.

Etkinlik kaynağı:

Olay kaynağı bir AWS hizmetidir; örneğin Amazon SNS veya özel bir hizmet. Bu tetikleyici işlevi, mantığını yürütmenize 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 kodunuza açıklama eklemenize olanak tanır.

AWS Lambda nasıl kullanılır?

Şimdi AWS Lambda örneğini kullanarak AWS Lambda'nın nasıl kullanılacağını öğreneceğiz:

1. Adım) Adım 1) AWS Lambda URL'sini açın
Goto https://aws.amazon.com/lambda/ ve Başlayın

AWS Lambda nasıl kullanılır?

2. Adım) Bir hesap oluşturun
Ardından, bir hesap oluşturun veya mevcut hesabınızla oturum açın

3. Adım) Kodu düzenleyin ve Çalıştır'a tıklayın,
Bir sonraki Lambda sayfasında,

  1. kodu düzenle
  2. Çalıştıra tıkla

AWS Lambda nasıl kullanılır?

4. Adım) Çıkışı kontrol edin
Çıktıyı göreceksiniz

AWS Lambda nasıl kullanılır?

AWS Lambda VS AWS EC2

AWS Lambda ile AWS Lambda arasındaki bazı önemli farkları burada bulabilirsiniz: 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ıdır (laaS). Sanallaştırılmış bilgi işlem kaynakları sağlar.
Esneklik Bilgi işlem örneklerine giriş yapmak için herhangi bir esneklik sunmaz. Özelleştirilmiş bir işletim sistemi veya dil çalışma zamanı seçmenizi sağlar. Çeşitli örnekleri, özel işletim sistemlerini, güvenlik yamalarını ve ağı vb. seçme esnekliği sunar.
Kurulum süreci Kodu çalıştırmak istediğiniz ortamınızı seçmeniz ve kodu AWS Lambda'ya aktarmanız gerekir. 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ı Birkaç dille sınırlıdır. Ortam kısıtlaması yok.

AWS Lambda VS AWS Elastik Fasulye Sırığı

AWS Lambda ile Elastic Beanstalk arasındaki bazı önemli farkları burada bulabilirsiniz.

parametreler AWS Elastik Fasulye Sırığı 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. Bir uygulamayı dağıtmak için kullanamazsınız.
AWS kaynaklarının seçimi Size AWS kaynaklarını seçme özgürlüğü verir; Örneğin uygulamanıza göre en uygun EC2 bulut sunucusunu seçebilirsiniz. Bir tür EC2 bulut sunucusu gibi AWS kaynakları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:

  • ETL sürecinde size yardımcı olur
  • 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 olarak yedeklenmesi
  • Ölçeklenebilir arka uçlar (mobil uygulamalar, LoT 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 bazı en iyi uygulamalar AWS Lambda işlevleri:

  • Doğru "zaman aşımını" kullanın.
  • /temp klasöründeki 500MB boyutunda yerel depolamanın işlevlerini kullanın
  • Mevcut olayın işlenmesiyle doğrudan ilgili olmayan başlangıç ​​kodunun kullanımını en aza indirmek.
  • İ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?

Lambda'nın kesinlikle ideal bir seçenek olmadığı durumlar şunlardır:

  • Temel çağrıları temel alan AWS Lambda yazılım paketlerini veya uygulamalarını kullanmak uygun değildir. Windows RPC'ler
  • MS-Office belge işleme gibi lisans anlaşmaları ile özel yazılım uygulamaları için kullanılıyorsa, Oracle veritabanları vb.
  • AWS Lambda, GPU hızlandırma, donanım benzeşimi gibi özel donanım işlemleri için kullanılmamalıdır.

AWS Lambda'yı kullanmanın avantajları

AWS lambda kullanmanın artıları/yararları şunlardır:

  • AWS Lambda kullanımı son derece esnek bir araçtır
  • VPC'ler de dahil olmak üzere kaynaklara erişim izni vermenize yardımcı olur
  • Doğrudan şununla yazar: WYSIWYG editörü konsolda.
  • Bunu eklenti olarak kullanabilirsiniz Eclipse ve Visual Studio.
  • Sunucusuz mimari olduğundan sunucuları yönetme veya sağlama konusunda endişelenmenize gerek kalmaz.
  • 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.
  • Yalnızca kodunuz çalıştığında, harcanan hesaplama süresi için yapmanız gerekir.
  • CloudWatch aracılığıyla kod performansınızı gerçek zamanlı olarak izleyebilirsiniz.
  • Kodunuzu, başka bir sunucuyu hazırlamadan veya yönetmeden çalıştırmanıza olanak tanır
  • 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 işlevi harici olay ve zamanlayıcılarla yapılandırılmalıdır; zamanlama için kullanılabilir.
  • Lambda işlevleri durum bilgisiz olduğundan hızlı bir şekilde ölçeklendirilebilir.
  • 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ı için tamamen AWS'ye güvenir; dolayısıyla kodunuz gerektiriyorsa herhangi bir ek yazılım yükleyemezsiniz.
  • Eşzamanlı yürütme 100 ile sınırlıdır
  • AWS Lambda, altyapı açısından tamamen AWS'ye bağımlıydı; Kodunuz gerektiriyorsa ek bir yazılım yükleyemezsiniz.
  • Bellek hacmi 128 ila 1536 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ı yalnızca 5 dakikadır.

ÖZET

  • Sunucusuz, genel olarak sunucusuz uygulamaları ifade eden bir terimdir.
  • AWS Lambda böyle bir sunucusuz bilgi işlem hizmetidir. Bu nedenle hangi AWS kaynaklarının başlatılacağı veya bunların nasıl yönetileceği konusunda endişelenmenize gerek yok.
  • İşlev, AWS sunucusuz Lambda'da çalışan bir program veya komut dosyasıdır.
  • Çalışma zamanı, aynı temel yürütme ortamında çalışan çeşitli dillerdeki işlevlere izin verir.
  • Olay kaynağı bir AWS hizmetidir; örneğin Amazon SNS veya özel bir hizmet.
  • 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.
  • Günlük akışı, Lambda işlevlerinizin yürütme akışını ve performansını analiz etmenize yardımcı olan özel günlük ifadeleriyle işlev kodunuza açıklama eklemenize olanak tanır.
  • 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ıdır (laaS). Sanallaştırılmış bilgi işlem kaynakları sağlar.
  • 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. Bir uygulamayı dağıtmak için kullanamazsınız.
  • AWS Lambda size şu konularda yardımcı olur: ETL süreci.
  • AWS'de Lambda işlevinin en iyi uygulaması doğru "zaman aşımını" kullanmaktır.
  • Temel çağrıları temel alan AWS Lambda yazılım paketlerini veya uygulamalarını kullanmak uygun değildir. Windows RPC'ler
  • AWS Lambda son derece esnek bir araçtır.
  • AWS Lambda aracı küçük projeler için uygun değildir.
  • AWS Lambda'yı kullandığınızda tetiklenecek yaygın bir olay, Dynamo DB tablosunun veri eklenmesi, güncellenmesi ve silinmesidir.