Kas ir AWS Lambda? Lambda funkcija ar piemēriem

Pirms funkcijas AWS Lambda sapratīsim:

Kas ir bez serveriem?

Bez servera ir termins, kas parasti attiecas uz lietojumprogrammām bez serveriem. Lietojumprogrammas bez serveriem ir tādas, kurām nav nepieciešami nekādi servera pakalpojumi un kurām nav jāpārvalda serveri.

Kas ir AWS Lambda?

AWS Lambda ir uz notikumiem balstīta, bez serveru skaitļošanas platforma, ko Amazon nodrošina kā daļu no Amazon Web Services. Tāpēc jums nav jāuztraucas par to, kādus AWS resursus palaist, vai par to, kā jūs tos pārvaldīsit. Tā vietā jums ir jāievieto kods Lambda, un tas darbojas.

AWS Lambda kods tiek izpildīts, pamatojoties uz AWS pakalpojumu notikumu reakciju, piemēram, failu pievienošana/dzēšana S3 segmentā, HTTP pieprasījums no Amazon API vārtejas utt. Tomēr Amazon Lambda var izmantot tikai fona uzdevumu izpildei.

Funkcija AWS Lambda palīdz jums koncentrēties uz savu pamatproduktu un biznesa loģiku, nevis pārvaldīt operētājsistēmas (OS) piekļuves kontroli, operētājsistēmas ielāpus, pareizos izmērus, nodrošināšanu, mērogošanu utt.

Šajā AWS Lambda apmācībā iesācējiem jūs uzzināsit:

Kā darbojas AWS Lambda?

Šis AWS Lambda piemērs ar blokshēmu izskaidro AWS Lambda darbību, veicot dažas vienkāršas darbības:

1. darbība: Vispirms augšupielādējiet savu AWS Lambda kodu jebkurā valodā, ko atbalsta AWS Lambda. Java, Python, Go un C# ir dažas no valodām, kuras atbalsta funkcija AWS Lambda.

2. darbība: Šie ir daži AWS pakalpojumi, kas ļauj aktivizēt AWS Lambda.

3. darbība: AWS Lambda palīdz augšupielādēt kodu un informāciju par notikumu, kurā tas jāaktivizē.

4. solis: Izpilda AWS Lambda kodu, kad to aktivizē AWS pakalpojumi:

5. darbība: AWS iekasē maksu tikai tad, kad tiek izpildīts AWS lambda kods, nevis citādi.

Tas notiks šādos scenārijos:

  • Augšupielādējiet failus S3 grupā
  • Kad tiek sasniegts HTTP saņemšanas/publicēšanas galapunkta URL
  • Dynamo DB tabulu pievienošanai/modificēšanai un dzēšanai
  • Datu plūsmu vākšanas procesā
  • Push paziņojums
  • Vietnes mitināšana
  • E -pasta sūtīšana

Piezīme: Jums jāatceras, ka par AWS pakalpojumiem būs jāmaksā tikai tad, kad tiks izpildīts AWS Lambda kods, pretējā gadījumā jums nekas nav jāmaksā.

Notikumi, kas aktivizē AWS Lambda

Šeit ir notikumi, kas tiks aktivizēti, izmantojot AWS Lambda.

  • Dynamo DB tabulas datu ievietošana, atjaunināšana un dzēšana
  • Lai iekļautu push paziņojumus SNS
  • Lai meklētu žurnāla vēsturi pakalpojumā CloudTrail
  • Ieeja S3 objektā
  • DynamoDB var aktivizēt AWS Lambda ikreiz, kad tabulā tiek pievienoti, mainīti un dzēsti dati.
  • Palīdz ieplānot notikumu, lai veiktu uzdevumu parastajā laikā.
  • Izmaiņas objektos S3 segmentos
  • Paziņojumi nosūtīti no Amazon SNS.
  • AWS Lambda var izmantot CloudTrail žurnālu apstrādei
  • API vārteja ļauj aktivizēt AWS Lambda GET/POST metodēs.

AWS Lambda koncepcijas

Funkcija:

Funkcija ir programma vai skripts, kas darbojas AWS Lambda. Lambda nodod aicinājuma notikumus jūsu funkcijai, kas apstrādā notikumu un atgriež atbildi.

Izpildlaiks:

Izpildlaiks nodrošina funkcijas dažādās valodās, kas darbojas tajā pašā bāzes izpildes vidē. Tas palīdz konfigurēt funkciju izpildlaika laikā. Tas arī atbilst jūsu izvēlētajam programmēšanas valoda .

Notikuma avots:

Notikumu avots ir AWS pakalpojums, piemēram, Amazon SNS, vai pielāgots pakalpojums. Šī aktivizēšanas funkcija palīdz izpildīt tās loģiku.

Lambda slāņi:

Lambda slāņi ir svarīgs izplatīšanas mehānisms bibliotēkām, pielāgotiem darbības laikiem un citām svarīgām funkciju atkarībām. Šis AWS komponents arī palīdz pārvaldīt savu attīstības funkcijas kodu atsevišķi no nemainīgā koda un tā izmantotajiem resursiem.

Žurnālu straumes:

