AWS Lambda جو تفصيلي تجزيو

مضمون جو ترجمو خاص طور تي ڪورس جي شاگردن لاء تيار ڪيو ويو "بادل خدمتون". هن هدايت ۾ ترقي ڪرڻ ۾ دلچسپي؟ ڏسو ماسٽر ڪلاس ايگور زويو پاران (ٽيم ليڊ ان بيٽ تي) "AWS EC2 سروس" ۽ ايندڙ ڪورس گروپ ۾ شامل ٿيو: سيپٽمبر 26 تي شروع ٿئي ٿو.

AWS Lambda جو تفصيلي تجزيو

وڌيڪ ماڻهو لڏپلاڻ ڪري رهيا آهن AWS Lambda لاءِ اسڪاليبلٽي، ڪارڪردگي، بچت، ۽ هر مهيني لکين يا ٽريلين درخواستن کي سنڀالڻ جي صلاحيت. هن کي ڪرڻ لاء، توهان کي بنيادي ڍانچي کي منظم ڪرڻ جي ضرورت ناهي جنهن تي خدمت هلندو آهي. ۽ آٽو اسڪيلنگ توهان کي اجازت ڏئي ٿي ته هزارين هڪ ئي وقت ۾ في سيڪنڊ درخواستون. مان سمجهان ٿو AWS Lambda صحيح طور تي سڏيو وڃي ٿو هڪ مشهور AWS خدمتن مان.

AWS Lambda

AWS Lambda هڪ ايونٽ تي هلندڙ سرور بيس ڪمپيوٽنگ سروس آهي جيڪا توهان کي اجازت ڏئي ٿي ڪوڊ هلائڻ جي بغير سرورز جي روزي يا انتظام ڪرڻ ۽ ٻين AWS خدمتن کي وڌايو ڪسٽم منطق استعمال ڪندي. Lambda خود بخود مختلف واقعن جو جواب ڏئي ٿو (جنهن کي ٽرگرس سڏيو وڃي ٿو)، جهڙوڪ ايم ڊي اي پي گيٽ وي ذريعي HTTP درخواستون، Amazon S3 بڪيٽس يا Amazon DynamoDB ٽيبلز ۾ ڊيٽا ۾ تبديليون؛ يا توهان AWS SDK استعمال ڪندي API ڪالن ذريعي پنهنجو ڪوڊ هلائي سگهو ٿا ۽ AWS Step Functions ۾ رياستي منتقلي.

Lambda هڪ انتهائي دستياب ڪمپيوٽنگ انفراسٽرڪچر تي ڪوڊ هلائي ٿو ۽ بنيادي پليٽ فارم جي انتظام لاءِ مڪمل طور تي ذميوار آهي، بشمول سرور ۽ آپريٽنگ سسٽم جي سار سنڀال، وسيلن جي فراهمي، آٽو اسڪيلنگ، ڪوڊ مانيٽرنگ، ۽ لاگنگ. اهو آهي، توهان کي صرف پنهنجو ڪوڊ اپلوڊ ڪرڻ جي ضرورت آهي ۽ ترتيب ڏيڻ جي ضرورت آهي ته ڪيئن ۽ جڏهن ان تي عمل ڪيو وڃي. موڙ ۾، خدمت ان جي لانچ جو خيال رکندي ۽ توهان جي ايپليڪيشن جي اعلي دستيابي کي يقيني بڻائي.

جڏهن تبديل ڪجي Lambda ۾؟

AWS Lambda هڪ آسان ڪمپيوٽنگ پليٽ فارم آهي جيڪو مختلف استعمال جي ڪيسن لاءِ موزون آهي، جيستائين توهان جي ڪوڊ جي ٻولي ۽ رن ٽائم سروس جي مدد سان آهي. جيڪڏھن توھان چاھيو ٿا پنھنجي ڪوڊ ۽ ڪاروباري منطق تي ڌيان ڏيڻ دوران سرور جي سار سنڀال ، روزي ڏيڻ ، ۽ مناسب قيمت تي اسڪيلنگ کي ، AWS Lambda ضرور وڃڻ جو رستو آھي.

