การใช้ฟังก์ชัน Lambda กับ Custom User Applications

เราสามารถใช้ฟังก์ชัน AWS lambda เพื่อประมวลผลโดยใช้เหตุการณ์ที่สร้างขึ้นโดยแอปพลิเคชันของผู้ใช้ในสองวิธีต่อไปนี้ -

  • การใช้ AWS Console
  • การใช้ AWS CLI

การใช้ AWS Console

จากคอนโซล AWS เราจะทำงานกับเหตุการณ์และ AWS Lambda เพื่อจุดประสงค์นี้ไปที่คอนโซล AWS และสร้างฟังก์ชันแลมบ์ดา

ต่อไปให้เราเพิ่มรหัสสำหรับ AWS Lambda -

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);
};

โปรดทราบว่าในรหัสด้านบนเรากำลังพิมพ์ชื่อและที่อยู่โดยใช้เหตุการณ์

รายละเอียดของกิจกรรมจะได้รับโดยใช้เหตุการณ์ทดสอบที่สร้างขึ้นดังต่อไปนี้ -

ตอนนี้บันทึกเหตุการณ์และทดสอบ

เอาต์พุตบันทึกที่สอดคล้องกันดังแสดงที่นี่ -

การใช้ AWS CLI

เราสามารถเรียกใช้ฟังก์ชันข้างต้นโดยใช้ AWS CLI ได้ดังนี้ -

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

รายละเอียดเหตุการณ์ถูกกำหนดให้กับ payload และเอาต์พุตจะถูกเก็บไว้ที่ C:\clioutput\outputfile.txt. ดังต่อไปนี้ -

input.txt

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

ในการเรียกใช้ Lambda โดยใช้ AWS CLI คุณจะเห็นผลลัพธ์ดังนี้ -

ในทำนองเดียวกันในกรณีที่คุณต้องการทดสอบ AWS Lambda สำหรับบริการ AWS อื่น ๆ คุณสามารถทำได้โดยใช้เหตุการณ์ทดสอบในคอนโซล AWS และ AWS CLI ตัวอย่างเหตุการณ์สำหรับบริการ SNS แสดงอยู่ด้านล่าง -

{
   "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"
      }
   }]
}

ให้เราเพิ่มเหตุการณ์ตัวอย่างที่แสดงด้านบนและทดสอบตามที่แสดง -

ใน AWS Lambda โค้ดจะพิมพ์ข้อความ SNS ดังที่แสดงในตัวอย่างด้านล่าง -

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

ให้เราเรียกสิ่งเดียวกันโดยใช้ AWS CLI ให้เราบันทึกเหตุการณ์ลงในไฟล์และใช้สำหรับเพย์โหลดโดยใช้คำสั่งที่แสดง -

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