Te tātari taipitopito o AWS Lambda

Ko te whakamaoritanga o te tuhinga i whakaritea mo nga akonga o te akoranga "Ratonga kapua". Kei te pirangi koe ki te whakawhanake i tenei huarahi? Tirohia te akomanga matua na Egor Zuev (TeamLead i InBit) "Ratonga AWS EC2" ka uru atu ki te roopu akoranga e whai ake nei: ka timata i te Mahuru 26.

Te tātari taipitopito o AWS Lambda

He maha ake nga taangata kei te heke ki te AWS Lambda mo te whakaheke, te mahi, te penapena, me te kaha ki te hapai i nga miriona, tae noa ki nga piriona tono mo ia marama. Ki te mahi i tenei, kaore koe e hiahia ki te whakahaere i nga hanganga e whakahaere ana te ratonga. Na te autoscaling ka taea e koe te mahi i nga mano tini tono tukutahi mo ia hekona. Ki taku whakaaro ka tika te kiia ko AWS Lambda tetahi o nga ratonga AWS tino rongonui.

Tuhinga o mua

Ko te AWS Lambda he ratonga rorohiko kore-kaupapa-a-takahanga e taea ai e koe te whakahaere i te waehere me te kore whakarato, te whakahaere tūmau ranei me te whakawhānui atu i etahi atu ratonga AWS ma te whakamahi i te arorau ritenga. Ka whakautu aunoa a Lambda ki nga momo kaupapa (e kiia ana ko nga keu), penei i nga tono HTTP na roto i te Amazon API Gateway, nga huringa ki nga raraunga i roto i nga peere Amazon S3, i nga ripanga Amazon DynamoDB ranei; ka taea ranei e koe te whakahaere i to waehere ma roto i nga waea API ma te whakamahi i te AWS SDK me nga whakawhitinga kawanatanga i roto i nga Mahi AWS Step.

Ka whakahaerehia e Lambda te waehere i runga i nga hanganga rorohiko e waatea ana, a, kei a ia te tino kawenga mo te whakahaere i te papaapapa o raro, tae atu ki te tiaki i te tūmau me te punaha whakahaere, te whakarato rauemi, te tauine-aunoa, te aroturuki waehere, me te takiuru. Arā, me tuku noa to waehere me te whirihora me pehea me te wa e tika ai te mahi. Ka huri, ma te ratonga e tiaki tana whakarewatanga me te whakarite kia nui te waatea o to tono.

Ahea te huri ki Lambda?

Ko te AWS Lambda he papa rorohiko watea e pai ana mo nga momo keehi, mena ka tautokohia te reo me te wa mahi o to waehere e te ratonga. Mena kei te pirangi koe ki te aro ki to tohu me to arorau pakihi i te wa e whakaputa ana koe i te tiaki, te whakarato, me te tauine i te utu tika, ko AWS Lambda te huarahi hei haere.

He pai a Lambda mo te hanga atanga hotaka, a ka whakamahia tahi me te API Gateway, ka taea e koe te whakaiti i nga utu me te tere haere ki te maakete. He rereke nga huarahi ki te whakamahi i nga mahi a Lambda me nga whiringa mo te whakarite hoahoanga kore - ka taea e te katoa te kowhiri i tetahi mea e tika ana i runga i o raatau whaainga.

Ka taea e Lambda te mahi i nga momo mahi maha. Na, he mihi ki te tautoko CloudWatch, ka taea e koe te hanga i nga mahi whakaroa me te whakaaunoa i nga mahi takitahi. Karekau he here i runga i te ahua me te kaha o te whakamahi i te ratonga (ka whai whakaarotia te kohi mahara me te wa), kaore hoki he mea e aukati i a koe ki te mahi nahanaha ki runga i te ratonga moroiti katoa i runga i te Lambda.

I konei ka taea e koe te hanga i nga mahi-a-ratonga kaore e rere tonu. He tauira angamaheni ko te whakatauira atahanga. Ahakoa i roto i te take o nga punaha toha, ka noho tika nga mahi a Lambda.

Na, ki te kore koe e pai ki te mahi ki te tohatoha me te whakahaere i nga rauemi rorohiko, whakamatauria AWS Lambda; ki te kore koe e hiahia ki nga tatauranga taumaha, tino kaha rawa, me whakamatau ano te AWS Lambda; Mena ka rere to waehere i ia wa, ka tika, me whakamatau koe i te AWS Lambda.