Lambda پروگرامنگ انٽرفيس ٺاهڻ لاءِ مثالي آهي، ۽ جڏهن API Gateway سان گڏ استعمال ڪيو وڃي ٿو، توهان قيمت گھٽائي سگهو ٿا ۽ تيزيءَ سان مارڪيٽ تائين پهچي سگهو ٿا. ليمبڊا افعال کي استعمال ڪرڻ جا مختلف طريقا آهن ۽ اختيارن کي منظم ڪرڻ لاءِ سرور کان سواءِ آرڪيٽيڪچر - هرڪو پنهنجي مقصد جي بنياد تي ڪجهه مناسب چونڊي سگهي ٿو.

Lambda توهان کي ڪمن جو هڪ وسيع سلسلو انجام ڏيڻ جي اجازت ڏئي ٿو. ان ڪري، CloudWatch سپورٽ جي مهرباني، توهان ٺاهي سگهو ٿا ملتوي ڪم ۽ خودڪار انفرادي عمل. خدمت جي استعمال جي نوعيت ۽ شدت تي ڪابه پابنديون نه آهن (ياداشت جي استعمال ۽ وقت کي حساب ۾ رکيو ويو آهي)، ۽ ڪجھ به توهان کي منظم طريقي سان ڪم ڪرڻ کان روڪي نه ٿو مڪمل طور تي مڪمل مائڪرو سروس جي بنياد تي Lambda.

هتي توهان خدمت تي مبني ڪارناما ٺاهي سگهو ٿا جيڪي مسلسل نه هلندا آهن. ھڪڙو عام مثال تصويري اسڪيلنگ آھي. جيتوڻيڪ ورهايل نظام جي صورت ۾، Lambda افعال لاڳاپيل رھندا آھن.

تنهن ڪري، جيڪڏهن توهان ڪمپيوٽنگ وسيلن کي مختص ڪرڻ ۽ انتظام ڪرڻ سان معاملو ڪرڻ نٿا چاهيو، ڪوشش ڪريو AWS Lambda؛ جيڪڏھن توھان کي بھاري، وسيلن جي گھڻائي واري حساب جي ضرورت نه آھي، AWS Lambda کي پڻ آزمايو؛ جيڪڏهن توهان جو ڪوڊ وقتي طور تي هلندو آهي، اهو صحيح آهي، توهان کي ڪوشش ڪرڻ گهرجي AWS Lambda.

حفاظت

هينئر تائين حفاظت بابت ڪا به شڪايت ناهي. ٻئي طرف، جيئن ته هن ماڊل جا ڪيترائي اندروني عمل ۽ ان تي عملدرآمد جون خاصيتون AWS Lambda منظم رن ٽائم ماحول جي استعمال ڪندڙ کان لڪيل آهن، ڪجهه عام طور تي قبول ٿيل قاعدا ڪلائوڊ سيڪيورٽي غير لاڳاپيل ٿي ويندا آهن.

اڪثر AWS خدمتن وانگر، Lambda AWS ۽ ڪسٽمر جي وچ ۾ گڏيل سيڪيورٽي ۽ تعميل جي بنياد تي مهيا ڪيل آهي. اهو اصول ڪلائنٽ تي عملياتي بوجھ گھٽائي ٿو، ڇاڪاڻ ته AWS خدمت جي اجزاء کي برقرار رکڻ، انتظام ڪرڻ ۽ نگراني ڪرڻ جي ڪمن تي وٺندو آهي - ميزبان آپريٽنگ سسٽم ۽ ورچوئلائيزيشن پرت کان وٺي انفراسٹرڪچر اثاثن جي جسماني حفاظت تائين.

خاص طور تي AWS Lambda بابت ڳالهائيندي، AWS بنيادي زيربنا، لاڳاپيل بنيادي خدمتن، آپريٽنگ سسٽم، ۽ ايپليڪيشن پليٽ فارم کي منظم ڪرڻ جو ذميوار آهي. جڏهن ته ڪلائنٽ پنهنجي ڪوڊ جي حفاظت جو ذميوار آهي، رازداري ڊيٽا کي محفوظ ڪرڻ، ان تائين رسائي کي ڪنٽرول ڪرڻ، انهي سان گڏ لامبڊا سروس ۽ وسيلن (سڃاڻپ ۽ رسائي جي انتظام، IAM) تائين، استعمال ٿيل افعال جي حدن جي اندر.

