Bir Lambda İşlevini Çağırmak için Mevcut Tetikleyicilere Giriş

Bir Lambda Islevini Cagirmak Icin Mevcut Tetikleyicilere Giris



AWS Lambda, sunucusuz dünyada devrim yaratan harika bir bulut tabanlı hizmettir. Aslında, kolay ve hızlı bir şekilde kurulabilen ve bulut altyapınızın genel bütçesini azaltmaya yardımcı olan bir hizmet olarak yazılımdır (SaaS). Yapmanız gereken sadece kodunuzu tasarlamak ve lambda işlevini kullanarak çalıştırmak.

Şimdi, buradaki nokta, kodunuzu fonksiyonda nasıl çalıştırmanız gerektiğidir ve bunun cevabı, lambda fonksiyonlarınızı çağırabileceğiniz veya tetikleyebileceğiniz uzun bir metot listesi olmasıdır. Bu, gerektiğinde istenen işlevi çağırmak için kullanılabilecek diğer birçok AWS hizmetini içerir.

Bu makalede, Amazon'da lambda işlevlerinizi çağırmak için uygulanabilecek hizmetler ve teknikler hakkında kısa bir açıklama göreceksiniz.







Çağrı Türleri

Daha ileri gitmeden önce, lambda işlevinin işleyebileceği aşağıdaki iki ana çağrı türünü tartışalım.



  • Eşzamanlı Çağrılar
  • Eşzamansız Çağrılar
  1. Eşzamanlı Çağrılar
    Eşzamanlı çağrılarda, lambda'yı çağıran hizmet, sonuçlar kendisine döndürülene kadar beklemeli ve ardından sürecin geri kalanını devam ettirmelidir. Lambda işlevinin çıktısının, bu lambdayı çağıran işlev veya hizmetin kendisi tarafından gerekli olduğunu da söyleyebiliriz.
  2. Eşzamansız Çağrılar

    Burada lambda işlevlerinin sonuçları çağırana geri vermesi için bekleme yoktur. Bu, esas olarak bildirimler için veya AWS'deki diğer bazı bağımsız olayları tetiklemek için kullanılır. Lambda işlevini çağırmak isteyen hizmet sadece tetikleyiciyi gönderir ve bu işlem lambda'da kuyruğa alınır ve sırası geldiğinde yürütülür.



Lambda'yı Çağırmanın Farklı Yolları

Burada lambda fonksiyonlarını çağırmanın sayısız yolunu göreceksiniz. Bunu bilmek, bir sonraki basit ama uygun maliyetli AWS altyapınızı tasarladığınızda çok işinize yarayacaktır.





Lambda İşlevlerini Doğrudan Çağırın

Çoğu durumda, lambda işlevleri diğer hizmetler kullanılarak tetiklenecek şekilde tasarlanmıştır, ancak bunları doğrudan AWS yönetim konsolunu, AWS CLI'yi ve işlev URL'sini kullanarak çağırabilirsiniz.

Lambda'yı Yönetim Konsolundan Çağırma

AWS konsolunuzda herhangi bir lambda işlevi oluşturduğunuzda, konsoldaki test çalıştırma seçeneğini kullanarak bunu kolayca tetikleyebilirsiniz. bu Ölçek butonu lambda fonksiyonunun kod bölümünün altında mevcuttur.



Özel bir etkinlik oluşturabilir ve konsolu özel etkinlik kalıbınızla kullanabilirsiniz.

Bu şekilde lambda işlevi AWS konsolundan tetiklenebilir.

AWS CLI'si

AWS, size tüm kaynaklarını AWS komut satırı arabirimini kullanarak kullanma olanağı sağlar. Bu CLI ile herhangi bir lambda işlevi de çağrılabilir. Bu, geliştirme aşamalarında bir şeyleri test etmek için çok etkili olabilir. AWS CLI komutunun ardından lambda işlevini çağırmak için bir tetikleyici olarak kullanılabilir.