Haumarutanga

I tenei wa kaore he amuamu mo te haumaru. I tetahi atu taha, i te mea ko te nuinga o nga tikanga o roto me nga ahuatanga whakatinanatanga o tenei tauira e huna ana mai i te kaiwhakamahi o te AWS Lambda i whakahaere i te waahi whakahaere, karekau etahi ture e whakaaetia ana mo te haumarutanga kapua.

Pērā i te nuinga o ngā ratonga AWS, ka tukuna a Lambda i runga i te kaupapa haumarutanga me te hanganga ture i waenga i te AWS me te kaihoko. Ko tenei maataapono ka whakaiti i te taumahatanga whakahaere i runga i te kaihoko, na te mea ka mau a AWS i nga mahi o te pupuri, te whakahaere me te aro turuki i nga waahanga ratonga - mai i te punaha whakahaere manaaki me te paparanga mariko ki te haumaru tinana o nga rawa hanganga.

Ma te korero motuhake mo AWS Lambda, ko AWS te kawenga mo te whakahaere i nga hanganga o raro, nga ratonga o raro e hono ana, te punaha whakahaere, me te papaaho tono. Ahakoa ko te kaihoko te kawenga mo te haumarutanga o tana waehere, te pupuri i nga raraunga muna, te whakahaere i te uru ki reira, tae atu ki te ratonga Lambda me nga rauemi (Whakahaere Tuakiri me te Whakauru, IAM), tae atu ki roto i nga rohe o nga mahi e whakamahia ana.

Ko te hoahoa i raro nei e whakaatu ana i te tauira kawenga tiritahi e pa ana ki AWS Lambda. He karaka te Haepapa AWS, he kikorangi te Haepapa Kiritaki. Ka kite koe, ka nui ake te kawenga a AWS mo nga tono kua tukuna ki runga i te ratonga.

Te tātari taipitopito o AWS Lambda

Te Tauira Haepapa Tiri E Pa ana ki AWS Lambda

Te wa whakahaere o Lambda

Ko te painga nui o Lambda ko te mahi i tetahi mahi mo koe, ma te ratonga ano e tohatoha nga rauemi e tika ana. Ka taea e koe te karo i te moumou taima me te whakapau kaha ki te whakahaere punaha me te aro ki te arorau pakihi me te tohu tohu.

Kua wehea te ratonga Lambda ki nga rererangi e rua. Ko te tuatahi ko te rererangi whakahaere. E ai ki a Wikipedia, ko te waka rererangi te waahanga o te whatunga te kawenga mo te kawe i nga waka tohu me nga huarahi. Koia te waahanga tuatahi e whakatau ana i te ao mo te whakarato, te mahi, me te tohatoha i nga kawenga mahi. I tua atu, ko te waka rererangi te mahi hei topology whatunga o te kaiwhakarato otinga, te kawenga mo te ararere me te whakahaere waka.

Ko te rererangi tuarua ko te rererangi raraunga. He rite ki te rererangi whakahaere, he mahi ano. Ka whakaratohia e te waka rererangi nga API mo te whakahaere i nga mahi (CreateFunction, UpdateFunctionCode) me te whakahaere me pehea te korero a Lambda ki etahi atu ratonga AWS. Ko te rererangi raraunga e whakahaere ana i te Invoke API, e whakahaere ana i nga mahi a Lambda. I muri i te karangatanga o tetahi mahi, ka tohatohahia, ka kowhiria ranei e te paparangi whakahaere tetahi taiao wa mahi kua rite-mua mo taua mahi, katahi ka mahia te waehere kei roto.

Kei te tautoko a AWS Lambda i nga momo reo hootaka, tae atu ki te Java 8, Python 3.7, Go, NodeJS 8, .NET Core 2, me etahi atu, na roto i o raatau waahi whakahaere. He rite tonu te whakahōu a AWS i a raatau, ka tohatoha i nga papanga haumaru, me te mahi i etahi atu mahi tiaki i enei taiao. Ka taea e Lambda te whakamahi i etahi atu reo, mena ka mahia e koe te waa whakahaere tika. Na ka whai koe ki te tiaki i tona tiaki, tae atu ki te aroturuki i tona haumaru.

He pehea te mahi katoa me pehea te mahi a te ratonga i o mahi?