هيٺ ڏنل ڊراگرام ڏيکاري ٿو گڏيل ذميواري ماڊل جيئن اهو لاڳو ٿئي ٿو AWS Lambda. AWS جي ذميواري نارنگي آهي ۽ ڪسٽمر جي ذميواري نيري آهي. جئين توهان ڏسي سگهو ٿا، AWS سروس تي مقرر ڪيل ايپليڪيشنن لاء وڌيڪ ذميواري وٺندو آهي.

AWS Lambda جو تفصيلي تجزيو

AWS Lambda تي لاڳو ٿيل حصيداري واري ذميواري ماڊل

Lambda رن ٽائم

Lambda جو بنيادي فائدو اهو آهي ته توهان جي طرفان هڪ فنڪشن انجام ڏيڻ سان، خدمت پاڻ کي ضروري وسيلن کي مختص ڪري ٿو. توهان سسٽم انتظاميه تي وقت ۽ ڪوشش ضايع ڪرڻ کان پاسو ڪري سگهو ٿا ۽ ڪاروباري منطق ۽ ڪوڊنگ تي ڌيان ڏئي سگهو ٿا.

Lambda سروس ٻن جهازن ۾ ورهايل آهي. پهريون ڪنٽرول جهاز آهي. وڪيپيڊيا جي مطابق، ڪنٽرول جهاز نيٽورڪ جو حصو آهي جيڪو سگنلنگ ٽريفڪ ۽ رستي جي منتقلي لاء ذميوار آهي. اهو بنيادي جزو آهي جيڪو عالمي فيصلا ڪري ٿو روزي ڏيڻ، خدمت ڪرڻ، ۽ ڪم لوڊ ورهائڻ بابت. ان کان علاوه، ڪنٽرول جهاز حل فراهم ڪندڙ جي نيٽ ورڪ ٽوپولوجي طور ڪم ڪري ٿو، ٽرئفڪ جي رستي ۽ انتظام ڪرڻ جو ذميوار.

ٻيو جهاز ڊيٽا جهاز آهي. اهو، ڪنٽرول جهاز وانگر، ان جا پنهنجا ڪم آهن. ڪنٽرول جهاز افعال کي منظم ڪرڻ لاءِ APIs مهيا ڪري ٿو (CreateFunction، UpdateFunctionCode) ۽ ڪنٽرول ڪري ٿو ته ڪيئن Lambda ٻين AWS خدمتن سان رابطو ڪري ٿو. ڊيٽا جهاز Invoke API کي ڪنٽرول ڪري ٿو، جيڪو Lambda افعال کي هلائي ٿو. هڪ فنڪشن کي سڏڻ کان پوء، ڪنٽرول جهاز هڪ موجوده رن ٽائم ماحول کي مختص ڪري ٿو يا چونڊيندو آهي جيڪو ان فنڪشن لاءِ اڳ ۾ تيار ڪيل آهي، ۽ پوءِ ان ۾ ڪوڊ تي عمل ڪري ٿو.

AWS Lambda مختلف پروگرامنگ ٻولين کي سپورٽ ڪري ٿو، جن ۾ Java 8، Python 3.7، Go، NodeJS 8، .NET Core 2، ۽ ٻيا شامل آهن، انهن جي لاڳاپيل رن ٽائم ماحول ذريعي. AWS انهن کي باقاعده تازه ڪاري ڪري ٿو، حفاظتي پيچ ورهائي ٿو، ۽ انهن ماحول تي ٻين سار سنڀال جي سرگرمين کي انجام ڏئي ٿو. Lambda توهان کي ٻين ٻولين کي پڻ استعمال ڪرڻ جي اجازت ڏئي ٿي، بشرطيڪ توهان مناسب رن ٽائم پاڻ لاڳو ڪريو. ۽ پوء توهان کي ان جي سار سنڀال جو خيال رکڻو پوندو، بشمول ان جي حفاظت جي نگراني.

اهو سڀ ڪيئن ڪم ڪندو آهي ۽ خدمت توهان جي ڪم کي ڪيئن انجام ڏيندو؟