Žurnāla straume ļauj anotēt savas funkcijas kodu ar pielāgotiem reģistrācijas paziņojumiem, kas palīdz analizēt AWS Lambda funkciju izpildes plūsmu un veiktspēju.

Kā lietot AWS Lambda

Tagad mēs iemācīsimies izmantot AWS Lambda ar AWS Lambda piemēru:

1. darbība ) Iet uz https://aws.amazon.com/lambda/ un sāciet darbu

2. solis ) Izveidojiet kontu vai pierakstieties, izmantojot savu esošo kontu

3. solis ) Nākamajā Lambda lapā

  1. Rediģējiet kodu
  2. Noklikšķiniet uz Palaist

4. solis ) Jūs redzēsit izvadi

AWS Lambda VS AWS EC2

Šeit ir dažas būtiskas atšķirības starp AWS Lambda un EC2.

Parametri AWS Lambda AWS EC2
DefinīcijaAWS Lambda ir platforma kā pakalpojums (PaaS). Tas palīdz palaist un izpildīt aizmugures kodu.AWS EC2 ir infrastruktūra kā pakalpojums (laaS). Tas nodrošina virtualizētus skaitļošanas resursus.
ElastībaNepiedāvā elastību, lai pieteiktos, lai aprēķinātu gadījumus. Tas ļauj jums izvēlēties pielāgotu operētājsistēmu vai valodas izpildlaiku.Piedāvā elastību, lai atlasītu dažādas instances, pielāgotas darbības sistēmas, drošības ielāpus un tīklu utt.
Uzstādīšanas processJums jāizvēlas sava vide, kurā vēlaties izpildīt kodu, un jāievada kods AWS Lambda.Pirmo reizi EC2, jums jāizvēlas OS un jāinstalē visa nepieciešamā programmatūra un pēc tam jāiespiež savs kods EC2.
Vides ierobežojumiTas attiecas tikai uz dažām valodām.Nav vides ierobežojumu.

AWS Lambda VS AWS Elastic Beanstalk

Šeit ir dažas būtiskas atšķirības starp AWS Lambda un Elastic Beanstalk.

Parametri AWS Elastic Beanstalk AWS Lambda
Galvenais uzdevumsIzvietojiet un pārvaldiet lietotnes AWS Cloud, neuztraucoties par infrastruktūru, kurā darbojas šīs lietojumprogrammas.AWS Lambda tiek izmantots jūsu aizmugurējā koda palaišanai un izpildei. Jūs to nevarat izmantot lietojumprogrammas izvietošanai.
AWS resursu izvēleTas dod jums brīvību izvēlēties AWS resursus; Piemēram, varat izvēlēties EC2 instanci, kas ir optimāla atbilstoši jūsu lietojumprogrammai.Jūs nevarat atlasīt AWS resursus, piemēram, EC2 instances veidu, Lambda piedāvā resursus, pamatojoties uz jūsu darba slodzi.
Sistēmas tipsTā ir valstiska sistēma.Tā ir bezvalstnieku sistēma.

Izmantojiet AWS Lambda gadījumus

AWS Lambda izmanto plašam lietojumu klāstam, piemēram:

  • Palīdz jums ETL procesā
  • Ļauj veikt reāllaika failu apstrādi un reāllaika straumes apstrādi
  • Izmantojiet tīmekļa lietojumprogrammu izveidošanai
  • Izmantojiet tādos Amazon produktos kā Alexa Chatbots un Amazon Echo/Alexa
  • Datu apstrāde (reāllaika straumēšanas analīze)
  • Ikdienas uzdevumu automatizēta dublēšana
  • Mērogojami aizmugurējie gali (mobilās lietotnes, lokālās ierīces)
  • Palīdz izpildīt servera puses aizmugures loģiku
  • Ļauj filtrēt un pārveidot datus

Lambda funkcijas paraugprakse

Šeit ir daži AWS Lambda funkciju paraugprakses piemēri:

  • Izmantojiet pareizo taimautu.
  • Izmantojiet 500 MB lielās lokālās krātuves funkcijas mapē /temp
  • Sākuma koda izmantošanas samazināšana, kas nav tieši saistīta ar pašreizējā notikuma apstrādi.
  • Lai apskatītu un optimizētu pieprasījumu latentumus, jums vajadzētu izmantot iebūvēto Lambda funkciju CloudWatch uzraudzību.

Kad nelietot AWS Lambda

Tālāk ir aprakstīta situācija, kad Lambda noteikti nav ideāls risinājums:

  • Nav pareizi izmantot AWS Lambda programmatūras pakotnes vai lietojumprogrammas, kuru pamatā ir Windows RPC izsaukšana
  • Ja tiek izmantots pielāgotajām lietojumprogrammām ar licencēšanas līgumiem, piemēram, MS-Office dokumentu apstrādei, Oracle datu bāzēm utt.
  • AWS Lambda nedrīkst izmantot pielāgotam aparatūras procesam, piemēram, GPU paātrināšanai, aparatūras radniecībai.

AWS Lambda izmantošanas priekšrocības

