Itupalẹ alaye ti AWS Lambda

Itumọ nkan naa ti pese ni pataki fun awọn ọmọ ile-iwe ti iṣẹ-ẹkọ naa "Awọn iṣẹ awọsanma". Ṣe o nifẹ si idagbasoke ni itọsọna yii? Wo kilasi titunto si nipasẹ Egor Zuev (TeamLead ni InBit) "AWS EC2 iṣẹ" ati darapọ mọ ẹgbẹ ikẹkọ atẹle: bẹrẹ ni Oṣu Kẹsan Ọjọ 26.

Itupalẹ alaye ti AWS Lambda

Awọn eniyan diẹ sii n lọ si AWS Lambda fun iwọn, iṣẹ ṣiṣe, awọn ifowopamọ, ati agbara lati mu awọn miliọnu tabi paapaa awọn aimọye awọn ibeere fun oṣu kan. Lati ṣe eyi, iwọ ko nilo lati ṣakoso awọn amayederun lori eyiti iṣẹ naa nṣiṣẹ. Ati autoscaling faye gba o lati sin egbegberun igbakana awọn ibeere fun keji. Mo ro pe AWS Lambda le pe ni ẹtọ ni ọkan ninu awọn iṣẹ AWS olokiki julọ.

AWS Lambda

AWS Lambda jẹ iṣẹ ṣiṣe iširo olupin ti ko ni iṣẹlẹ ti o fun ọ laaye lati ṣiṣẹ koodu laisi ipese tabi ṣakoso awọn olupin ati fa awọn iṣẹ AWS miiran nipa lilo ọgbọn aṣa. Lambda ṣe idahun laifọwọyi si awọn iṣẹlẹ pupọ (ti a npe ni awọn okunfa), gẹgẹbi awọn ibeere HTTP nipasẹ Amazon API Gateway, awọn iyipada si data ni Amazon S3 buckets tabi Amazon DynamoDB tabili; tabi o le ṣiṣẹ koodu rẹ nipasẹ awọn ipe API nipa lilo AWS SDK ati awọn iyipada ipinlẹ ni Awọn iṣẹ Igbesẹ AWS.

Lambda n ṣiṣẹ koodu lori awọn amayederun iširo ti o wa pupọ ati pe o ni iduro ni kikun fun ṣiṣakoso pẹpẹ ti o wa ni abẹlẹ, pẹlu olupin ati itọju ẹrọ ṣiṣe, ipese awọn orisun, iwọn-laifọwọyi, ibojuwo koodu, ati gedu. Iyẹn ni, o kan nilo lati po si koodu rẹ ati tunto bii ati nigba ti o yẹ ki o ṣiṣẹ. Ni ọna, iṣẹ naa yoo ṣe abojuto ifilọlẹ rẹ ati rii daju wiwa giga ti ohun elo rẹ.

Nigbawo lati yipada si Lambda?

AWS Lambda jẹ ipilẹ iširo ti o rọrun ti o dara fun ọpọlọpọ awọn ọran lilo, niwọn igba ti ede ati akoko asiko koodu rẹ ṣe atilẹyin nipasẹ iṣẹ naa. Ti o ba fẹ dojukọ koodu rẹ ati ọgbọn iṣowo lakoko titaja itọju olupin, ipese, ati iwọn ni idiyele idiyele, AWS Lambda jẹ dajudaju ọna lati lọ.

Lambda jẹ apẹrẹ fun ṣiṣẹda awọn atọkun siseto, ati nigba lilo ni apapo pẹlu API Gateway, o le dinku awọn idiyele ni pataki ati ki o lọ si ọja ni iyara. Awọn ọna oriṣiriṣi lo wa lati lo awọn iṣẹ Lambda ati awọn aṣayan fun siseto faaji ti ko ni olupin - gbogbo eniyan le yan nkan ti o dara ti o da lori ibi-afẹde wọn.

Lambda faye gba o lati ṣe kan jakejado ibiti o ti awọn iṣẹ-ṣiṣe. Nitorinaa, o ṣeun si atilẹyin CloudWatch, o le ṣẹda awọn iṣẹ ṣiṣe ti a da duro ati ṣe adaṣe awọn ilana kọọkan. Ko si awọn ihamọ lori iseda ati kikankikan ti lilo iṣẹ naa (agbara iranti ati akoko ni a gba sinu apamọ), ati pe ko si ohun ti o ṣe idiwọ fun ọ lati ṣiṣẹ ni ọna ṣiṣe lori microservice kikun ti o da lori Lambda.