هر فنڪشن هڪ يا وڌيڪ وقف ٿيل ماحول ۾ هلندو آهي، جيڪي صرف ان فنڪشن جي زندگي لاء موجود آهن ۽ پوء تباهه ٿي ويندا آهن. هر ماحول هڪ وقت ۾ صرف هڪ ڪال ڪري ٿو، پر اهو ٻيهر استعمال ڪيو ويندو آهي جيڪڏهن هڪ ئي فنڪشن ۾ ڪيترائي سيريل ڪال آهن. سڀ رن ٽائم ماحول ورچوئل مشينن تي هلن ٿا هارڊويئر ورچوئلائيزيشن سان - نالي ماتر مائڪرو وي ايم. هر مائڪرو وي ايم هڪ مخصوص AWS اڪائونٽ تي لڳايو ويو آهي ۽ انهي اڪائونٽ ۾ مختلف ڪم ڪرڻ لاءِ ماحوليات طرفان ٻيهر استعمال ڪري سگهجي ٿو. MicroVMs Lambda Worker هارڊويئر پليٽ فارم جي بلڊنگ بلاڪن ۾ پيڪيج ٿيل آهن، جيڪو AWS جي ملڪيت ۽ هلائيندڙ آهي. ساڳيو رن ٽائم مختلف ڪمن ذريعي استعمال نٿو ڪري سگھجي، ۽ نه ئي مائڪرو وي ايم مختلف AWS اڪائونٽن لاءِ منفرد آهن.

AWS Lambda جو تفصيلي تجزيو

AWS Lambda Isolation ماڊل

رن ٽائم ماحول کي الڳ ڪرڻ ڪيترن ئي ميڪانيزم کي استعمال ڪندي لاڳو ڪيو ويو آهي. هر ماحول جي مٿين سطح تي هيٺ ڏنل اجزاء جا جدا جدا ڪاپيون آهن:

  • فنڪشنل ڪوڊ
  • ڪنهن به Lambda تہه فنڪشن لاء چونڊيو
  • فنڪشن جي عمل جي ماحول
  • ايمازون لينڪس جي بنياد تي گھٽ ۾ گھٽ يوزر اسپيس

هيٺيون ميکانيزم استعمال ڪيا ويا آهن مختلف عمل جي ماحول کي الڳ ڪرڻ لاء:

  • cgroups - هر رن ٽائم ماحول لاءِ سي پي يو، ميموري، اسٽوريج ۽ نيٽ ورڪ وسيلن تائين رسائي کي محدود ڪريو؛
  • namespaces - گروپ سازي جي عمل جي IDs، يوزر آئي ڊيز، نيٽ ورڪ انٽرفيس ۽ ٻيا وسيلا جيڪي لينڪس ڪنيل پاران منظم ڪيل آھن. هر رن ٽائم پنهنجي نالي جي جاءِ ۾ هلندو آهي؛
  • seccomp-bpf - سسٽم ڪالن کي محدود ڪري ٿو جيڪي رن ٽائم ۾ استعمال ڪري سگھجن ٿيون؛
  • iptables ۽ روٽنگ ٽيبل - هڪ ٻئي کان عمل جي ماحول کي الڳ ڪرڻ؛
  • chroot - بنيادي فائل سسٽم تائين محدود رسائي فراهم ڪري ٿي.

AWS ملڪيت جي اڪيلائي ٽيڪنالاجيز سان گڏ، اهي ميکانيزم قابل اعتماد رن ٽائيم علحدگي کي يقيني بڻائي ٿو. هن طريقي سان الڳ ٿيل ماحول ٻين ماحولن کان ڊيٽا تائين رسائي يا تبديل نه ڪري سگھندا.