Šeit ir AWS lambda izmantošanas priekšrocības un priekšrocības:

  • AWS Lambda ir ļoti elastīgs rīks
  • Tas palīdz jums piešķirt piekļuvi resursiem, tostarp VPC
  • Autors tieši ar WYSIWYG redaktoru konsolē.
  • To var izmantot kā spraudni Eclipse un Visual Studio.
  • Tā kā tā ir arhitektūra bez serveriem, jums nav jāuztraucas par serveru pārvaldību vai nodrošināšanu.
  • Jums nav jāiestata virtuālā mašīna.
  • Palīdz izstrādātājiem palaist un izpildīt koda reakciju uz notikumiem, neveidojot infrastruktūru.
  • Jums ir nepieciešams tikai aprēķina laiks, tikai tad, kad darbojas jūsu kods.
  • Jūs varat pārraudzīt sava koda veiktspēju reālā laikā, izmantojot CloudWatch.
  • Tas ļauj palaist kodu bez nodrošinājuma vai pārvaldīt jebkuru citu serveri
  • Palīdz izpildīt kodu tikai nepieciešamības gadījumā
  • Varat to automātiski mērogot, lai apstrādātu dažus pieprasījumus dienā un pat atbalstītu vairāk nekā tūkstošiem pieprasījumu sekundē.
  • AWS Lambda var konfigurēt, izmantojot ārējos notikumu taimerus, lai veiktu plānotos uzdevumus.
  • Funkcija Lambda AWS ir jākonfigurē ar ārējiem notikumiem un taimeriem; to var izmantot plānošanai.
  • Lambda funkcijas ir bezvalstnieki, lai to varētu ātri mērogot.
  • AWS Lambda ir ātrs, tāpēc tas izpildīs jūsu kodu milisekundēs.

AWS Lambda ierobežojumi

Šeit ir AWS Lambda izmantošanas trūkumi/trūkumi:

  • AWS Lambda rīks nav piemērots maziem projektiem.
  • AWS Lambda pilnībā paļaujas uz AWS infrastruktūru, tāpēc jūs nevarat instalēt papildu programmatūru, ja jūsu kods to pieprasa.
  • Vienlaicīga izpilde ir ierobežota līdz 100
  • AWS Lambda pilnībā bija atkarīga no AWS infrastruktūras; jūs nevarat instalēt neko papildu programmatūru, ja to pieprasa jūsu kods.
  • Tās atmiņas apjoms var svārstīties no 128 līdz 1536 MB.
  • Pasākuma pieprasījums nedrīkst pārsniegt 128 KB.
  • Lambda funkcijas palīdz rakstīt žurnālus tikai pakalpojumā CloudWatch. Šis ir vienīgais rīks, kas ļauj uzraudzīt vai novērst savas funkcijas.
  • Tā koda izpildes taimauts ir tikai 5 minūtes.

Kopsavilkums

  • Bez servera ir termins, kas parasti attiecas uz lietojumprogrammām bez serveriem.
  • AWS Lambda ir viens no šādiem skaitļošanas pakalpojumiem bez serveriem. Tāpēc jums nav jāuztraucas par to, kādus AWS resursus palaist, vai kā tie tos pārvaldīs.
  • Funkcija ir programma vai skripts, kas darbojas AWS bez serveru lambda.
  • Izpildlaiks nodrošina funkcijas dažādās valodās, kas darbojas tajā pašā bāzes izpildes vidē.
  • Notikumu avots ir AWS pakalpojums, piemēram, Amazon SNS, vai pielāgots pakalpojums.
  • Lambda slāņi ir svarīgs izplatīšanas mehānisms bibliotēkām, pielāgotiem darbības laikiem un citām svarīgām funkciju atkarībām.
  • Žurnāla straume ļauj anotēt savas funkcijas kodu ar pielāgotiem reģistrācijas paziņojumiem, kas palīdz analizēt jūsu Lambda funkciju izpildes plūsmu un veiktspēju.
  • AWS Lambda ir platforma kā pakalpojums (PaaS). Tas palīdz palaist un izpildīt aizmugures kodu.
  • AWS EC2 ir infrastruktūra kā pakalpojums (laaS). Tas nodrošina virtualizētus skaitļošanas resursus.
  • Izvietojiet un pārvaldiet lietotnes AWS Cloud, neuztraucoties par infrastruktūru, kurā darbojas šīs lietojumprogrammas.
  • AWS Lambda tiek izmantots jūsu aizmugurējā koda palaišanai un izpildei. Jūs to nevarat izmantot lietojumprogrammas izvietošanai.
  • AWS Lambda palīdz jums ETL procesā.
  • Labākā Lambda funkcijas prakse AWS ir pareiza “taimauta” izmantošana.
  • Nav pareizi izmantot AWS Lambda programmatūras pakotnes vai lietojumprogrammas, kuru pamatā ir Windows RPC izsaukšana
  • AWS Lambda ir ļoti elastīgs rīks.
  • AWS Lambda rīks nav piemērots maziem projektiem.
  • Bieži sastopams notikums, kas tiks aktivizēts, izmantojot AWS Lambda, ir Dynamo DB tabulas datu ievietošana, atjaunināšana un dzēšana.