AWS Lambda işlevinden önce şunu anlayalım:
Sunucusuz nedir?
Sunucusuz, genellikle sunucusuz uygulamaları ifade eden bir terimdir. Sunucusuz uygulamalar, herhangi bir sunucu provizyonuna ihtiyaç duymayan ve sunucuları yönetmesi gerekmeyen uygulamalardır.
AWS Lambda nedir?
AWS Lambda , Amazon Web Services'in bir parçası olarak Amazon tarafından sağlanan olay odaklı, sunucusuz bir bilgi işlem platformudur. Bu nedenle, hangi AWS kaynaklarının başlatılacağı 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ünde dosya ekleme / silme, Amazon API ağ geçidinden HTTP isteği gibi AWS hizmetlerindeki olayların yanıtına göre yürütülür. 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 denetimi, işletim sistemi yaması, doğru boyutlandırma, sağlama, ölçeklendirme vb. Yönetmek yerine temel ürününüze ve iş mantığınıza odaklanmanıza yardımcı olur.
Yeni başlayanlar için bu AWS Lambda eğitiminde şunları öğreneceksiniz:
- AWS Lambda nasıl çalışır?
- AWS Lambda'yı Tetikleyen Olaylar
- AWS Lambda Kavramları
- AWS Lambda VS AWS EC2
- AWS Lambda VS AWS Elastic Beanstalk
- AWS Lambda'nın Kullanım Örnekleri
- Lambda işlevinin en iyi uygulamaları
- AWS Lambda ne zaman kullanılmaz?
- AWS Lambda kullanmanın avantajları
- AWS Lambda'nın Sınırlamaları
AWS Lambda nasıl çalışır?
Aşağıdaki blok diyagramlı AWS Lambda örneği, AWS Lambda'nın çalışmasını birkaç kolay adımda açıklamaktadır:
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ı tetiklemenizi sağlayan bazı AWS hizmetleridir.
3. Adım: AWS Lambda, kodu 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 yürütür:
5. Adım: AWS, yalnızca AWS lambda kodu yürütüldüğünde ücret alır, aksi durumda değil.
Bu, aşağıdaki senaryolarda gerçekleşecektir:
- Dosyaları bir S3 paketine yükleyin
- HTTP uç nokta URL'sini al / gönder'e ulaşıldığında
- Dynamo DB tablolarını eklemek / değiştirmek ve silmek için
- Veri akışı toplama 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 ücret alacağınızı, aksi takdirde herhangi bir ödeme yapmanız gerekmediğini unutmayın.
AWS Lambda'yı Tetikleyen Olaylar
İşte AWS Lambda'yı kullandığınızda tetiklenecek Etkinlikler.
- Veri Dynamo DB tablosu ekleme, güncelleme ve silme
- SNS'ye push bildirimlerini dahil etmek için
- CloudTrail'de günlük geçmişini aramak için
- Bir 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ştirmek için olayı planlamanıza yardımcı olur.
- S3 kovalarındaki nesnelerde yapılan değişiklikler
- Amazon SNS'den gönderilen bildirimler.
- AWS Lambda, CloudTrail günlüklerini işlemek için kullanılabilir
- API Gateway, GET / POST yöntemlerinde AWS Lambda'yı tetiklemenize olanak tanır.
AWS Lambda Kavramları
İşlev:
İşlev, AWS Lambda'da çalışan bir program veya komut dosyasıdır. Lambda, bir olayı işleyen ve yanıtını döndüren işlevinize çağırma olaylarını iletir.
Çalışma süreleri:
Çalışma zamanı, aynı temel yürütme ortamında çalışan çeşitli dillerdeki işlevlere izin verir. Bu, işlevinizi çalışma zamanında yapılandırmanıza yardımcı olur. Aynı zamanda seçtiğiniz programlama dilinizle de eşleşir.
Olay kaynağı:
Bir olay kaynağı, Amazon SNS gibi bir AWS hizmetidir veya özel bir hizmettir. Bu tetikleyici işlevi, mantığını yürütmenize yardımcı olur.
Lambda Katmanları:
Lambda katmanları, kitaplıklar, özel çalışma zamanları ve diğer önemli işlev bağımlılıkları için önemli bir dağıtım mekanizmasıdır. Bu AWS bileşeni, 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 ifadeleriyle işlev kodunuza açıklama eklemenize olanak tanır.
AWS Lambda nasıl kullanılır?
Şimdi, AWS Lambda'yı AWS Lambda örneğiyle nasıl kullanacağımızı öğreneceğiz:
Adım 1 ) https://aws.amazon.com/lambda/ adresine gidin ve Başlayın
Adım 2 ) Bir hesap oluşturun veya mevcut hesabınızla oturum açın
3. Adım ) Sonraki Lambda sayfasında,
- Kodu düzenleyin
- Çalıştıra tıkla
Adım 4 ) Çıktı göreceksiniz
AWS Lambda VS AWS EC2
AWS Lambda ve EC2 arasındaki bazı önemli farklar burada verilmiştir.
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 Bir Altyapıdır (laaS). Sanallaştırılmış bilgi işlem kaynakları sağlar. |
Esneklik | Örnekleri hesaplamak için oturum açma esnekliği 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. |
Yükleme işlemi | Kodu çalıştırmak istediğiniz ortamınızı seçmeniz ve kodu AWS Lambda'ya göndermeniz gerekir. | EC2'de ilk kez, işletim sistemini seçmeniz ve gerekli tüm yazılımı yüklemeniz ve ardından EC2'de kodunuzu göndermeniz gerekir. |
Çevre kısıtlamaları | Birkaç dil ile sınırlıdır. | Çevre kısıtlaması yok. |
AWS Lambda VS AWS Elastic Beanstalk
Burada, AWS Lambda ile Elastic Beanstalk arasındaki bazı önemli farklar verilmiştir.
Parametreler | AWS Elastic Beanstalk | AWS Lambda |
Ana görev | Uygulamaları, bu uygulamaları çalıştıran altyapı hakkında endişelenmeden 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 EC2 bulut sunucusu türü gibi AWS kaynaklarını seçemezsiniz, Lambda iş yükünüze göre kaynaklar sunar. |
Sistem türü | Durum bilgisi olan bir sistemdir. | Devletsiz bir sistemdir. |
AWS Lambda'nın Kullanım Örnekleri
AWS Lambda, aşağıdakiler gibi çok çeşitli uygulamalarda kullanılır:
- ETL süreci için size yardımcı olur
- Gerçek zamanlı dosya işleme ve gerçek zamanlı akış işleme yapmanızı sağlar
- Web uygulamaları oluşturmak için kullanın
- Alexa Chatbots ve Amazon Echo / Alexa gibi Amazon ürünlerinde kullanın
- Veri işleme (gerçek zamanlı akış analizi)
- Günlük görevlerin Otomatik Yedeklemeleri
- Ölçeklenebilir arka uçlar (mobil uygulamalar, loT cihazları)
- Sunucu tarafı arka uç mantığını yürütmenize yardımcı olur
- Verileri filtrelemenizi ve dönüştürmenizi sağlar
Lambda işlevinin en iyi uygulamaları
Aşağıda, AWS Lambda işlevlerinin bazı en iyi uygulamaları verilmiştir:
- Doğru "zaman aşımı" nı kullanın.
- 500MB boyutunda olan yerel depolama işlevlerini / temp klasöründe kullanın
- Mevcut olayın işlenmesiyle doğrudan ilgili olmayan başlangıç kodunun kullanımını en aza indirme.
- İ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ılmaz?
Lambda'nın kesinlikle ideal bir seçenek olmadığı durum aşağıdadır:
- Temel Windows RPC'lerini çağırmaya dayanan AWS Lambda yazılım paketlerini veya uygulamalarını kullanmak uygun değildir
- MS-Office belge işleme, Oracle veritabanları vb. Gibi lisans anlaşmalarına sahip özel yazılım uygulamaları için kullanılırsa.
- AWS Lambda, GPU hızlandırma, donanım benzeşimi gibi özel donanım işlemleri için kullanılmamalıdır.
AWS Lambda kullanmanın avantajları
AWS lambda kullanmanın artıları / avantajları şunlardır:
- AWS Lambda, kullanımı oldukça esnek bir araçtır
- VPC'ler dahil olmak üzere kaynaklara erişim sağlamanıza yardımcı olur
- Doğrudan konsoldaki WYSIWYG editörü ile yazın.
- Eclipse ve Visual Studio için bir eklenti olarak kullanabilirsiniz.
- Sunucusuz mimari olduğundan, sunucuları yönetme veya sağlama konusunda endişelenmenize gerek yoktur.
- Herhangi bir Sanal Makine kurmanıza gerek yoktur.
- Geliştiricilerin herhangi bir altyapı oluşturmadan kodun olaylara yanıtını çalıştırmasına ve yürütmesine yardımcı olur.
- Yalnızca kodunuz çalıştığında, işlem süresi boyunca yapmanız gerekir.
- Kod performansınızı CloudWatch ile gerçek zamanlı olarak izleyebilirsiniz.
- Sağlama yapmadan veya başka bir sunucuyu yönetmeden kodunuzu çalıştırmanıza olanak tanır
- Kodu yalnızca gerektiğinde çalıştırmanıza yardımcı olur
- Günde birkaç isteği işlemek ve hatta saniyede binlerce isteği desteklemek için otomatik olarak ölçeklendirebilirsiniz.
- AWS Lambda, zamanlanmış 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, bu nedenle; planlama için kullanılabilir.
- Lambda işlevleri, hızla ölçeklenebilmesi için durumsuzdur.
- AWS Lambda hızlıdır, bu nedenle kodunuzu milisaniyeler içinde çalıştırır.
AWS Lambda'nın 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, bu nedenle 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ı için tamamen AWS'ye bağlıydı; Kodunuz gerektiriyorsa ek yazılım yükleyemezsiniz.
- Bellek hacmi 128 ile 1536 MB arasında değişebilir.
- Etkinlik talebi 128 KB'yi 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ı sadece 5 dakikadır.
Özet
- Sunucusuz, genellikle sunucusuz uygulamaları ifade eden bir terimdir.
- AWS Lambda, böyle bir sunucusuz işlem hizmetidir. Bu nedenle, hangi AWS kaynaklarının başlatılacağı veya bunları nasıl yönetecekleri 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.
- Bir olay kaynağı, Amazon SNS gibi bir AWS hizmetidir veya özel bir hizmettir.
- Lambda katmanları, kitaplıklar, özel çalışma zamanları 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 Bir Altyapıdır (laaS). Sanallaştırılmış bilgi işlem kaynakları sağlar.
- Uygulamaları, bu uygulamaları çalıştıran altyapı hakkında endişelenmeden 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, ETL süreci için size yardımcı olur.
- AWS'de Lambda işlevinin en iyi uygulaması, doğru "zaman aşımını" kullanmaktır.
- Temel Windows RPC'lerini çağırmaya dayanan AWS Lambda yazılım paketlerini veya uygulamalarını kullanmak uygun değildir
- AWS Lambda, oldukça 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 Eklenmesi, güncellenmesi ve silinmesidir.