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