Nibi o le ṣẹda awọn iṣe ti o da lori iṣẹ ti ko ṣiṣẹ nigbagbogbo. Apẹẹrẹ aṣoju jẹ iwọn aworan. Paapaa ninu ọran ti awọn eto pinpin, awọn iṣẹ Lambda wa ni ibamu.

Nitorinaa, ti o ko ba fẹ lati wo pẹlu ipin ati iṣakoso awọn orisun iširo, gbiyanju AWS Lambda; ti o ko ba nilo iwuwo, awọn iṣiro to lekoko, tun gbiyanju AWS Lambda; ti koodu rẹ ba ṣiṣẹ lorekore, o tọ, o yẹ ki o gbiyanju AWS Lambda.

Aabo

Nitorinaa ko si awọn ẹdun ọkan nipa aabo. Ni apa keji, niwọn bi ọpọlọpọ awọn ilana inu ati awọn ẹya imuse ti awoṣe yii ti farapamọ lati ọdọ olumulo ti AWS Lambda agbegbe asiko asiko ti iṣakoso, diẹ ninu awọn ofin gbogbogbo ti o gba ti aabo awọsanma di ko ṣe pataki.

Bii ọpọlọpọ awọn iṣẹ AWS, Lambda ti pese lori aabo pinpin ati ipilẹ ibamu laarin AWS ati alabara. Ilana yii dinku ẹru iṣiṣẹ lori alabara, nitori AWS n gba awọn iṣẹ ṣiṣe ti mimu, iṣakoso ati abojuto awọn paati iṣẹ - lati ẹrọ ṣiṣe agbalejo ati ipele agbara agbara si aabo ti ara ti awọn ohun-ini amayederun.

Ni pataki sisọ nipa AWS Lambda, AWS jẹ iduro fun ṣiṣakoso awọn amayederun ipilẹ, awọn iṣẹ abẹlẹ ti o somọ, ẹrọ ṣiṣe, ati pẹpẹ ohun elo. Lakoko ti alabara jẹ iduro fun aabo koodu rẹ, titoju data ipamọ, iṣakoso wiwọle si rẹ, ati si iṣẹ Lambda ati awọn orisun (Idamo ati Iṣakoso Wiwọle, IAM), pẹlu laarin awọn opin awọn iṣẹ ti a lo.

Aworan ti o wa ni isalẹ fihan awoṣe ojuse pinpin bi o ṣe kan AWS Lambda. Ojuse AWS jẹ osan ati Ojuse Onibara jẹ buluu. Bi o ti le rii, AWS gba ojuse diẹ sii fun awọn ohun elo ti a fi ranṣẹ lori iṣẹ naa.

Itupalẹ alaye ti AWS Lambda

Awoṣe Ojuse Pipin Wa fun AWS Lambda

Lambda asiko isise

Anfani akọkọ ti Lambda ni pe nipa ṣiṣe iṣẹ kan fun ọ, iṣẹ naa funrararẹ pin awọn orisun pataki. O le yago fun jafara akoko ati akitiyan lori eto isakoso ati idojukọ lori owo kannaa ati ifaminsi.

Iṣẹ Lambda ti pin si awọn ọkọ ofurufu meji. Ni igba akọkọ ti ofurufu iṣakoso. Gẹgẹbi Wikipedia, ọkọ ofurufu iṣakoso jẹ apakan ti nẹtiwọọki ti o ni iduro fun gbigbe ijabọ ifihan ati ipa-ọna. O jẹ paati akọkọ ti o ṣe awọn ipinnu agbaye nipa ipese, iṣẹ, ati pinpin awọn ẹru iṣẹ. Ni afikun, ọkọ ofurufu iṣakoso n ṣiṣẹ bi topology nẹtiwọki ti olupese ojutu, lodidi fun ipa-ọna ati iṣakoso ijabọ.