Ka haere ia mahinga i roto i te kotahi, neke atu ranei o nga taiao i whakatapua, ka noho mo te oranga o taua mahi katahi ka ngaro. Kotahi noa te waea i ia taiao, engari ka whakamahia ano mena he maha nga waea rangatū ki te mahi kotahi. Ko nga taiao whakahaere katoa e rere ana i runga i nga miihini mariko me te mariko taputapu - e kiia ana ko nga microVM. Ko ia microVM ka tohaina ki tetahi kaute AWS motuhake ka taea te whakamahi ano e nga taiao ki te mahi i nga mahi rereke i roto i taua kaute. Ko nga MicroVM kei te kohia ki roto i nga poraka hangahanga o te papamahi taputapu a Lambda Worker, na te AWS te pupuri me te whakahaere. Kaore e taea te whakamahi i taua wa whakahaere e nga mahi rereke, kaore ano hoki nga microVMs motuhake ki nga kaute AWS rereke.

Te tātari taipitopito o AWS Lambda

Tauira Motuhake AWS Lambda

Ka whakatinanahia te wehenga o nga taiao whakahaere ma te whakamahi i nga tikanga maha. Kei runga ake o ia taiao he kape motuhake o nga waahanga e whai ake nei:

  • Waehere mahi
  • Ko nga paparanga Lambda kua tohua mo te mahi
  • Te taiao mahi mahi
  • Mokowā kaiwhakamahi iti i runga i te Amazon Linux

Ko nga tikanga e whai ake nei ka whakamahia hei wehe i nga taiao mahi rereke:

  • cgroups - whakawhāitihia te uru ki te PTM, te mahara, te rokiroki me nga rauemi whatunga mo ia taiao wa whakahaere;
  • mokowāingoa - whakarōpū ID tukanga, ID kaiwhakamahi, atanga whatunga me etahi atu rauemi e whakahaerehia ana e te kernel Linux. Ka haere ia wa whakahaere ki tana ake mokowāingoa;
  • seccomp-bpf - ka aukati i nga waea punaha ka taea te whakamahi i te waa whakahaere;
  • iptables me nga ripanga ararere - te wehe i nga taiao mahi mai i a ratau;
  • chroot - he iti te uru ki te punaha konae.

Ka honoa me nga hangarau motuhake a AWS, ka whakapumau enei tikanga i te wehenga wa whakahaere pono. Ko nga taiao kua wehea penei kaore e taea te uru, te whakarereke ranei i nga raraunga mai i etahi atu taiao.

Ahakoa he maha nga wa whakahaere o te kaute AWS kotahi ka taea te whakahaere i runga i te moroiti kotahi, kaore e taea te tiritiri nga microVM i waenga i nga kaute AWS rereke. Ka whakamahia e AWS Lambda e rua noa nga tikanga hei wehe i nga microVM: nga tauira EC2 me te Firecracker. Mai i te tau 2 kua noho wehe te manuhiri i Lambda i runga i nga tauira EC2015. Ko te Firecracker he kaitirotiro puna tuwhera hou i hangaia e te AWS mo nga kawenga kore mahi me te whakauru mai i te tau 2018. Ko nga taputapu tinana e whakahaere ana i nga microVM ka tohatohahia i waenga i nga kawenga mahi puta noa i nga kaute rereke.

Te tiaki i nga taiao me nga ahuatanga tukanga

Ahakoa he ahurei nga wa whakahaere a Lambda ki nga mahi rereke, ka taea e ratou te karanga i te mahi kotahi tonu, ko te tikanga ka ora te wa whakahaere mo etahi haora i mua i te whakangaro.

Kei ia wa whakahaere a Lambda he punaha konae tuhi ka taea ma te raarangi /tmp. Kaore e taea te uru atu ki roto i etahi atu wa whakahaere. Mo te u tonu o te mahi, kei te noho tonu nga konae kua tuhia ki te /tmp mo te huringa ora katoa o te waahi whakahaere. Ma tenei ka taea te kohikohi i nga hua o nga waea maha, he mea tino pai mo nga mahi utu nui penei i te uta i nga tauira ako miihini.

Waea whakawhiti raraunga