[e-posta korumalı] :~$ aws lambda çağırma \
--fonksiyon adı < Lambda İşlev Adını girin > \
-- yük < Girdi değeri için Lambda İşlevi > \
--cli-ikili-format < base64 | ham-in-base64-out > < Çıktı Dosyası Adı >

İşlev başarıyla tetiklenir ve bunu çıktıda da gözlemleyebilirsiniz.

İşlev URL'si

İşlev URL'si aslında lambda işlevleriniz için yapılandırabileceğiniz bir HTTP uç noktasıdır. Bu URL, lambda işlevlerini tetiklemek için kullanılabilir ve bu URL'yi, lambda işlevlerini çağırmak için AWS hesabınızın dışında bile diğer kullanıcılarla paylaşabilirsiniz. İşlev URL'lerine dikkat etmeniz gerekse de, bu bağlantıya sahip olan herkes, lambda işlevinizi sayısız kez tetikleyebilir ve tüm maliyetler size ait olacaktır.

Bir işlev URL'si, lambda işlevi oluşturulduktan sonra olduğu gibi oluşturulurken de yapılandırılabilir. Bunun için yapılandırma bölümündeki gelişmiş ayarlara gitmeniz ve aşağıdakileri kontrol etmeniz yeterlidir. İşlev URL'sini etkinleştir kutu.

Lambda işlevini oluştururken bir işlev URL'si eklemediyseniz, bunu daha sonra yapabilirsiniz. Bunun için konfigürasyon sekmesine gitmeniz, fonksiyon URL'sini seçmeniz ve üzerine tıklamanız gerekir. İşlev URL'si oluştur .

Bu şekilde, işlev URL'si oluşturulur ve lambda işlevini çağırmak için kullanılır.

AWS Hizmetlerini Kullanarak Lambda İşlevlerini Çağırın

Birçok AWS hizmeti, lambda işlevini çağırmak için bir tetikleyici olarak yapılandırılabilir. Lambda işlevini çağırmak için AWS hizmetlerini bir tetikleyici olarak yapılandırmanız yeterlidir. Burada, lambda tetikleyicileriniz olarak nasıl kullanılacağına dair bir açıklama ile tüm bu hizmetleri gözden geçiriyoruz.

API Ağ Geçidi

Bu, uygulama modelinizde API'leri oluşturmak ve yönetmek için yaygın olarak kullanılan bir AWS hizmetidir. API'ler, bir yazılım paketinden başka bir pakete, doğrudan ortaya çıkaramadığımız ve sadece perde arkasında tutmak istediğimiz istekler veya çağrılar üretmenin çok esnek bir yolunu sunar.

Herhangi bir hizmeti lambda işlevinize tetikleyici olarak eklemek için lambda işlevine gidin ve tetikleyici ekle'ye tıklayın.

Ardından, lambda işlevinize tetikleyici olarak eklemek istediğiniz hizmeti seçebilirsiniz. Bu bölümde, lambda işlevi için tetikleyici olarak API ağ geçidini seçiyoruz.

Ardından, hizmeti uygulama yapınızda çalışmasını istediğiniz gibi yapılandırın.

API ağ geçidi tarafından desteklenen iki tür API vardır ve bunlar bir lambda işlevini çağırmak için kullanılabilir.

HTTP API'leri : Lambda işlevlerinize yönlendirilen HTTP uç noktalarını oluşturmak için kullanılırlar. HTTP API'leri daha az işlevsellik sağlar ve kullanımı daha az maliyetlidir.

REST API'leri : API'nizde daha fazla özellik istiyorsanız, bir REST API'ye gitmelisiniz. Bu API'ler lambda işlevini çağırabilir ve aynı HTTP yöntemlerini kullanarak daha fazla esneklik ve bağımsızlık sağlar.

S3 Kova

S3 kovalarının lambda işlevini çağırmak için bir tetikleyici görevi gördüğünü göreceğiniz birçok kullanım durumu vardır. Belirli bir S3 olayı için lambda işlevini tetiklemek üzere bir S3 paketi yapılandırabilirsiniz.