جيتوڻيڪ ساڳئي AWS اڪائونٽ جا ڪيترائي رن ٽائمز هڪ واحد microVM تي هلائي سگهن ٿا، ڪنهن به حالت ۾ مختلف AWS اڪائونٽن جي وچ ۾ مائڪ وي ايم شيئر نه ٿي سگهن. AWS Lambda microVMs کي الڳ ڪرڻ لاءِ صرف ٻه ميکانيزم استعمال ڪري ٿو: EC2 مثال ۽ فائر ڪريڪر. EC2 مثالن جي بنياد تي Lambda ۾ مهمانن جي اڪيلائي 2015 کان وٺي آهي. فائر ڪريڪر هڪ نئون اوپن سورس هائپر وائيزر آهي خاص طور تي AWS پاران بي سرور ڪم لوڊ لاءِ ڊزائين ڪيو ويو آهي ۽ 2018 ۾ متعارف ڪرايو ويو آهي. مائڪرو وي ايمز تي هلندڙ جسماني هارڊويئر مختلف اڪائونٽس ۾ ڪم لوڊ جي وچ ۾ حصيداري ڪئي وئي آهي.

محفوظ ماحول ۽ عمل رياستون

جيتوڻيڪ Lambda رن ٽائمز مختلف ڪمن لاءِ منفرد آهن، پر اهي ساڳئي فنڪشن کي بار بار سڏي سگهن ٿا، مطلب ته رن ٽائم تباهه ٿيڻ کان اڳ ڪيترن ئي ڪلاڪن تائين زنده رهي سگهي ٿو.

هر Lambda رن ٽائم ۾ پڻ هڪ قابل تحرير فائل سسٽم آهي جيڪو /tmp ڊاريڪٽري ذريعي دستياب آهي. ان جو مواد ٻين رن ٽائمز کان رسائي نٿو سگھجي. جيستائين عمل جي رياست جي تسلسل جو تعلق آهي، /tmp ڏانهن لکيل فائلون رن ٽائم ماحول جي پوري زندگي چڪر لاءِ موجود آهن. اهو ڪيترن ئي ڪالن جي نتيجن کي گڏ ڪرڻ جي اجازت ڏئي ٿو، جيڪو خاص طور تي قيمتي عملن لاءِ ڪارائتو آهي جهڙوڪ لوڊ ڪرڻ واري مشين سکيا جا ماڊل.

ڪال ڊيٽا جي منتقلي

Invoke API ٻن طريقن ۾ استعمال ڪري سگھجي ٿو: ايونٽ موڊ ۽ درخواست-جواب موڊ. ايونٽ موڊ ۾، ڪال بعد ۾ عمل ڪرڻ لاءِ قطار ۾ شامل ڪئي وئي آھي. درخواست-جواب واري موڊ ۾، فنڪشن کي فوري طور تي مهيا ڪيل پيل لوڊ سان سڏيو ويندو آهي، جنهن کان پوء جواب واپس ڪيو ويندو آهي. ٻنهي صورتن ۾، فنڪشن هڪ Lambda ماحول ۾ هلندو آهي، پر مختلف پيلي لوڊ رستن سان.

درخواست جي جواب واري ڪالن دوران، پيل لوڊ هڪ درخواست پروسيسنگ API (API ڪالر) کان وهندو آهي، جهڙوڪ AWS API Gateway يا AWS SDK، لوڊ بيلنسر ڏانهن، ۽ پوءِ Lambda ڪال سروس (Invoke Service) ڏانهن. بعد ۾ فنڪشن کي انجام ڏيڻ لاءِ مناسب ماحول جو تعين ڪري ٿو ۽ ڪال مڪمل ڪرڻ لاءِ اتي پيل لوڊ پاس ڪري ٿو. لوڊ بيلنس انٽرنيٽ تي TLS-محفوظ ٽرئفڪ حاصل ڪري ٿو. Lambda سروس جي اندر ٽريفڪ- لوڊ بيلنس کان پوءِ- هڪ مخصوص AWS علائقي ۾ اندروني VPC ذريعي گذري ٿو.

AWS Lambda جو تفصيلي تجزيو

AWS Lambda ڪال پروسيسنگ ماڊل: درخواست جوابي موڊ

ايونٽ ڪالون فوري طور تي يا قطار ۾ شامل ڪري سگھجن ٿيون. ڪجهه حالتن ۾، قطار Amazon SQS (Amazon Simple Queue Service) استعمال ڪندي لاڳو ڪئي وئي آهي، جيڪا ڪالون پاس ڪري ٿي Lambda ڪال پوري ڪرڻ واري خدمت کي اندروني پولر پروسيس ذريعي. منتقل ٿيل ٽريفڪ TLS پاران محفوظ ٿيل آهي، ۽ Amazon SQS ۾ ذخيرو ٿيل ڊيٽا جي ڪا به اضافي انڪرپشن ناهي.