Ka taea te whakamahi i te Invoke API i roto i nga ahuatanga e rua: te aratau takahanga me te aratau tono-whakautu. I roto i te aratau takahanga, ka taapirihia te waea ki tetahi rarangi mo te mahi a muri ake nei. I roto i te aratau tono-whakautu, ka karangahia te mahi me te utu e whakaratohia ana, muri iho ka whakahokia mai te whakautu. I nga wahanga e rua, ka rere te mahi i roto i te taiao Lambda, engari he rereke nga huarahi utu.

I te wa o nga waea tono-whakautu, ka rere te utu utu mai i te API tukatuka tono (API Caller), penei i te AWS API Gateway, AWS SDK ranei, ki te taurite kawenga, katahi ki te ratonga waea Lambda (Ratonga Invoke). Ko te mea whakamutunga ka whakatau i te taiao e tika ana mo te whakahaere i te mahi me te tuku i te utu ki reira ki te whakaoti i te waea. Ka whiwhi te taurite kawenga i nga waka kua parea e TLS i runga i te Ipurangi. Ko nga waka i roto i te ratonga Lambda—i muri i te taurite kawenga—ka haere ma te VPC o roto i tetahi rohe AWS motuhake.

Te tātari taipitopito o AWS Lambda

Tauira Tukatuka Waea AWS Lambda: Aratau Tono-Whakautu

Ka taea te waea huihuinga i te wa tonu, ka taapirihia ranei ki tetahi rarangi. I etahi wa, ka whakatinanahia te rarangi ma te whakamahi i te Amazon SQS (Amazon Simple Queue Service), ka tukuna nga waea ki te ratonga whakatutuki waea a Lambda na roto i te tukanga pooti o roto. Ka tiakina e te TLS nga waka whakawhiti, kaore he whakamunatanga taapiri o nga raraunga kua rongoa ki Amazon SQS.

Karekau nga waea takahanga e whakahoki whakautu—ka aro noa te Kaimahi Lambda ki nga korero whakautu. Ko nga waea-a-takahanga mai i Amazon S3, Amazon SNS, CloudWatch, me etahi atu punawai ka tukatukahia e Lambda i roto i te aratau takahanga. Ko nga waea mai i nga awaawa Amazon Kinesis me DynamoDB, nga rarangi SQS, te Kaitauta Uta Tono, me nga waea API Gateway ka tukatukahia i roto i te ahua tono-whakautu.

Aroturuki

Ka taea e koe te aro turuki me te arotake i nga mahi a Lambda ma te whakamahi i nga momo tikanga me nga ratonga AWS, tae atu ki enei e whai ake nei.

Amazon CloudWatch
Ka kohia nga momo tatauranga penei i te maha o nga tono, te roanga o nga tono, me te maha o nga tono i rahua.

Amazon CloudTrail
Ka taea e koe te takiuru, te aro turuki tonu, me te pupuri i nga korero mahi kaute e pa ana ki to hanganga AWS. Ka whai koe i te hitori katoa o nga mahi i mahia ma te whakamahi i te AWS Management Console, AWS SDK, taputapu raina whakahau, me etahi atu ratonga AWS.

AWS X-Ray
Ka whakarato i te tirohanga katoa ki nga waahanga katoa o te tukatuka tono i roto i to tono i runga i te mapi o ona waahanga o roto. Ka taea e koe te tarai i nga tono i te wa o te whakawhanaketanga me nga taiao whakaputa.

Whirihora AWS
Ka taea e koe te whai i nga huringa ki te whirihoranga mahi a Lambda (tae atu ki te mukunga) me nga wa whakahaere, nga tohu, nga ingoa kaihautu, te rahi o te tohu, te toha mahara, nga tautuhinga taima me nga tautuhinga riterite, tae atu ki te mahi a Lambda IAM ki te mahi, te kupenga-iti, me te herenga roopu haumaru. .

mutunga

Ka tukuna e AWS Lambda he huinga taputapu kaha mo te hanga tono haumaru me te tauine. He rite tonu te nuinga o nga mahi haumaru me te hanganga ture i roto i te AWS Lambda ki etahi atu ratonga AWS, ahakoa he rereke. Mai i te Maehe 2019, kei te whai a Lambda ki nga ture SOC 1, SOC 2, SOC 3, PCI DSS, Ture Whakaaetanga Inihua Hauora (HIPAA), me etahi atu ture. Na, ka whakaaro koe ki te whakatinana i to tono ka whai ake, whakaarohia te ratonga AWS Lambda - tera pea te mea tino pai mo to mahi.

Source: will.com

Tāpiri i te kōrero