Örneğin, klasörünüze yüklendiğinde herhangi bir dosyanın meta verilerini toplamak istiyorsunuz. Bunun için bir kod geliştirip lambda fonksiyonuna dağıtıyorsunuz. Lambda tetikleyicisi için S3 paketini seçin. Etkinlik türü için nesne koymak . Böylece, kepçeye her yeni dosya eklendiğinde lambda işlevi tetiklenir ve belirttiğiniz zaman nesnenin meta verileri toplanır ve hedef konumda saklanır.

S3'ün lambda işlevini çağırmak için tetikleyici olarak kullanılabileceği başka birçok senaryo olabilir.

Yük dengeleyici

Lambda işlevi basit bir bulut tabanlı uygulama için en uygun maliyetli çözüm olduğundan, uygulamanızın lambda işlevleri üzerinde çalışacak şekilde tasarlandığını varsayalım. Şimdi, uygulamanızı son kullanıcılara göstermek için önüne bir yük dengeleyici eklemek isteyebilirsiniz. Bu bölüm için, lambda işlevini çağırmak için tetikleyici görevi gören yük dengeleyiciyi seçin. Diğer yük dengeleyiciler lambda işlevleri tarafından desteklenmediğinden, bu görev için yalnızca uygulama yük dengeleyiciyi ayarlayabileceğinizi unutmayın.

Uygulama yük dengeleyiciyi lambda işlevine eklemek için öncelikle bir hedef grup oluşturmanız gerekir ve bu hedef gruba lambda işlevi eklenir. Artık yeni oluşturulan hedef grup, uygulama yük dengeleyicinin dinleyicilerine eklenebilir.

CloudFront

Amazon CloudFront aslında bir CDN'dir (İçerik Dağıtım Ağı) ve uygulama verilerini gerçek uygulama sunucularına kıyasla son kullanıcılara çok daha yakın olan uç konumlarda önbelleğe almak için kullanılır. CloudFront'u kullanarak, statik içeriği dünya genelindeki son kullanıcılara sunmak için yanıt süresini gerçekten iyileştirebilirsiniz.

Lambda işlevleri, CloudFront hizmeti kullanılarak tetiklenebilir. Bunun için, lambda işlevinizi dünya çapında bilinen uç konumlara dağıtmanız gerekir. [e-posta korumalı]

İstekleri şuraya göndermek için CloudFront'u tetikleyici olarak ayarlayabilirsiniz. [e-posta korumalı] yanıt süresini iyileştirmek için CloudFront aracılığıyla. olarak [e-posta korumalı] dünya genelindeki tüm uç konumlarda konuşlandırılır, son kullanıcılar lambda dağıtılan en yakın uç konumuna erişerek minimum yanıt süresiyle karşı karşıya kalır.

Bunu yapılandırmak için şuraya gidin: tetikleyici ekle ve CloudFront hizmetini seçin. Orada, göreceksin konuşlandırmak [e-posta korumalı] seçenek.

Şimdi, yapılandırma adımlarını tamamlamanız ve başlatmanız yeterlidir.

CloudWatch Günlükleri

AWS bulutunda izlemeyi düşündüğünüzde, aklınıza ilk gelen şey CLoudWatch'tır çünkü bu, farklı hizmetler için çok yararlı bir şekilde yapılandırılabilen çok geniş bir izleme hizmetidir.

CloudWatch günlükleri, adından da anlaşılacağı gibi, her türlü günlüğü depolamak için kullanılabilen bir günlük tutma hizmetidir. Günlükleri ayrı tutmak için farklı hizmetler için farklı günlük grupları oluşturabilirsiniz. Bu günlükler, bu olayları üreten hizmet veya prosedürden bağımsız olarak, aldıkları olaylara dayalı olarak lambda işlevinizi tetiklemek için kullanılabilir.

Tetikleyiciyi lambda işlev konsolundan veya doğrudan CloudWatch günlüklerinden yapılandırabilirsiniz. Bunu CloudWatch konsolundan yapmak için CloudWatch hizmetine gitmeniz ve günlük gruplarını açmanız yeterlidir. Burada bir lambda abonelik filtresi oluşturmanız gerekiyor.