Awọn keji ofurufu ni data ofurufu. O, bii ọkọ ofurufu iṣakoso, ni awọn iṣẹ ṣiṣe tirẹ. Ọkọ ofurufu iṣakoso n pese awọn API fun iṣakoso awọn iṣẹ (CreateFunction, UpdateFunctionCode) ati iṣakoso bi Lambda ṣe n ba awọn iṣẹ AWS miiran sọrọ. Ọkọ ofurufu data n ṣakoso awọn Invoke API, eyiti o nṣiṣẹ awọn iṣẹ Lambda. Lẹhin ti a pe iṣẹ kan, ọkọ ofurufu iṣakoso pin tabi yan agbegbe akoko asiko ti o wa tẹlẹ ti o ti pese tẹlẹ fun iṣẹ yẹn, ati lẹhinna ṣiṣẹ koodu naa ninu rẹ.

AWS Lambda ṣe atilẹyin fun ọpọlọpọ awọn ede siseto, pẹlu Java 8, Python 3.7, Go, NodeJS 8, .NET Core 2, ati awọn miiran, nipasẹ awọn agbegbe asiko asiko wọn. AWS ṣe imudojuiwọn wọn nigbagbogbo, pinpin awọn abulẹ aabo, ati ṣe awọn iṣẹ itọju miiran lori awọn agbegbe wọnyi. Lambda gba ọ laaye lati lo awọn ede miiran daradara, ti o ba ṣe imuse akoko asiko ti o yẹ funrararẹ. Ati lẹhinna o yoo ni lati ṣe abojuto itọju rẹ, pẹlu mimojuto aabo rẹ.

Bawo ni gbogbo rẹ ṣe ṣiṣẹ ati bawo ni iṣẹ naa yoo ṣe ṣe awọn iṣẹ rẹ?

Iṣẹ kọọkan n ṣiṣẹ ni ọkan tabi diẹ sii awọn agbegbe iyasọtọ, eyiti o wa fun igbesi aye iṣẹ yẹn nikan ati lẹhinna run. Ayika kọọkan n ṣe ipe kan ni akoko kan, ṣugbọn o tun lo ti awọn ipe ni tẹlentẹle pupọ ba wa si iṣẹ kanna. Gbogbo awọn agbegbe asiko ṣiṣe nṣiṣẹ lori awọn ẹrọ foju fojuhan pẹlu ohun elo ohun elo – ohun ti a pe ni microVMs. MicroVM kọọkan ni a yàn si akọọlẹ AWS kan pato ati pe o le tun lo nipasẹ awọn agbegbe lati ṣe awọn iṣẹ oriṣiriṣi laarin akọọlẹ yẹn. Awọn MicroVM ti wa ni akopọ sinu awọn bulọọki ile ti Syeed ohun elo Lambda Worker, eyiti o jẹ ohun ini ati ṣiṣẹ nipasẹ AWS. Akoko asiko kanna ko le ṣee lo nipasẹ awọn iṣẹ oriṣiriṣi, tabi microVM jẹ alailẹgbẹ si awọn akọọlẹ AWS oriṣiriṣi.

Itupalẹ alaye ti AWS Lambda

AWS Lambda Iyapa awoṣe

Ipinya ti awọn agbegbe asiko ṣiṣe ni a ṣe ni lilo awọn ọna ṣiṣe pupọ. Ni ipele oke ti agbegbe kọọkan awọn ẹda ọtọtọ ti awọn paati wọnyi wa:

  • koodu iṣẹ
  • Eyikeyi Lambda Layer ti a yan fun iṣẹ naa
  • Ayika ipaniyan iṣẹ
  • Aaye olumulo ti o kere julọ ti o da lori Amazon Linux

Awọn ọna ṣiṣe atẹle wọnyi ni a lo lati ya sọtọ awọn agbegbe ipaniyan oriṣiriṣi:

  • awọn ẹgbẹ - opin wiwọle si Sipiyu, iranti, ibi ipamọ ati awọn orisun nẹtiwọọki fun agbegbe asiko asiko kọọkan;
  • awọn aaye orukọ - awọn ID ilana ṣiṣe akojọpọ, awọn ID olumulo, awọn atọkun nẹtiwọọki ati awọn orisun miiran ti a ṣakoso nipasẹ ekuro Linux. Akoko asiko kọọkan n ṣiṣẹ ni aaye orukọ tirẹ;
  • seccomp-bpf - ṣe ihamọ awọn ipe eto ti o le ṣee lo ni akoko asiko;
  • iptables ati awọn tabili afisona - ipinya ti awọn agbegbe ipaniyan lati ara wọn;
  • chroot - pese iraye si opin si eto faili ti o wa labẹ.