ايونٽ ڪالز جواب نه ڏيندا آهن- ليمبڊا ورڪر صرف ڪنهن به جوابي معلومات کي نظرانداز ڪري ٿو. Amazon S3، Amazon SNS، CloudWatch، ۽ ٻين ذريعن کان واقعن تي ٻڌل ڪالون ايونٽ موڊ ۾ Lambda پاران پروسيس ڪيون وينديون آهن. Amazon Kinesis ۽ DynamoDB اسٽريمز کان ڪالون، SQS قطارون، ايپليڪيشن لوڊ بيلنس، ۽ API گيٽ وي ڪالون هڪ درخواست-جواب فيشن ۾ پروسيس ٿيل آهن.

مانيٽرنگ

توهان مختلف AWS ميڪانيزم ۽ خدمتن کي استعمال ڪندي Lambda افعال جي نگراني ۽ آڊٽ ڪري سگهو ٿا، جنهن ۾ هيٺيان شامل آهن.

amazoncloudwatch
مختلف انگن اکرن کي گڏ ڪري ٿو جهڙوڪ درخواستن جو تعداد، درخواستن جي مدت، ۽ درخواستن جو تعداد جيڪو ناڪام ٿيو.

Amazon CloudTrail
توهان کي توهان جي AWS انفراسٽرڪچر سان لاڳاپيل اڪائونٽ سرگرمي معلومات کي لاگ ان ڪرڻ، مسلسل نگراني ڪرڻ، ۽ برقرار رکڻ جي اجازت ڏئي ٿي. توهان وٽ AWS مئنيجمينٽ ڪنسول، AWS SDK، ڪمانڊ لائن ٽولز، ۽ ٻيون AWS خدمتون استعمال ڪندي ڪيل عملن جي مڪمل تاريخ هوندي.

AWS X-ray
ان جي اندروني حصن جي نقشي جي بنياد تي توهان جي ايپليڪيشن ۾ درخواست جي پروسيسنگ جي سڀني مرحلن ۾ مڪمل نمائش فراهم ڪري ٿي. توهان کي ترقي ۽ پيداوار جي ماحول ۾ ايپليڪيشنن جو تجزيو ڪرڻ جي اجازت ڏئي ٿي.

AWS ترتيب
توهان تبديلين کي ٽريڪ ڪرڻ جي قابل هوندا Lambda فنڪشن جي ترتيب (بشمول حذف ڪرڻ) ۽ رن ٽائمز، ٽيگ، هينڊلر جا نالا، ڪوڊ سائيز، ميموري مختص ڪرڻ، ٽائم آئوٽ سيٽنگون ۽ ڪنوڪريسي سيٽنگون، انهي سان گڏ Lambda IAM عملداري ڪردار، سبنيٽنگ، ۽ سيڪيورٽي گروپ بائنڊنگز. .

ٿڪل

AWS Lambda پيش ڪري ٿو اوزارن جو هڪ طاقتور سيٽ محفوظ ۽ اسپيبلبل ايپليڪيشنن جي تعمير لاءِ. AWS Lambda ۾ ڪيترائي حفاظتي ۽ تعميل جا طريقا ساڳيا آهن جيئن ٻين AWS خدمتن ۾، جيتوڻيڪ ڪي استثنا آهن. مارچ 2019 تائين، Lambda SOC 1، SOC 2، SOC 3، PCI DSS، هيلٿ انشورنس پورٽيبلٽي ۽ احتساب ايڪٽ (HIPAA) جي تعميل، ۽ ٻين ضابطن جي تعميل آهي. تنهن ڪري، جڏهن توهان پنهنجي ايندڙ ايپليڪيشن کي لاڳو ڪرڻ بابت سوچي رهيا آهيو، AWS Lambda سروس تي غور ڪريو - اهو ٿي سگهي ٿو توهان جي ڪم لاءِ بهترين.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو