{"id":37937,"date":"2019-10-31T22:20:41","date_gmt":"2019-10-31T19:20:41","guid":{"rendered":"https:\/\/prohoster.info\/blog\/detalnyj-razbor-aws-lambda\/"},"modified":"2019-10-31T22:20:41","modified_gmt":"2019-10-31T19:20:41","slug":"detalnyj-razbor-aws-lambda","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/detalnyj-razbor-aws-lambda","title":{"rendered":"Detailn\u00e1 anal\u00fdza AWS Lambda","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><em>Preklad \u010dl\u00e1nku bol pripraven\u00fd \u0161peci\u00e1lne pre \u0161tudentov kurzu <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/dOuF\/\">\u201eCloudov\u00e9 slu\u017eby\u201c<\/a><\/noindex>Zauj\u00edma v\u00e1s rozvoj v tejto oblasti? Sledujte masterclass Egora Zueva (TeamLead vo firme InBit) <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/L2NX\/\">\u201eAWS EC2 slu\u017eba\u201c<\/a><\/noindex> a pridajte sa k najbli\u017e\u0161ej skupine kurzu: za\u010diatok 26. septembra. <\/em><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Detailn\u00e1 anal\u00fdza AWS Lambda\" src=\"\/wp-content\/uploads\/2019\/09\/cbf78e6c6d04f9beec2d99f8891bf7d9.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u010doraz viac \u013eud\u00ed prech\u00e1dza na AWS Lambda kv\u00f4li \u0161k\u00e1lovate\u013enosti, v\u00fdkonu, \u00faspor\u00e1m a mo\u017enosti spracov\u00e1va\u0165 mili\u00f3ny a dokonca aj trili\u00f3ny po\u017eiadaviek za mesiac. Na to nie je potrebn\u00e9 spravova\u0165 infra\u0161trukt\u00faru, na ktorej slu\u017eba be\u017e\u00ed. A automatick\u00e9 \u0161k\u00e1lovanie umo\u017e\u0148uje obsluhova\u0165 tis\u00edce s\u00fa\u010dasn\u00fdch po\u017eiadaviek za sekundu. Mysl\u00edm, \u017ee AWS Lambda mo\u017eno spr\u00e1vne nazva\u0165 jednou z naj\u017eiadanej\u0161\u00edch slu\u017eieb AWS.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><\/p>\n<h2 id=\"aws-lambda\">AWS Lambda<\/h2>\n<p><\/p>\n<p>AWS Lambda je udalos\u0165ami riaden\u00e1 servisn\u00e1 platforma bez serverov, ktor\u00e1 umo\u017e\u0148uje sp\u00fa\u0161\u0165a\u0165 k\u00f3d bez pride\u013eovania a spr\u00e1vy serverov a dop\u013a\u0148a\u0165 \u010fal\u0161ie slu\u017eby AWS na z\u00e1klade logiky pou\u017e\u00edvate\u013ea. Lambda automaticky reaguje na r\u00f4zne udalosti (tzv. sp\u00fa\u0161\u0165a\u010de), napr\u00edklad na HTTP po\u017eiadavky cez Amazon API Gateway, zmenu \u00fadajov v Amazon S3 alebo tabu\u013ek\u00e1ch Amazon DynamoDB; alebo m\u00f4\u017eete spusti\u0165 svoj k\u00f3d prostredn\u00edctvom API volan\u00ed, pou\u017e\u00edvaj\u00fac AWS SDK a prechody medzi stavmi v AWS Step Functions.<\/p>\n<p><\/p>\n<p>Lambda vykon\u00e1va k\u00f3d na vysoko dostupnej v\u00fdpo\u010dtovej infra\u0161trukt\u00fare a \u00faplne sa star\u00e1 o spr\u00e1vu podkladovej platformy, vr\u00e1tane \u00fadr\u017eby serverov a opera\u010dn\u00e9ho syst\u00e9mu, pride\u013eovania zdrojov, automatick\u00e9ho \u0161k\u00e1lovania, monitorovania k\u00f3du a vedenia denn\u00edkov. To znamen\u00e1, \u017ee sta\u010d\u00ed nahra\u0165 svoj k\u00f3d a nastavi\u0165, ako a kedy by sa mal vykon\u00e1va\u0165. Slu\u017eba sa postar\u00e1 o jeho spustenie a zabezpe\u010d\u00ed vysok\u00fa dostupnos\u0165 va\u0161ej aplik\u00e1cie.<\/p>\n<p><\/p>\n<h2 id=\"kogda-perehodit-na-lambda\">Kedy prejs\u0165 na Lambda?<\/h2>\n<p><\/p>\n<p>AWS Lambda je pohodln\u00e1 v\u00fdpo\u010dtov\u00e1 platforma vhodn\u00e1 na mno\u017estvo aplika\u010dn\u00fdch scen\u00e1rov, samozrejme, ak je jazyk a prostredie behu v\u00e1\u0161ho k\u00f3du podporovan\u00e9 slu\u017ebou. Ak sa chcete s\u00fastredi\u0165 na k\u00f3d a obchodn\u00fa logiku, pri\u010dom \u00fadr\u017ebu serverov, pride\u013eovanie zdrojov a \u0161k\u00e1lovanie zver\u00edte extern\u00e9mu poskytovate\u013eovi za rozumn\u00e9 peniaze, ur\u010dite by ste mali prejs\u0165 na AWS Lambda.<\/p>\n<p><\/p>\n<p>Lambda je ide\u00e1lna na vytv\u00e1ranie softv\u00e9rov\u00fdch rozhran\u00ed a ak sa slu\u017eba pou\u017e\u00edva spolu s API Gateway, m\u00f4\u017eete v\u00fdrazne zn\u00ed\u017ei\u0165 n\u00e1klady a r\u00fdchlej\u0161ie sa dostanete na trh. Existuje mnoho sp\u00f4sobov, ako pou\u017e\u00edva\u0165 funkcie Lambda a varianty organiz\u00e1cie bezserverovej architekt\u00fary \u2013 ka\u017ed\u00fd si m\u00f4\u017ee vybra\u0165 nie\u010do vhodn\u00e9 pod\u013ea svojich cie\u013eov.<\/p>\n<p><\/p>\n<p>Lambda umo\u017e\u0148uje vykon\u00e1va\u0165 \u0161irok\u00e9 spektrum \u00faloh. V\u010faka podpore CloudWatch m\u00f4\u017eete vytv\u00e1ra\u0165 napl\u00e1novan\u00e9 \u00falohy a automatizova\u0165 jednotliv\u00e9 procesy. Nebud\u00fa \u017eiadne obmedzenia t\u00fdkaj\u00face sa povahy alebo intenzity pou\u017e\u00edvania slu\u017eby (ber\u00fa sa do \u00favahy n\u00e1klady na pam\u00e4\u0165 a \u010das), a ni\u010d v\u00e1m nebr\u00e1ni systematicky pracova\u0165 na plnohodnotnej mikroservise zalo\u017eenej na Lambda.<\/p>\n<p><\/p>\n<p>Tu m\u00f4\u017eete vytv\u00e1ra\u0165 akcie orientovan\u00e9 na slu\u017eby, ktor\u00e9 sa nevykon\u00e1vaj\u00fa neust\u00e1le. Typick\u00fdm pr\u00edkladom je \u0161k\u00e1lovanie obr\u00e1zkov. Dokonca aj v pr\u00edpade distribuovan\u00fdch syst\u00e9mov funkcie Lambda nestr\u00e1caj\u00fa svoju relevanciu.<\/p>\n<p><\/p>\n<p>Tak\u017ee, ak sa nechcete zaobera\u0165 pride\u013eovan\u00edm a spravovan\u00edm v\u00fdpo\u010dtov\u00fdch zdrojov \u2013 vysk\u00fa\u0161ajte AWS Lambda; ak nepotrebujete \u0165a\u017ek\u00e9, n\u00e1ro\u010dn\u00e9 v\u00fdpo\u010dty \u2013 tie\u017e vysk\u00fa\u0161ajte AWS Lambda; ak sa v\u00e1\u0161 k\u00f3d vykon\u00e1va periodicky \u2013 to je spr\u00e1vne, mali by ste sk\u00fasi\u0165 AWS Lambda.<\/p>\n<p><\/p>\n<h2 id=\"bezopasnost\">Bezpe\u010dnos\u0165<\/h2>\n<p><\/p>\n<p>Doteraz nie s\u00fa \u017eiadne s\u0165a\u017enosti na bezpe\u010dnos\u0165. Na druhej strane, preto\u017ee mnoh\u00e9 intern\u00e9 procesy a \u0161pecifik\u00e1 implement\u00e1cie tohto modelu s\u00fa pou\u017e\u00edvate\u013eovi spravovanej prostredia AWS Lambda skryt\u00e9, niektor\u00e9 v\u0161eobecne akceptovan\u00e9 pravidl\u00e1 cloudovej bezpe\u010dnosti str\u00e1caj\u00fa v\u00fdznam.<\/p>\n<p><\/p>\n<p>Rovnako ako v\u00e4\u010d\u0161ina slu\u017eieb AWS, Lambda sa poskytuje na princ\u00edpe spolo\u010dnej zodpovednosti AWS a klienta za bezpe\u010dnos\u0165 a dodr\u017eiavanie predpisov. Tento princ\u00edp zni\u017euje prev\u00e1dzkov\u00fa z\u00e1\u0165a\u017e klienta, preto\u017ee AWS preber\u00e1 \u00falohy \u00fadr\u017eby, spr\u00e1vy a kontroly komponentov slu\u017eby \u2013 od opera\u010dn\u00e9ho syst\u00e9mu hostite\u013ea a \u00farovne virtualiz\u00e1cie a\u017e po fyzick\u00fa bezpe\u010dnos\u0165 objektov infra\u0161trukt\u00fary. <\/p>\n<p><\/p>\n<p>Ak hovor\u00edme konkr\u00e9tne o AWS Lambda, AWS sa star\u00e1 o spr\u00e1vu z\u00e1kladnej infra\u0161trukt\u00fary, s\u00favisiacich z\u00e1kladn\u00fdch slu\u017eieb, opera\u010dn\u00e9ho syst\u00e9mu a aplika\u010dnej platformy. Zatia\u013e \u010do klient nesie zodpovednos\u0165 za zabezpe\u010denie svojho k\u00f3du, uchov\u00e1vanie d\u00f4vern\u00fdch \u00fadajov, kontrolu pr\u00edstupu k nim, ako aj k slu\u017ebe a prostriedkom Lambda (Identity and Access Management, IAM), vr\u00e1tane pou\u017eit\u00fdch funkci\u00ed.<\/p>\n<p><\/p>\n<p>Na sch\u00e9me ni\u017e\u0161ie je zn\u00e1zornen\u00fd model zdie\u013eanej zodpovednosti, ktor\u00fd sa vz\u0165ahuje na AWS Lambda. Oblas\u0165 zodpovednosti AWS je vyfarben\u00e1 na oran\u017eovo, zatia\u013e \u010do zodpovednos\u0165 klienta je na modro. Ako vid\u00edte, AWS preber\u00e1 viac zodpovednosti za aplik\u00e1cie nasaden\u00e9 na slu\u017ebe.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Detailn\u00e1 anal\u00fdza AWS Lambda\" src=\"\/wp-content\/uploads\/2019\/09\/d1f324929e3b03d454a0cd9842844cb4.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><em>Model zdie\u013eanej zodpovednosti, ktor\u00fd sa vz\u0165ahuje na AWS Lambda<\/em><\/p>\n<p><\/p>\n<h3 id=\"sreda-vypolneniya-lambda\">Prostredie Lambda<\/h3>\n<p><\/p>\n<p>Hlavnou v\u00fdhodou Lambda je, \u017ee pri vykon\u00e1van\u00ed funkcie va\u0161\u00edm menom slu\u017eba sama pride\u013euje potrebn\u00e9 prostriedky. M\u00f4\u017eete sa vyhn\u00fa\u0165 administr\u00e1cii syst\u00e9mov a s\u00fastredi\u0165 sa na podnikate\u013esk\u00fa logiku a p\u00edsanie k\u00f3du.<\/p>\n<p><\/p>\n<p>Slu\u017eba Lambda je rozdelen\u00e1 na dve roviny. Prv\u00e1 je riadiaca rovina. Pod\u013ea Wikip\u00e9die, riadiaca rovina (control plane) je \u010das\u0165 siete, ktor\u00e1 sa star\u00e1 o prenos sign\u00e1lov\u00e9ho toku a smerovanie. Je hlavn\u00fdm komponentom, ktor\u00fd prij\u00edma glob\u00e1lne rozhodnutia o pridelen\u00ed, \u00fadr\u017ebe a rozde\u013eovan\u00ed pracovn\u00fdch z\u00e1\u0165a\u017e\u00ed. Okrem toho, riadiaca rovina zohr\u00e1va \u00falohu v sie\u0165ovej topol\u00f3gii dod\u00e1vate\u013ea rie\u0161enia, ktor\u00fd sa star\u00e1 o smerovanie a spr\u00e1vu toku.<\/p>\n<p><\/p>\n<p>Druh\u00e1 rovina je rovina d\u00e1t. Rovnako ako riadiaca rovina m\u00e1 aj ona svoje \u00falohy. Riadiaca rovina poskytuje API na spr\u00e1vu funkci\u00ed (CreateFunction, UpdateFunctionCode) a kontroluje interakciu Lambda s in\u00fdmi slu\u017ebami AWS. Rovina d\u00e1t spravuje API volan\u00ed (Invoke API), ktor\u00e9 sp\u00fa\u0161\u0165a funkcie Lambda. Po vyvolan\u00ed funkcie riadiaca rovina pridel\u00ed alebo vyberie existuj\u00face, vopred pripraven\u00e9 prostredie na vykon\u00e1vanie tejto funkcie a n\u00e1sledne vykon\u00e1 k\u00f3d v \u0148om.<\/p>\n<p><\/p>\n<p>AWS Lambda podporuje mno\u017estvo programovac\u00edch jazykov, vr\u00e1tane Java 8, Python 3.7, Go, NodeJS 8, .NET Core 2 a \u010fal\u0161\u00edch prostredn\u00edctvom pr\u00edslu\u0161n\u00fdch runtime prostred\u00ed. AWS ich pravidelne aktualizuje, distribuuje bezpe\u010dnostn\u00e9 opravy a vykon\u00e1va \u010fal\u0161ie \u00fadr\u017ebov\u00e9 oper\u00e1cie t\u00fdchto prostred\u00ed. Lambda umo\u017e\u0148uje pou\u017e\u00edva\u0165 aj in\u00e9 jazyky, pokia\u013e si sami implementujete pr\u00edslu\u0161n\u00e9 runtime prostredie. Potom budete musie\u0165 zabezpe\u010di\u0165 jeho \u00fadr\u017ebu, vr\u00e1tane doh\u013eadu nad bezpe\u010dnos\u0165ou.<\/p>\n<p><\/p>\n<p><strong>Ako to v\u0161etko funguje a ako slu\u017eba vykon\u00e1 va\u0161e funkcie?<\/strong><\/p>\n<p><\/p>\n<p>Ka\u017ed\u00e1 funkcia funguje v jednej alebo viacer\u00fdch vyhraden\u00fdch prostrediach, ktor\u00e9 existuj\u00fa iba po\u010das \u017eivotn\u00e9ho cyklu tejto funkcie, a potom s\u00fa zni\u010den\u00e9. V ka\u017edom prostred\u00ed sa realizuje iba jedno volanie naraz, ale je znova pou\u017eit\u00e9, ak existuje mno\u017estvo s\u00e9riov\u00fdch volan\u00ed tej istej funkcie. V\u0161etky runtime prostredia funguj\u00fa na virtu\u00e1lnych strojoch s hardv\u00e9rovou virtualiz\u00e1ciou \u2014 takzvan\u00fdch microVM. Ka\u017ed\u00fd microVM je priraden\u00fd k konkr\u00e9tnemu \u00fa\u010dtu AWS a m\u00f4\u017ee by\u0165 opakovane pou\u017e\u00edvan\u00e9 prostrediami na vykon\u00e1vanie r\u00f4znych funkci\u00ed v tomto \u00fa\u010dte. MicroVM s\u00fa zabalen\u00e9 do \u0161truktur\u00e1lnych blokov hardv\u00e9rovej platformy Lambda Worker, ktor\u00fa vlastn\u00ed a spravuje AWS. To ist\u00e9 runtime prostredie nem\u00f4\u017ee by\u0165 pou\u017e\u00edvan\u00e9 r\u00f4znymi funkciami, rovnako ako microVM s\u00fa jedine\u010dn\u00e9 pre r\u00f4zne \u00fa\u010dty AWS.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Detailn\u00e1 anal\u00fdza AWS Lambda\" src=\"\/wp-content\/uploads\/2019\/09\/9c4fd7aeaf3b582aed5fa8a6a876c315.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><em>Model izol\u00e1cie v AWS Lambda<\/em><\/p>\n<p><\/p>\n<p>Izol\u00e1cia runtime prostred\u00ed je realizovan\u00e1 prostredn\u00edctvom nieko\u013ek\u00fdch mechanizmov. Na najvy\u0161\u0161ej \u00farovni ka\u017ed\u00e9ho prostredia s\u00fa pr\u00edtomn\u00e9 samostatn\u00e9 k\u00f3pie nasleduj\u00facich komponentov:<\/p>\n<p><\/p>\n<ul>\n<li>K\u00f3d funkcie<\/li>\n<li>Ak\u00e9ko\u013evek vrstvy Lambda vybran\u00e9 pre funkciu<\/li>\n<li>Runtime prostredie funkcie<\/li>\n<li>Minim\u00e1lny pou\u017e\u00edvate\u013esk\u00fd priestor na z\u00e1klade Amazon Linux<\/li>\n<\/ul>\n<p><\/p>\n<p>Na izol\u00e1ciu r\u00f4znych runtime prostred\u00ed sa pou\u017e\u00edvaj\u00fa nasleduj\u00face mechanizmy:<\/p>\n<p><\/p>\n<ul>\n<li>cgroups \u2014 obmedzenie pr\u00edstupu k zdrojom CPU, pam\u00e4te, kapacity diskov a siete pre ka\u017ed\u00e9 runtime prostredie;<\/li>\n<li>namespaces \u2014 zoskupenie ID procesov, ID pou\u017e\u00edvate\u013eov, sie\u0165ov\u00fdch rozhran\u00ed a \u010fal\u0161\u00edch zdrojov, ktor\u00e9 spravuje jadro Linuxu. Ka\u017ed\u00e9 runtime prostredie funguje vo svojom vlastnom namespace;<\/li>\n<li>seccomp-bpf \u2014 obmedzenie syst\u00e9mov\u00fdch volan\u00ed, ktor\u00e9 je mo\u017en\u00e9 pou\u017ei\u0165 v runtime prostred\u00ed;<\/li>\n<li>iptables a routovacie tabu\u013eky \u2014 izol\u00e1cia runtime prostred\u00ed medzi sebou;<\/li>\n<li>Chroot \u2014 poskytovanie obmedzen\u00e9ho pr\u00edstupu k podkladov\u00e9mu s\u00faborov\u00e9mu syst\u00e9mu.<\/li>\n<\/ul>\n<p><\/p>\n<p>V kombin\u00e1cii s propriet\u00e1rnymi technol\u00f3giami izol\u00e1cie AWS zaru\u010duj\u00fa uveden\u00e9 mechanizmy spo\u013eahliv\u00e9 oddelenie vykon\u00e1vac\u00edch prostred\u00ed. Izolovan\u00e9 prostredia nem\u00f4\u017eu pristupova\u0165 k d\u00e1tam in\u00fdch prostred\u00ed a meni\u0165 ich.<\/p>\n<p><\/p>\n<p>Hoci nieko\u013eko vykon\u00e1vac\u00edch prostred\u00ed jednej \u00fa\u010dtu AWS m\u00f4\u017ee be\u017ea\u0165 na jednom microVM, pod \u017eiadnymi okolnos\u0165ami nem\u00f4\u017eu by\u0165 microVM zdie\u013ean\u00e9 r\u00f4znymi \u00fa\u010dtami AWS. Pre izol\u00e1ciu microVM v AWS Lambda sa pou\u017e\u00edvaj\u00fa len dva mechanizmy: EC2 in\u0161tancie a Firecracker. Izol\u00e1cia host\u00ed (guest isolation) v Lambda zalo\u017een\u00e1 na in\u0161tanci\u00e1ch EC2 sa aplikuje od roku 2015. Firecracker je nov\u00fd hyperv\u00edzor s otvoren\u00fdm k\u00f3dom, ktor\u00fd bol \u0161peci\u00e1lne navrhnut\u00fd AWS pre serverless pracovn\u00e9 za\u0165a\u017eenia a predstaven\u00fd v roku 2018. Fyzick\u00e9 hardv\u00e9rov\u00e9 vybavenie, na ktorom be\u017eia microVM, zdie\u013eaj\u00fa pracovn\u00e9 za\u0165a\u017eenia r\u00f4znych \u00fa\u010dtov.<\/p>\n<p><\/p>\n<h3 id=\"sohranenie-sred-i-sostoyaniy-processov\">Ulo\u017eenie prostred\u00ed a stavov procesov<\/h3>\n<p><\/p>\n<p>Hoci vykon\u00e1vacie prostredia Lambda s\u00fa jedine\u010dn\u00e9 pre r\u00f4zne funkcie, je mo\u017en\u00e9 opakovane vyvol\u00e1va\u0165 rovnak\u00fa funkciu, \u010do znamen\u00e1, \u017ee vykon\u00e1vacie prostredie m\u00f4\u017ee pre\u017ei\u0165 nieko\u013eko hod\u00edn, k\u00fdm bude zni\u010den\u00e9.<\/p>\n<p><\/p>\n<p>V ka\u017edom vykon\u00e1vacom prostred\u00ed Lambda je tie\u017e dostupn\u00fd s\u00faborov\u00fd syst\u00e9m so z\u00e1pisov\u00fdmi opr\u00e1vneniami, pr\u00edstupn\u00fd cez adres\u00e1r \/tmp. Jeho obsah nie je pr\u00edstupn\u00fd z in\u00fdch vykon\u00e1vac\u00edch prostred\u00ed. Pokia\u013e ide o ukladanie stavov procesov, s\u00fabory zap\u00edsan\u00e9 do \/tmp existuj\u00fa po\u010das celej \u017eivotnosti vykon\u00e1vacieho prostredia. To umo\u017e\u0148uje akumul\u00e1ciu v\u00fdsledkov viacer\u00fdch vyvolan\u00ed, \u010do je obzvl\u00e1\u0161\u0165 u\u017eito\u010dn\u00e9 pre n\u00e1ro\u010dn\u00e9 oper\u00e1cie, ako je na\u010d\u00edtanie modelov strojov\u00e9ho u\u010denia.<\/p>\n<p><\/p>\n<h2 id=\"peredacha-dannyh-vyzovov\">Pr\u00edjem \u00fadajov od vyvolan\u00ed<\/h2>\n<p><\/p>\n<p>Rozhranie Invoke API m\u00f4\u017ee by\u0165 vyu\u017eit\u00e9 v dvoch re\u017eimoch: v re\u017eime udalost\u00ed a v re\u017eime 'po\u017eiadavka - odpove\u010f'. V re\u017eime udalost\u00ed sa vyvolanie prid\u00e1va do fronty na neskor\u0161ie vykonanie. V re\u017eime 'po\u017eiadavka - odpove\u010f' sa funkcia vyvol\u00e1va okam\u017eite s poskytnutou n\u00e1lo\u017eou, po \u010dom nasleduje odpove\u010f. V oboch pr\u00edpadoch sa funkcia vykon\u00e1va v prostred\u00ed Lambda, av\u0161ak s r\u00f4znymi sp\u00f4sobmi n\u00e1lo\u017ee.<\/p>\n<p><\/p>\n<p>Pri volaniach typu \u201edotaz \u2013 odpove\u010f\u201c sa za\u0165a\u017euj\u00faca inform\u00e1cia dost\u00e1va od API spracovania po\u017eiadaviek (API Caller), ako je AWS API Gateway alebo AWS SDK, do vyva\u017eova\u010da z\u00e1\u0165a\u017ee a n\u00e1sledne do slu\u017eby vykon\u00e1vania volan\u00ed Lambda (Invoke Service). Posledn\u00e1 ur\u010duje vhodn\u00e9 prostredie na vykonanie funkcie a pren\u00e1\u0161a tam za\u0165a\u017euj\u00facu inform\u00e1ciu na dokon\u010denie volania. Vyva\u017eova\u010d z\u00e1\u0165a\u017ee prij\u00edma prenos s ochranou TLS cez internet. Prenos v r\u00e1mci slu\u017eby Lambda \u2013 po vyva\u017eova\u010di z\u00e1\u0165a\u017ee \u2013 prebieha cez intern\u00fd VPC v konkr\u00e9tnom regi\u00f3ne AWS.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Detailn\u00e1 anal\u00fdza AWS Lambda\" src=\"\/wp-content\/uploads\/2019\/09\/57f97517597f51d83890869b8385074a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><em>Model spracovania volan\u00ed AWS Lambda: re\u017eim \u201edotaz \u2013 odpove\u010f\u201c<\/em><\/p>\n<p><\/p>\n<p>Eventov\u00e9 volania m\u00f4\u017eu prebieha\u0165 okam\u017eite alebo m\u00f4\u017eu by\u0165 zaraden\u00e9 do fronty. V niektor\u00fdch pr\u00edpadoch je fronta realizovan\u00e1 pomocou slu\u017eby Amazon SQS (Amazon Simple Queue Service), ktor\u00e1 pren\u00e1\u0161a volania do slu\u017eby vykon\u00e1vania volan\u00ed Lambda prostredn\u00edctvom intern\u00e9ho procesu dotazovania (poller). Pren\u00e1\u0161an\u00fd prenos je zabezpe\u010den\u00fd pomocou TLS, pri\u010dom \u017eiadne \u010fal\u0161ie \u0161ifrovanie \u00fadajov ulo\u017een\u00fdch v Amazon SQS nie je poskytnut\u00e9. <\/p>\n<p><\/p>\n<p>Eventov\u00e9 volania nevracaj\u00fa odpovede \u2013 ak\u00fako\u013evek odpovedaj\u00facu inform\u00e1ciu Lambda Worker jednoducho ignoruje. Volania na z\u00e1klade udalost\u00ed z Amazon S3, Amazon SNS, CloudWatch a in\u00fdch zdrojov spracov\u00e1va slu\u017eba Lambda v re\u017eime udalost\u00ed. Volania z tokov Amazon Kinesis a DynamoDB, volania frontov SQS, vyva\u017eova\u010dov z\u00e1\u0165a\u017ee aplik\u00e1ci\u00ed a API Gateway sa spracov\u00e1vaj\u00fa v re\u017eime \u201edotaz \u2013 odpove\u010f\u201c.<\/p>\n<p><\/p>\n<h3 id=\"monitoring\">Monitorovanie<\/h3>\n<p><\/p>\n<p>Funkcie Lambda m\u00f4\u017eete sledova\u0165 a auditova\u0165 pomocou r\u00f4znych mechanizmov a slu\u017eieb AWS, vr\u00e1tane nasleduj\u00facich.<\/p>\n<p><\/p>\n<p><strong>Amazon CloudWatch<\/strong><br \/>\nZbiera r\u00f4zne \u0161tatistiky, ako je po\u010det po\u017eiadaviek, trvanie vykonania po\u017eiadaviek a po\u010det po\u017eiadaviek, ktor\u00e9 skon\u010dili chybou.<\/p>\n<p><\/p>\n<p><strong>Amazon CloudTrail<\/strong><br \/>\nUmo\u017e\u0148uje vies\u0165 z\u00e1znamy, kontinu\u00e1lne monitorovanie a uchov\u00e1va\u0165 inform\u00e1cie o aktivite vo va\u0161om \u00fa\u010dte, ktor\u00e9 s\u00favisia s va\u0161ou infra\u0161trukt\u00farou AWS. Budete ma\u0165 kompletn\u00fa chronol\u00f3giu akci\u00ed vykonan\u00fdch prostredn\u00edctvom konzoly AWS Management Console, AWS SDK, pr\u00edkazov\u00fdch n\u00e1strojov a in\u00fdch slu\u017eieb AWS.<\/p>\n<p><\/p>\n<p><strong>AWS X-Ray<\/strong><br \/>\nZais\u0165uje \u00fapln\u00fa vidite\u013enos\u0165 v\u0161etk\u00fdch f\u00e1z spracovania po\u017eiadaviek vo va\u0161ej aplik\u00e1cii na z\u00e1klade mapy jej vn\u00fatorn\u00fdch komponentov. Umo\u017e\u0148uje analyzova\u0165 aplik\u00e1cie po\u010das v\u00fdvoja a v produk\u010dnom prostred\u00ed.<\/p>\n<p><\/p>\n<p><strong>AWS Config<\/strong><br \/>\nM\u00f4\u017eete sledova\u0165 zmeny konfigur\u00e1cie funkci\u00ed Lambda (vr\u00e1tane ich odstr\u00e1nenia) a prostredia, zna\u010diek, mien spracovate\u013eov, ve\u013ekosti k\u00f3du, pridelenia pam\u00e4te, nastaven\u00ed \u010dasov\u00e9ho limitu a parametrov paralelizmu, ako aj \u00falohy vykon\u00e1vania Lambda IAM, podnetu a priradenia skup\u00edn zabezpe\u010denia.<\/p>\n<p><\/p>\n<h3 id=\"zaklyuchenie\">Z\u00e1ver<\/h3>\n<p><\/p>\n<p>AWS Lambda pon\u00faka mocn\u00fa sadu n\u00e1strojov na vytv\u00e1ranie bezpe\u010dn\u00fdch a \u0161k\u00e1lovate\u013en\u00fdch aplik\u00e1ci\u00ed. Mnoh\u00e9 met\u00f3dy zabezpe\u010denia a dodr\u017eiavania predpisov v AWS Lambda sa neodli\u0161uj\u00fa od t\u00fdch, ktor\u00e9 sa pou\u017e\u00edvaj\u00fa v ostatn\u00fdch slu\u017eb\u00e1ch AWS, hoci existuj\u00fa aj v\u00fdnimky. K febru\u00e1ru 2019 Lambda sp\u013a\u0148a po\u017eiadavky SOC 1, SOC 2, SOC 3, PCI DSS, z\u00e1kona USA o kontinuit\u00e1ch a odpovednosti zdravotn\u00e9ho poistenia (HIPAA) a \u010fal\u0161\u00edch regulat\u00edv. Preto, ak zva\u017eujete implement\u00e1ciu novej aplik\u00e1cie, zva\u017eujte slu\u017ebu AWS Lambda \u2013 mo\u017eno je ide\u00e1lnym rie\u0161en\u00edm pre v\u00e1\u0161 projekt.<\/p>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/466519\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b\u00bb. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438? \u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043c\u0430\u0441\u0442\u0435\u0440-\u043a\u043b\u0430\u0441\u0441 \u0415\u0433\u043e\u0440\u0430 \u0417\u0443\u0435\u0432\u0430 (TeamLead \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 InBit) \u00abAWS EC2 \u0441\u0435\u0440\u0432\u0438\u0441\u00bb \u0438 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0439\u0442\u0435\u0441\u044c \u043a \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u043a\u0443\u0440\u0441\u0430: \u0441\u0442\u0430\u0440\u0442 26 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f. \u0412\u0441\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043b\u044e\u0434\u0435\u0439 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 AWS Lambda \u0440\u0430\u0434\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u0438, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0438 \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0438 \u0434\u0430\u0436\u0435 \u0442\u0440\u0438\u043b\u043b\u0438\u043e\u043d\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u043c\u0435\u0441\u044f\u0446. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28468,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37937","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b\u00bb. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438?\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/detalnyj-razbor-aws-lambda\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0414\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 AWS Lambda | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b\u00bb. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438?\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/detalnyj-razbor-aws-lambda\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:20:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:20:41+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Detailn\u00e1 anal\u00fdza AWS Lambda | ProHoster","description":"Preklad \u010dl\u00e1nku bol pripraven\u00fd \u0161peci\u00e1lne pre \u0161tudentov kurzu \u201eCloudov\u00e9 slu\u017eby\u201c. Zauj\u00edma v\u00e1s vyv\u00edja\u0165 sa v tejto oblasti?","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/detalnyj-razbor-aws-lambda","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0414\u0435\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0430\u0437\u0431\u043e\u0440 AWS Lambda | ProHoster","og:description":"\u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u043e\u0432 \u043a\u0443\u0440\u0441\u0430 \u00ab\u041e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b\u00bb. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438?","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/detalnyj-razbor-aws-lambda","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:20:41+00:00","article:modified_time":"2019-10-31T19:20:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37937","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 19:50:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:18:22","updated":"2026-01-23 19:50:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/37937","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=37937"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/37937\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/28468"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=37937"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=37937"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=37937"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}