Ni idapọ pẹlu awọn imọ-ẹrọ ipinya ohun-ini AWS, awọn ẹrọ wọnyi ṣe idaniloju iyapa akoko asiko to gbẹkẹle. Awọn agbegbe ti o ya sọtọ ni ọna yii ko le wọle tabi ṣe atunṣe data lati awọn agbegbe miiran.

Botilẹjẹpe awọn igba ṣiṣe pupọ ti akọọlẹ AWS kanna le ṣiṣẹ lori microVM kan, labẹ ọran kankan ko le pin awọn microVM laarin awọn akọọlẹ AWS oriṣiriṣi. AWS Lambda nlo awọn ọna meji nikan lati ya sọtọ microVMs: Awọn iṣẹlẹ EC2 ati Firecracker. Iyasọtọ alejo ni Lambda ti o da lori awọn iṣẹlẹ EC2 ti wa ni ayika lati ọdun 2015. Firecracker jẹ hypervisor orisun ṣiṣi tuntun ti a ṣe apẹrẹ pataki nipasẹ AWS fun awọn iṣẹ ṣiṣe ti ko ni olupin ati ṣafihan ni ọdun 2018. Ohun elo ti ara ti nṣiṣẹ microVMs jẹ pinpin laarin awọn ẹru iṣẹ kọja awọn akọọlẹ oriṣiriṣi.

Nfipamọ awọn agbegbe ati awọn ipinlẹ ilana

Botilẹjẹpe awọn akoko asiko Lambda jẹ alailẹgbẹ si awọn iṣẹ oriṣiriṣi, wọn le pe iṣẹ kanna leralera, afipamo pe akoko ṣiṣe le ye fun awọn wakati pupọ ṣaaju ki o to run.

Akoko asiko Lambda kọọkan tun ni eto faili kikọ ti o wa nipasẹ itọsọna / tmp. A ko le wọle si awọn akoonu inu rẹ lati awọn asiko ṣiṣe miiran. Niwọn bi itẹramọṣẹ ipo ilana, awọn faili ti a kọ si /tmp wa fun gbogbo ọna igbesi aye ti agbegbe asiko asiko. Eyi ngbanilaaye awọn abajade ti awọn ipe lọpọlọpọ lati ṣajọpọ, eyiti o wulo julọ fun awọn iṣẹ ṣiṣe gbowolori bii awọn awoṣe ikẹkọ ẹrọ ikojọpọ.

Pe data gbigbe

API Invoke le ṣee lo ni awọn ipo meji: ipo iṣẹlẹ ati ipo idahun ibeere. Ni ipo iṣẹlẹ, ipe ti wa ni afikun si isinyi fun ipaniyan nigbamii. Ni ipo idahun ibeere, iṣẹ naa ni a pe lesekese pẹlu fifuye isanwo ti a pese, lẹhin eyi ti a ti da esi pada. Ni awọn ọran mejeeji, iṣẹ naa nṣiṣẹ ni agbegbe Lambda, ṣugbọn pẹlu awọn ọna isanwo oriṣiriṣi.

Lakoko awọn ipe idahun-ibeere, fifuye isanwo n ṣan lati inu ibeere API (olupe API), gẹgẹbi AWS API Gateway tabi AWS SDK, si iwọntunwọnsi fifuye, ati lẹhinna si iṣẹ ipe Lambda (Iṣẹ pe). Igbẹhin pinnu agbegbe ti o yẹ fun ṣiṣe iṣẹ naa ati ki o kọja fifuye isanwo nibẹ lati pari ipe naa. Oniwontunwonsi fifuye gba ijabọ-idaabobo TLS lori Intanẹẹti. Ijabọ laarin iṣẹ Lambda — lẹhin iwọntunwọnsi fifuye-kọja nipasẹ VPC inu ni agbegbe AWS kan pato.