Ardından, istediğiniz lambda işlevini seçin ve hazırsınız.

Artık CloudWatch bu günlük akışını aldığında, lambda işlevini çağırmak için bir tetikleyici görevi görür.

EventKöprüsü

Amazon EventBridge (önceki adıyla CloudWatch Events), bir AWS hesabında gerçekleşen belirli bir olayda belirli bir AWS hizmetini tetiklemek için olay kuralları oluşturmanıza olanak tanıyan bir AWS hizmetidir.

AWS hizmetleri (EC2 bulut sunucusu oluşturma veya RDS veritabanı olayları gibi) ve üçüncü taraf hizmetler (GitHub push olayı gibi) için ayarlayabileceğiniz çok çeşitli kurallar vardır. Bu kurallar, lambda işlevleri gibi diğer hizmetlerle, bu kural yerine getirildiğinde lambda işlevini çağıracak şekilde daha fazla bağlantılı olabilir.

Önceden ayarlanmış bir EventBridge kuralınız varsa, bu kuralı lambda işlevinize bir tetikleyici olarak kolayca ekleyebilirsiniz. Tetikleyiciniz olarak EventBridge'i seçin ve kuralın adını sağlamanız yeterlidir.

Burada tetikleyici olarak mevcut bir kural eklenir, ancak bu noktada bir kural da oluşturabilirsiniz.

DinamoDB

DynamoDB'nin yalnızca bir NoSQL veritabanı olduğunu ve AWS'de tamamen ayrı bir hizmet olarak göründüğünü biliyor olabilirsiniz. Bu, tam olarak yapılandırılmış sunucusuz bir veritabanıdır ve doğrudan içinde tablolar oluşturmaya başlayabilirsiniz. Bu DynamoDB tabloları, lambda işlevlerini çağırmak için tetikleyiciler olarak işlev görecek şekilde yapılandırılabilir.

DynamoDB'den gelen veriler, girdi olarak lambda'ya yığınlar halinde yüklenebilir ve lambda'da dağıtılan kod kullanılarak işlenir.

kinesis

Gerçek zamanlı verileri yüksek oranda toplamak ve analiz etmek istiyorsanız AWS Kinesis'ten yararlanabilirsiniz. Lambda işlevlerini kullanarak Kinesis veri akışları tarafından toplanan verileri işlemek istediğinizi varsayalım. Veriler Kinesis tarafından her kaydedildiğinde lambda işlevinizi tetiklemeniz yeterlidir.

Lambda işlevini çağırmak için Kinesis veri akışınızı yapılandırmayı az önce bitirdiniz.

sosyal ağ

Bir AWS hizmetinden diğerine bildirim göndermek için yaygın olarak kullanılan bir bildirim hizmetidir, çünkü bazen bildirimleri bir hizmetten diğerine doğrudan yapılandırmanın bir yolu yoktur. Lambda işlevleri bu hizmet kullanılarak tetiklenebilir.

Önce bir SNS konusu oluşturun, ardından lambda işlevinizi çağırmak için kullanın.

SNS konunuzun adını seçmelisiniz. Başka yapılandırma veya ayar yoktur.

Çözüm

Amazon Lambda, bulut mimarisinde gerçekten bir atılımdır. Uygulama geliştirme ve devreye alma, bundan önce hiç bu kadar kolay ve anlaşılır olmamıştı. Kodunuzu herhangi bir ortak çerçevede oluşturmanıza ve kodunuzu lambda'ya yüklemenize olanak tanır ve yürütülür. AWS lambda ile birleştirilebilecek ve lambda işlevinizi yalnızca gerektiğinde çağırmak için bir tetikleyici görevi görebilecek uzun bir diğer hizmetler listesi vardır. Sunucunun sürekli çalıştırma maliyeti yoktur, ancak tetikleyici sayısına ve kod yürütme süresine bağlı olarak ücretlendirilirsiniz.