Lambda İşlevini Oluşturma

AWS Lambda işlevi çağrıldığında bir kodu yürütür. Bu bölüm, AWS Lambda işlevinin yaşam döngüsüne dahil olan tüm bu adımları ayrıntılı olarak tartışır.

Lambda işlevi oluşturmaya yönelik adımlar

Lambda işlevinin yaşam döngüsü dört gerekli adımı içerir -

  • Authoring
  • Deploying
  • Monitoring
  • Troubleshooting

Yazma Lambda Kodu

AWS Lambda işlev kodu aşağıdaki dillerde yazılabilir -

  • NodeJS
  • Java,
  • Python
  • C#
  • Go.

AWS Lambda için AWS konsolunu, AWS CLI'yi, Eclipse IDE'den, Visual Studio IDE'den, sunucusuz çerçeveden vb. Kullanarak kod yazabiliriz.

Aşağıdaki tablo, Lambda işlevini yazmak için kullanılabilecek dillerin ve farklı araçların ve IDE'nin bir listesini gösterir -

Dil Lambda Kodu Yazma için IDE
NodeJS

AWS Lambda Konsolu

Visual Studio IDE

Java Eclipse IDE
Python AWS Lambda Konsolu
C #

Visual Studio IDE

.NET çekirdeği

Git AWS Lambda Konsolu

Lambda Kodunu Dağıtma

Lambda işlevini yazmak istediğiniz dile karar verdiğinizde, kodu dağıtmanın iki yolu vardır:

  • Kodu doğrudan AWS konsoluna yazın
  • Dosyaları tüm dosyalar ve bağımlılıklarla sıkıştırın veya sıkıştırın

Ancak, zip dosyasına uygun izin verilmesi gerektiğini unutmayın.

Lambda Kodunu Test Etme

Lambda Kodu, AWS Lambda konsolu içindeki olaylar için test edilebilir. Lambda işlevini AWS cli ve sunucusuz cli'den test etmek de mümkündür. AWS konsolunda, AWS Lambda işlevini test ederken örnek olaylar olarak kullanılabilecek olay verileri de vardır.

Lambda işlevini izleme

Lambda işlevinin izlenmesi, AWS CloudWatch kullanılarak yapılabilir. Seçtiğimiz dillerde gerekli günlük mesajlarını ekleyebilir ve aynısını AWS CloudWatch'ta görebiliriz.

Lambda işlevini yazmaya başlamak için izlenecek kalıp vardır. Aşağıdakiler, bir Lambda işlevi yazmak için izlenecek ana temel kavramlardır -

İşleyici

İşleyici, yürütmenin başladığı yerden AWS lambda işlevinin adıdır. AWS konsolunda aşağıda gösterildiği gibi görünür -

Burada varsayılan işleyiciyi başka bir adla değiştirdiğimize ve İşleyicide de aynısını güncellediğimize dikkat edin -

Bir işleyicinin çağrılma şeklinin, çalışma zamanı olarak seçilen dillerden farklı olduğunu unutmayın.

İşleyiciye geçen parametreler

İşleyici işlevini gözlemlerseniz, geçirilen parametreler event, context ve call back function aşağıda gösterildiği gibi -

Event parametresi, kullanılan tetikleyicinin tüm ayrıntılarını içerir.

Contextparametresi, temel olarak Lambda işlevinin çalıştırılması için çalışma zamanı ayrıntılarıyla ilgilenir. Lambda işlevi ile etkileşime girebiliriz.contextparam. AWS Lambda'nın bir işlevi sonlandırmadan önce kalan süre, yani Lambda işlevi oluşturulurken belirtilen zaman aşımı, Lambda işlevinin adı, cloudwatch grup adı, arn ayrıntıları vb. Gibi ayrıntılara sahiptir.

Misal

AWS Lambda bağlam nesnesinden elde edilen ayrıntıları bir örnek yardımıyla anlayalım -

exports.lambdahandler = (event, context, callback) => {
   // TODO implement
   console.log("context object details");
   console.log(JSON.stringify(context));
   callback(null, 'Lambda test');
};

Yukarıda gösterilen Lambda işlevini çalıştırdığınızda, aşağıdaki çıktıyı görebilirsiniz -

Çıktı

context detaylar aşağıdaki gibidir -

{
   "callbackWaitsForEmptyEventLoop":true,"logGroupName":"/aws/lambda/myfirstlambdafunction",
   "logStreamName":"2018/05/20/[$LATEST]04f17ee4ff7048d5bb1fedffaa807c71","functionName":
   "myfirstlambdafunction","memoryLimitInMB":"128","functionVersion":"$LATEST","invokeid":
   "c931e21c-5bf3-11e8-acfe-47fdbb39eee9","awsRequestId":"c931e21c-5bf3-11e8-acfe-47fdbb39eee9",
   "invokedFunctionArn":"arn:aws:lambda:us-east-1:625297745038:function:myfirstlambdafunction"
}

FunctionName, memorylimit, requestId gibi detaylara sahip olduğunu gözlemleyin.

Kerestecilik

Lambda işlevinin içine eklenen günlükler, AWS işlevi yürütüldüğünde AWS CloudWatch'ta görüntülenir. Günlük söz dizimi, seçilen dilden farklı olacaktır. Örnek içinnodejs, console.log.

Bu, AWSCloudWatch'ta görebileceğiniz çıktıdır -

Hata yönetimi

AWS Lambda işlevi, Lambda işlevine bir hata veya başarı olduğunu bildirmek için kullanılan bir geri arama işlevi sağlar. Burada çalışma zamanı olarak nodejs kullandığımıza dikkat edin. Hata işleme, seçilen dile göre farklılık gösterecektir.

Daha iyi bir anlayış için burada verilen Örneği inceleyin -

exports.lambdahandler = (event, context, callback) => {
   // TODO implement
   var error = new Error("There is error in code");
   callback(error);
};

Çıktı

Lambda kodunu test ettiğinizde, çıktıyı aşağıda gösterildiği gibi bulabilirsiniz -

Günlük ayrıntıları aşağıdaki gibidir -