AWS Lambda - Genel Bakış
AWS Lambdaherhangi bir sunucu olmadan bilgi işlem yapmayı içeren sunucusuz bilgi işlem gerçekleştiren bir hizmettir. Kod, S3 klasörüne dosya ekleme / kaldırma, Amazon dynamo dB tablolarını güncelleme, Amazon API ağ geçidinden HTTP isteği gibi AWS hizmetlerindeki olayların yanıtına göre yürütülür.
İle çalışmak için AWS LambdaAWS Lambda hizmetinde kodu aktarmamız gerekiyor. Altyapı, işletim sistemi, sunucu bakımı, kod izleme, günlükler ve güvenlik gibi diğer tüm görevler ve kaynaklar AWS tarafından gerçekleştirilir.
AWS LambdaJava, NodeJS, Python, C # ve Go gibi dilleri destekler. AWS Lambda'nın yalnızca AWS hizmetleriyle çalışacağını unutmayın.
AWS Lambda nedir?
Resmi belgelerinde verilen AWS Lambda tanımı aşağıdaki gibidir:
AWS Lambda, sunucuları sağlamadan veya yönetmeden kod çalıştırmanıza olanak tanıyan bir bilgi işlem hizmetidir. AWS Lambda, kodunuzu yalnızca ihtiyaç duyulduğunda yürütür ve günlük birkaç istekten saniyede binlerce istekten otomatik olarak ölçeklendirilir. Yalnızca tükettiğiniz işlem süresi için ödeme yaparsınız - kodunuz çalışmadığında ücret alınmaz.
AWS Lambda Nasıl Çalışır?
AWS Lambda'nın çalışmasını beş kolay adımda açıklayan blok şema aşağıda gösterilmiştir -
Step 1 − AWS lambda kodunu, AWS lambda'nın desteklediği NodeJS, Java, Python, C # ve Go dillerinden herhangi birinde yükleyin.
Step 2 − Bunlar, AWS lambda'nın tetiklenebileceği birkaç AWS hizmetidir.
Step 3 −Yükleme koduna ve tetikleyicinin gerçekleştiği olay ayrıntılarına sahip AWS Lambda. Örneğin Amazon S3, Amazon API Gateway, Dynamo dB, Amazon SNS, Amazon Kinesis, CloudFront, Amazon SES, CloudTrail, mobil uygulama vb.
Step 4 − AWS Lambda Kodunu yalnızca aşağıdaki senaryolar altında AWS hizmetleri tarafından tetiklendiğinde çalıştırır:
- Kullanıcı, dosyaları S3 klasörüne yükler
- http uç nokta URL'sini al / gönder isabet aldı
- veriler dinamo dB tablolarına eklenir / güncellenir / silinir
- bildirim almak
- veri akışı koleksiyonu
- web sitesinin barındırılması
- e-posta gönderme
- mobil uygulama vb.
Step 5 − AWS'nin yalnızca AWS lambda kodu yürütüldüğünde ücretlendirdiğini, başka türlü olmadığını unutmayın.
AWS Lambda kullanmanın avantajları
AWS Lambda, üzerinde çalışırken birçok avantaj sunar. Bu bölüm bunları ayrıntılı olarak tartışmaktadır -
Kodla çalışma kolaylığı
AWS Lambda, kodunuzu yüklemeniz için size altyapı sağlar. Kodu korumaya özen gösterir ve gerekli olay gerçekleştiğinde kodu tetikler. Kod için gereken belleği ve zaman aşımını seçmenize olanak tanır.
AWS Lambda, olay tetikleyicilerine göre paralel istekleri de yürütebilir.
Günlük Sağlama
AWS Lambda, bir kodun kaç kez çalıştırıldığının ve yürütme için harcanan sürenin, tüketilen belleğin vb. Ayrıntılarını verir. AWS CloudWatch, yürütme akışının anlaşılmasına ve kodun hata ayıklamasına yardımcı olan tüm günlükleri toplar.
Kullanıma Göre Faturalandırma
AWS Lambda faturalandırması bellek kullanımı, talep edilen ve minimum 100 ms'lik artışlarla faturalandırılan yürütme üzerinden yapılır. Bu nedenle, 500 ms'lik bir yürütme için, faturalama her 100 ms'den sonra olacaktır. AWS lambda kodunuzun 500 ms'de yürütüleceğini belirtirseniz ve yürütme süresi yalnızca 200 ms ise, AWS sizi yalnızca alınan süre için, yani 500 ms yerine 200 ms yürütme için faturalandırır. AWS, her zaman kullanılan yürütme süresi için ücret alır. İşlev uygulanmazsa ödeme yapmanız gerekmez.
Çoklu Dil Desteği
AWS Lambda, Node gibi popüler dilleri destekler. js, Python, Java, C # ve Go. Bunlar yaygın olarak kullanılan dillerdir ve tüm geliştiriciler AWS Lambda için kod yazmayı kolay bulacaktır.
Kod yazma ve dağıtma kolaylığı
Kod yazmak ve dağıtmak için Lambda için birçok seçenek mevcuttur. Kodunuzu yazmak için AWS çevrimiçi düzenleyicisini, Visual Studio IDE'yi veya Eclipse IDE'yi kullanabilirsiniz. Ayrıca, AWS Lambda kodunun yazılmasını ve dağıtılmasını kolaylaştıran sunucusuz çerçeve desteğine sahiptir. AWS konsolunun yanı sıra, kod oluşturmak ve dağıtmak için AWS-cli'ye sahibiz.
Diğer özellikler
AWS ücretsiz katmanına giriş yaparak AWS Lambda'yı ücretsiz olarak kullanabilirsiniz. Size 1 yıl boyunca ücretsiz hizmet verir. AWS ücretsiz kullanımı tarafından sunulan ücretsiz hizmetlere bir göz atın.
AWS Lambda kullanmanın dezavantajları
AWS Lambda, birçok avantajına rağmen aşağıdaki dezavantajlara sahiptir:
Küçük projeler için uygun değildir.
Kodunuzu dikkatlice analiz etmeniz ve bellek ile zaman aşımına karar vermeniz gerekir. Eğer fonksiyonunuz tahsis edilenden daha fazla zamana ihtiyaç duyuyorsa, üzerinde belirtilen zaman aşımına göre sonlandırılacak ve kod tam olarak çalıştırılmayacaktır.
AWS Lambda, altyapı için tamamen AWS'ye dayandığından, kodunuz gerektiriyorsa ek yazılım yükleyemezsiniz.
AWS Lambda'yı Tetikleyen Olaylar
AWS Lambda'yı tetikleyebilecek olaylar aşağıdaki gibidir:
- Bir S3 nesnesine giriş
- Dynamo DB tablosundaki verilerin eklenmesi, güncellenmesi ve silinmesi
- SNS'den push bildirimleri
- API Ağ Geçidine GET / POST çağrıları
- Görüntüleyicide üstbilgi değişikliği veya CloudFront'ta kaynak isteği / yanıtı
- AWS Kinesis veri akışındaki günlük girişleri
- CloudTrail'de günlük geçmişi
AWS Lambda'nın Kullanım Örnekleri
AWS Lambda, esas olarak arka plan işlemlerini çalıştırmak için kullanılan bir bilgi işlem hizmetidir. Diğer AWS hizmetleriyle kullanıldığında tetiklenebilir. AWS Lambda'yı kullanabileceğimiz AWS hizmetlerinin listesi aşağıda verilmiştir -
S3 Nesnesi ve AWS Lambda
Amazon S3, S3'te herhangi bir dosya yüklemesi olduğunda olay ayrıntılarını AWS Lambda'ya iletir. Dosya yükleme veya dosyanın silinmesi ya da dosyanın taşınmasıyla ilgili ayrıntılar AWS Lambda'ya aktarılır. AWS Lambda'daki kod, olay ayrıntılarını aldığında gerekli adımı atabilir. Örneğin, S3'e eklenen görüntünün küçük resmini oluşturma.
DynamoDB ve AWS Lambda
DynamoDB, tabloya veri eklendiğinde, güncellendiğinde ve silindiğinde AWS Lambda'yı tetikleyebilir. AWS Lambda olayı, ekleme / güncelleme veya silme ile ilgili AWS DynamoDB tablosunun tüm ayrıntılarını içerir.
API Ağ Geçidi ve AWS Lambda
API Gateway, GET / POST yöntemlerinde AWS Lambda'yı tetikleyebilir. Bir form oluşturabilir ve ayrıntıları API Gateway uç noktasıyla paylaşabilir ve daha ileri işlemler için AWS Lambda ile kullanabiliriz, örneğin DynamoDB tablosundaki verilerin girişini yapabiliriz.
SNS ve AWS Lambda
SNS push bildirimi, SMS gönderimi vb. İçin kullanılır. SNS'de herhangi bir push bildirimi olduğunda AWS lambda'yı tetikleyebiliriz. Ayrıca tetikleyiciyi aldığında AWS Lambda'dan telefon numarasına SMS gönderebiliriz.
Planlanmış Olaylar ve AWS Lambda
Zamanlanmış Olaylar, cron işleri için kullanılabilir. Görevi normal zaman düzeninde gerçekleştirmek için AWS Lambda'yı tetikleyebilir.
CloudTrail ve AWS Lambda
CloudTrail, hesaptaki günlüklerin izlenmesinde yardımcı olabilir. CloudTrail günlüklerini daha fazla işlemek için AWS Lambda'yı kullanabiliriz.
Kinesis ve AWS Lambda
Kinesis, web sitesi tıklamalarından, günlüklerden, sosyal medya akışlarından gelen gerçek zamanlı izleme verilerini yakalamak / depolamak için kullanılır ve AWS Lambda'ya yönelik bir tetikleyici bu günlüklerde ek işlemler yapabilir.
CloudFront ve Lambda @ Edge
CloudFront, web sitenizi barındırabileceğiniz bir içerik dağıtım ağıdır ve Lambda @ Edge, izleyici isteği, kaynak talebi, kaynak yanıtı ve görüntüleyici yanıtından gelen başlıkları işlemek için kullanılabilir. Üstbilgi değişikliği, çerez verilerini değiştirme, URL yeniden yazma, kullanıcıya geri gönderilen yanıtı değiştirmek için AB testi için kullanılan, güvenlik amacıyla fazladan üstbilgi bilgileri ekleme gibi görevleri içerir.