Lambda İşlevini Özel Kullanıcı Uygulamalarıyla Kullanma

AWS lambda işlevini, aşağıdaki iki şekilde kullanıcı uygulaması tarafından oluşturulan olayları kullanarak işlemek için kullanabiliriz:

  • AWS Konsolunu Kullanma
  • AWS CLI'yi kullanma

AWS Konsolunu Kullanma

AWS konsolundan etkinlikler ve AWS Lambda ile çalışacağız. Bu amaçla AWS konsoluna gidin ve bir lambda işlevi oluşturun.

Ardından, AWS Lambda kodunu ekleyelim -

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log("Hello => "+ event.name);
   console.log("Address =>"+ event.addr);
   callback(null, 'Hello '+event.name +" and address is "+ event.addr);
};

Yukarıdaki kodda, olay kullanarak isim ve adres yazdırdığımızı unutmayın.

Etkinliğin ayrıntıları, aşağıdaki şekilde oluşturulan test etkinliği kullanılarak verilecektir -

Şimdi olayı kaydedin ve test edin.

Karşılık gelen günlük çıktısı burada gösterildiği gibidir -

AWS CLI'yi kullanma

Yukarıdaki işlevi AWS CLI kullanarak aşağıdaki gibi çalıştırabiliriz -

aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\input.txt C:\clioutput\outputfile.txt

Olay ayrıntıları, yüke verilir ve çıktı, C:\clioutput\outputfile.txt. aşağıdaki gibi -

input.txt

{"name":"Roy Singh", "addr":"Mumbai"}

Lambda'yı AWS CLI kullanarak çağırdığınızda çıktının aşağıdaki gibi olduğunu görebilirsiniz -

Benzer şekilde, AWS Lambda'yı başka bir AWS hizmeti için test etmek isterseniz bunu AWS konsolundaki ve AWS CLI'deki test olayını kullanarak yapabilirsiniz. SNS hizmeti için örnek bir olay aşağıda gösterilmektedir -

{
   "Records": [{
      "EventVersion": "1.0",
      "EventSubscriptionArn": "arnid",
      "EventSource": "aws:sns",
      "Sns": {
         "SignatureVersion": "1",
         "Timestamp": "1970-01-01T00:00:00.000Z",
         "Signature": "EXAMPLE",
         "SigningCertUrl": "EXAMPLE",
         "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e",
         "Message": "Hello from SNS!",
         "MessageAttributes": {
            "Test": {
               "Type": "String",
               "Value": "TestString"
            },
            "TestBinary": {
               "Type": "Binary",
               "Value": "TestBinary"
            }
         },
         "Type": "Notification",
         "UnsubscribeUrl": "EXAMPLE",
         "TopicArn": "topicarn",
         "Subject": "TestInvoke"
      }
   }]
}

Yukarıda gösterilen örnek etkinliği ekleyip gösterildiği gibi test edelim -

AWS Lambda'da kod, SNS mesajını aşağıda verilen örnekte gösterildiği gibi yazdıracaktır -

exports.handler = (event, context, callback) => {
   // TODO implement
   console.log(event.Records[0].Sns.Message);
   callback(null, event.Records[0].Sns.Message);};

AWS CLI kullanarak aynısını başlatalım. Olayı bir dosyaya kaydedelim ve gösterilen komutu kullanarak bunu yük için kullanalım -

aws lambda invoke --function-name "lambdauserevent" --log-type Tail --
payload file://C:\clioutput\sns.txt C:\clioutput\snsoutput.txt