Itupalẹ alaye ti AWS Lambda

Awoṣe Ipe Ipe AWS Lambda: Ipo Idahun ibeere

Awọn ipe iṣẹlẹ le ṣee ṣe lẹsẹkẹsẹ tabi fi kun si isinyi. Ni awọn igba miiran, ti isinyi ti wa ni imuse nipa lilo Amazon SQS (Amazon Simple Queue Service), eyi ti o koja awọn ipe si awọn Lambda ipe imuse ilana nipasẹ ohun ti abẹnu didi ilana. Awọn ijabọ ti a firanṣẹ ni aabo nipasẹ TLS, ati pe ko si afikun fifi ẹnọ kọ nkan ti data ti o fipamọ sinu Amazon SQS.

Awọn ipe iṣẹlẹ ko da awọn idahun pada — Osise Lambda kan kọju alaye eyikeyi idahun. Awọn ipe ti o da lori iṣẹlẹ lati Amazon S3, Amazon SNS, CloudWatch, ati awọn orisun miiran jẹ ilọsiwaju nipasẹ Lambda ni ipo iṣẹlẹ. Awọn ipe lati Amazon Kinesis ati awọn ṣiṣan DynamoDB, awọn laini SQS, Iwontunws.funfun Fifuye Ohun elo, ati awọn ipe ẹnu-ọna API ti ni ilọsiwaju ni aṣa idahun ibeere.

Abojuto

O le ṣe atẹle ati ṣayẹwo awọn iṣẹ Lambda ni lilo ọpọlọpọ awọn ọna ṣiṣe ati awọn iṣẹ AWS, pẹlu atẹle naa.

Amazon CloudWatch
Gba ọpọlọpọ awọn iṣiro gẹgẹbi nọmba awọn ibeere, iye akoko awọn ibeere, ati nọmba awọn ibeere ti o kuna.

Amazon CloudTrail
Gba ọ laaye lati wọle, ṣe atẹle nigbagbogbo, ati ṣetọju alaye iṣẹ ṣiṣe akọọlẹ ti o ni nkan ṣe pẹlu awọn amayederun AWS rẹ. Iwọ yoo ni itan-akọọlẹ pipe ti awọn iṣe ti a ṣe ni lilo AWS Management Console, AWS SDK, awọn irinṣẹ laini aṣẹ, ati awọn iṣẹ AWS miiran.

Aws X-ray
Pese hihan pipe sinu gbogbo awọn ipele ti sisẹ ibeere ninu ohun elo rẹ ti o da lori maapu ti awọn paati inu rẹ. Gba ọ laaye lati ṣe itupalẹ awọn ohun elo lakoko idagbasoke ati ni awọn agbegbe iṣelọpọ.

AWS atunto
Iwọ yoo ni anfani lati tọpinpin awọn ayipada si iṣeto iṣẹ Lambda (pẹlu piparẹ) ati awọn akoko ṣiṣe, awọn afi, awọn orukọ oluṣakoso, iwọn koodu, ipin iranti, awọn eto akoko ipari ati awọn eto concurrency, gẹgẹ bi ipa ipaniyan Lambda IAM, subnetting, ati awọn asopọ ẹgbẹ aabo .

ipari

AWS Lambda nfunni ni awọn irinṣẹ ti o lagbara lati kọ awọn ohun elo to ni aabo ati iwọn. Ọpọlọpọ awọn iṣe aabo ati ibamu ni AWS Lambda jẹ kanna bi ninu awọn iṣẹ AWS miiran, botilẹjẹpe awọn imukuro wa. Ni Oṣu Kẹta ọdun 2019, Lambda ni ifaramọ pẹlu SOC 1, SOC 2, SOC 3, PCI DSS, Iṣeduro Iṣeduro Ilera ati Iṣeduro Ofin (HIPAA), ati awọn ilana miiran. Nitorinaa, nigbati o ba n ronu nipa imuse ohun elo atẹle rẹ, ronu iṣẹ AWS Lambda - o le jẹ ibamu ti o dara julọ fun iṣẹ-ṣiṣe rẹ.

orisun: www.habr.com

Fi ọrọìwòye kun