AWS Lambda - Giriş
AWS Lambda, kodunuzu herhangi bir sunucu olmadan hesaplamakla ilgilenen bir hizmettir. Sunucusuz işlem olduğu söyleniyor. Kod, S3 klasörüne dosya ekleme / kaldırma, Amazon DynamoDBtables'ı 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.
AWS Lambda kodu NodeJS, Java, C #, Python ve Go'da yazılabilir. Bu bölüm, AWS konsolunda AWS Lambda işlevi oluşturma hakkında ayrıntılı olarak konuşacaktır.
AWS Konsolu
Bağlantıdan AWS Konsolu'na giriş yapın https://aws.amazon.com/console. Oturum açtıktan sonra, sizi AWS hizmetlerinin görüntülendiği ekrana yönlendirecektir.
Örnek: Bir Fonksiyon Oluşturma
Bir Örnek yardımıyla AWS Konsolunun işlevselliğini anlayalım. Lambda'ya tıklayın (yukarıda işaretli), aşağıda gösterildiği gibi işlev oluşturmak için yeniden yönlendirilecektir -
Tıklayın Create function düğmesine basın ve ekran aşağıdaki ayrıntıları gösterir -
Varsayılan olarak seçeneğin Author from scratch. Bu seçenek, Lambda kodunu sıfırdan yazmanıza olanak tanır. Sadece basit bir işlevi olacakhello world İleti.
İkinci seçenek Blue prints aşağıdaki ayrıntılara sahiptir.
AWS Lambda ile kullanılabilen dillerde bazı aws hizmetleri için önceden yazılmış kodun ayrıntılarını verir. Check-in yapabileceğiniz tüm hizmetler için AWS Lambda kodu yazmanız gerektiğindeblue prints ve başlayın.
Üçüncü seçenek Serverless Application Repository AWS Lambda kodunu dağıtmaya yardımcı olacak sunucusuz uygulama kurulumuna sahiptir.
Tartışmanın ilerleyen kısımlarında, AWS lambda işlevini oluşturduğumuz ilk seçenek üzerinde çalışacağız. Author from scratch.
Lambda işlevini oluşturmadan önce bir role, yani AWS hizmetleri ve aws lambda ile çalışma iznine ihtiyaç duyacağız. Daha sonra Rolün aws lambda işlevine atanması gerekir.
AWS Konsolunda rol oluşturma
AWS Konsolunda bir rol oluşturmak için AWS konsol hizmetlerine gidin ve aşağıda gösterildiği gibi IAM'ye tıklayın -
Şimdi, tıklarsan IAM, aşağıdaki gibi ekrana geleceksiniz -
Seçerseniz Roles, ekranda aşağıdaki düğmeleri görebilirsiniz -
Şimdi tıklayın Create role. Oluşturulan rolü kullanmanız gereken hizmeti seçmenizi isteyecektir.
Bu rolü AWS Lambda ile kullanmamız gerektiğinden, Lambda ve tıkla Next:Permissionsdüğmesine yukarıda gösterildiği gibi. Sonraki ekranda, AWS hizmetlerine göre kullanılabilen ilke adı görüntülenir. Politikayı buradan seçebilirsiniz -
Örneğin, AWS Lambda'nın S3 ve DynamoDB ile çalışmasına izin vermek istiyorsanız politikayı seçmeniz gerekir. Arama kutusuna AWS hizmetini girin ve onay kutusuna tıklayın. Birden fazla politika seçebilir ve daha sonraNext:Review.
Kendi politikanızı oluşturmanız da mümkündür. Örneğin dynamodb tablosu var ve sadece o tabloya izin vermeniz gerekiyor, bu gibi durumlarda poliçe oluşturabilirsiniz.
Tıklamak Create policydüğmesine yukarıdaki ekranda gösterildiği gibi. Ekranda görüntülenen ayrıntılar aşağıdadır.
Seçin Servicebunun için politikayı oluşturuyorsunuz. Daha sonra Eylemler için verileri gösterecek,resources ve Request conditions.
Şimdi servisi seçmeliyiz. SeçelimAWS Dynamodb aramadan. Actions aşağıdaki ayrıntılara sahiptir -
Şimdi, girin Access levelDynamoDB'ye vermek istiyorsunuz. Sonra,resources aşağıdaki ayrıntıları gösterecek -
Şimdi, tablo kaynak türünü seçin. Aşağıdaki çıktıyı görebilirsiniz -
Masada izin almak için yapmanız gerekenler Add ARN. ARN, AWS DynamoDB'de oluşturulan tabloya özgü ayrıntılardır. Tablo dynamodb'da oluşturulduğunda ayrıntıları alacaksınız.
Tıklarsan Add ARN ve aşağıdaki ayrıntıları gösterecektir -
Şimdi, eğer girerseniz ARN ve Region, Account ve Tableisim doldurulacak. TıklamalısınAddPolitikayı eklemek için düğmesine basın. Benzer şekilde, diğer hizmetler için de politikalar oluşturabilirsiniz.
Burada iki politika seçtik AmazonS3FullAccess ve AmazonDynamoDBFullACcess. Bu rolde S3 ve DynamoDB'ye tam erişim verdik. Ancak, sadece gerekli kova ve tablolara izin vermeniz önerilir.
Politikaları oluşturmak için daha önce tartışılan adımları takip edebilirsiniz. ARN.
Aşama 1
Tıklayın Create roleRol oluşturmak için düğmeye basın. Oluşturulan tüm roller gösterildiği gibi görüntülenir -
Adım 2
Oluşturulan rol için herhangi bir değişikliğe ihtiyaç duymanız durumunda ihtiyaç duyduğunuz rolü seçebileceğinizi unutmayın. Biz seçersekAuthor from scratch option, girmek zorundasın Name, Runtime and Role.
Aşama 3
Aşağıdaki detayları şurada inceleyebilirsiniz: Runtime açılır -
4. adım
İstediğiniz çalışma süresini seçebilir ve gösterildiği gibi devam edebilirsiniz.
Role açılır menüde aşağıdaki seçenekler bulunur -
Choose an existing role − Bu, IAM rollerinde oluşturulan tüm rolleri gösterecektir.
Create new role from template(s) −Bu, rol oluşturmanıza izin verecek ve bu rol için seçilme iznini gösterecektir. Daha iyi anlamak için ekran görüntüsünü inceleyin.
Create a custom role − Bu, kullanıcının daha önce tartıştığımız gibi politikalar oluşturmasına izin verir.
Adım 5
Seçin runtime, roleve işlevi ekleyin. TıklamakCreate functionLambda işlevini oluşturmak için düğme. Görüntülenen bir sonraki ekran aşağıdaki gibidir -
AWS Lambda İşlevinin Parçaları
AWS Lambda işlevi için iki bölüm vardır:Configuration ve Monitoring. Her birini ayrıntılı olarak tartışalım.
Yapılandırma
Aşağıdaki işlevler Yapılandırmaya dahildir.
Add Triggers
AWS Lambda işlevine eklenmesi gereken tetikleyiciler aşağıdaki gibi görüntülenir -
Bir tetikleyici seçtiğimizde, o tetikleyici için yapılandırma ayrıntılarını eklememiz gerektiğini unutmayın. Örneğin S3 tetikleyicisi için klasör adını seçmemiz gerekiyor; Dynamodb tetikleyicisi için tablo adını seçmemiz gerekiyor.
Misal
Bir S3 tetikleyicisi için yapılandırma ayrıntılarının bir örneğini görelim -
Şimdi, S3 tetikleyicisi için yapılandırma ayrıntılarını ekleyin -
Burada seçmeniz gerekiyor bucket name, event type Lambda'yı tetiklemek istediğiniz, varsa önek ve filtre kalıbı ve Add Tetik.
Lambda'da Kod Ekleme
Şimdi yazılacak Lambda koduna odaklanmalıyız. Aws lambda'ya kod eklemek için üç seçenek vardır -
- Satır içi düzenleyiciyi kullanma
- .Zip dosyası kullanarak
- Amazon S3'ten dosya yükleyin
Aşağıda verilen ekran görüntüsünde gösterilmektedir -
Her birini ayrıntılı olarak tartışalım.
Using the inline editor
Size kod yazabileceğiniz satır içi kod düzenleyicisi aşağıdaki gibidir -
Seçtiğiniz dili seçerek kodunuzu yazabilirsiniz. Burada tekrar çalışma zamanını seçmenize izin verilir.
Daha iyi anlamak için aşağıdaki ekran görüntüsüne bakın -
Kodun yazılması gerekir index.js.Handler. Ayrıntılar çalışma süresine göre farklılık gösterecektir. İçinnodejs, bu filename.export function hangisi şimdi index.lambda handler.
Upload a .ZIP file
Önce kodu yazabilir, sıkıştırabilir ve zip dosyasını seçerek yükleyebilirsiniz. Upload a .ZIP file.
Upload a file from Amazon S3
Dosyayı S3 klasörüne yükleyebilir ve seçeneği belirleyebilirsiniz Upload a file from Amazon S3.
İçin unutmayın .ZIP ve S3 çalışma zamanını değiştirmek mümkün olmayacaktır.
Ortam Değişkenleri
Anahtar değer çiftlerini alırlar ve bunları AWS Lambda koduyla paylaşırlar. Veritabanı bağlantı ayrıntılarını, çıktıyı depolamak için dosya ayrıntılarını, günlük dosyası ayrıntılarını vb. Depolamak için AWS Lambda'daki ortam değişkenlerini kullanabiliriz.
Etiketler
Farklı bölgelerde kullanıldıklarında işlevi daha iyi organize etmek için AWS Lambda'ya eklenen anahtar / değer çiftleridir. Basit bir kullanım durumu için gerekli değildir. Oluşturulan çok sayıda Lambda işlevi olduğunda, etiketleme, Lambda işlevlerinin filtrelenmesine ve yönetilmesine yardımcı olur.
Yürütme rolü
Lambda işlevi oluşturmanın başlangıcında doğru şekilde yapılmazsa, rolü burada tekrar değiştirebilirsiniz. Burada yeni rolü güncelleyebilir veya oluşturabilirsiniz. Lambda işlevi oluşturmanın başlangıcında görüntülenenlerle aynı seçenekleri sağlar.
Temel Ayarlar
Buraya, Lambda işlevinizin ne yaptığının kısa açıklamasını girmeniz gerekir. Lambda işlevi için gerekli olan belleği ve zaman aşımını seçin.
Ağ
Bu, Lambda işlevine VPC'den erişmenizi sağlayacak VPC'yi seçmenize olanak tanır. Varsayılan olarak, hiçbir VPC seçilmez.
Hata Ayıklama ve Hata İşleme
Hata ayıklama ve hata işleme için ayrıntıları göndermek üzere AWS hizmetini seçebilirsiniz. Mevcut seçenekler şunlardırNone, SNS ve SQS.
Eşzamanlılık
Bu, bu işlev için izin verilen belirli bir eşzamanlı yürütme sınırı tahsis etmenize olanak tanır.
Denetim ve Uyum
Bu, AWS CloudTrail yardımı ile yönetilen günlükleri içerir.
Tamamlandıktan sonra, burada gösterildiği gibi Kaydet düğmesini kullanarak değişiklikleri kaydetmeniz gerekir -
Şimdi, tıklarsan Testdüğmesi, bir test etkinliği isteyecektir. Örnek bir test olayını aşağıdaki şekilde geçebilirsiniz -
Oluşturulan test etkinliği burada gösterildiği gibidir -
Şimdi, test olayını kaydedin ve AWS Lambda işlevinin yürütülmesini görmek için test düğmesine tıklayın -
İçin kod index.js aşağıdaki gibidir -
exports.lambdahandler = (event, context, callback) => {
// TODO implement
console.log(event.key1);
console.log(event.key2);
console.log(event.key3);
callback(null, 'Lambda test');
};
Geri arama işlevinin hata veya başarı olduğunda çağrıldığını unutmayın. Başarılı olursa, görebilirsinLambda test görüntülenecek.
İzleme
Lambda işlevinin yürütme ayrıntılarını görüntülemek için izleme sekmesini seçin. Grafikler, yürütme süresinin, oluşan hataların vb. Ayrıntılarını gösterir.
Günlükleri Cloudwatch'ta da görüntüleyebilirsiniz. Bunun için AWS hizmetlerine gidin ve gösterildiği gibi bulut gözlemciyi seçin -
Şimdi, sol taraftan günlükleri seçin ve filtreye işlev adınızı girin -