Mi az AWS Lambda? Lambda funkció példákkal

⚡ Okos összefoglaló

Az AWS Lambda egy eseményvezérelt, szerver nélküli számítástechnikai platform a ...-tól. Amazon Webszolgáltatások, amelyek a kódot a triggerek hatására futtatják, automatikusan kezelik a kiépítést, a skálázást és a szerverfelügyeletet, így Önnek csak az üzleti logikára kell koncentrálnia.

  • ☁️ Kiszolgáló nélküli modell: Az AWS Lambda kódot futtat szerverek kiépítése vagy kezelése nélkül, eltávolítva az operációs rendszer javítását, skálázását és kapacitástervezését.
  • Eseményvezérelt végrehajtás: Az olyan AWS szolgáltatások által kiváltott függvények, mint az S3, DynamoDB, API-átjáró és közösségi hálózat, amelyek csak esemény bekövetkeztekor futnak.
  • 🧩 Nyelvi támogatás: A Lambda támogatja a Node.js-t, Python, Java, Go, C# és Ruby, valamint egyéni futási környezetek más nyelvekhez.
  • 💰 Használatonkénti fizetés: BillAz ing csak a kód végrehajtása alatt érvényes, milliszekundumban mérve, egy állandó havi egymillió kéréses ingyenes szinttel.
  • 🇧🇷 Alapfogalmak: A függvények, futási környezetek, eseményforrások, rétegek és naplófolyamok határozzák meg, hogyan hajtja végre és kezeli a Lambda a kódot.
  • 🤖 AI segítség: GitHub másodpilóta és Amazon A Q Lambda kódot generál, míg a Lambda generatív AI-következtetést vezérel Amazon Alapkőzet.

Mi az AWS Lambda?

Mielőtt belemerülnénk az AWS Lambda megismerésébe, érdemes megérteni, mit jelent a szerver nélküli (kiszolgáló nélküli) megoldás.

Mi az a szerver nélküli?

A „kiszolgáló nélküli” kifejezés általában a kiszolgáló nélküli alkalmazásokra utal. A kiszolgáló nélküli alkalmazások olyan alkalmazások, amelyek nem igényelnek kiszolgáló kiépítését, és nem igénylik a kiszolgálók kezelését.

Mi az AWS Lambda?

Az AWS Lambda egy eseményvezérelt, szerver nélküli számítástechnikai platform, amelyet a Amazon részeként Amazon Webszolgáltatások. Ezért nem kell aggódnod amiatt, hogy mely AWS-erőforrásokat indítsd el, vagy hogyan kezeld őket. Ehelyett a kódot a Lambdára kell helyezned, és az már fut is.

Az AWS Lambda-ban a kód az AWS szolgáltatások eseményeire adott válaszok alapján fut, például fájlok hozzáadása vagy törlése egy S3 vödörben, egy HTTP kérés a következőtől: Amazon API-átjáró és hasonló események. Azonban Amazon A Lambda csak háttérfeladatok végrehajtására használható.

Az AWS Lambda függvény segít a fő termékre és üzleti logikára koncentrálni ahelyett, hogy az operációs rendszer (OS) hozzáférés-vezérlését, az operációs rendszer javítását, a megfelelő méretezést, a kiépítést, a skálázást stb. kellene kezelnie.

Hogyan működik az AWS Lambda?

A következő AWS Lambda példa blokkdiagrammal néhány egyszerű lépésben elmagyarázza az AWS Lambda működését:

AWS lambda blokkdiagram

Lépés 1: Először töltse fel az AWS Lambda kódját az AWS Lambda által támogatott bármely nyelven. Java, PythonAz AWS Lambda függvény által támogatott nyelvek közé tartozik a , a Go és a C#.

Lépés 2: Ezek olyan AWS-szolgáltatások, amelyek lehetővé teszik az AWS Lambda aktiválását.

Lépés 3: Az AWS Lambda segít feltölteni a kódot és az esemény részleteit, amelyeken aktiválni kell.

Lépés 4: AWS Lambda kódot hajt végre, amikor azt AWS szolgáltatások aktiválják.

Lépés 5: Az AWS csak akkor számít fel díjat, amikor az AWS Lambda kód végrehajtódik, egyébként nem.

Ez a következő forgatókönyvekben fog megtörténni:

  • Töltsön fel fájlokat egy S3 vödörbe
  • Amikor egy HTTP get/post végpont URL eltalált
  • Dynamo DB táblák hozzáadásához, módosításához és törléséhez
  • Az adatfolyam-gyűjtés folyamatában
  • Azonnali értesítés
  • Weboldal hosting
  • E-mail küldés

Jegyzet: Ne feledd, hogy az AWS szolgáltatásokért csak akkor kell fizetned, ha az AWS Lambda kód lefut, egyébként nem kell fizetned semmit.

Az AWS Lambdát kiváltó események

Íme azok az események, amelyek az AWS Lambda használatakor aktiválódnak.

  • Adatok beszúrása, frissítése és törlése egy Dynamo DB táblában
  • Push értesítések felvétele az SNS-be
  • Naplóelőzmények kereséséhez a CloudTrailben
  • Belépés egy S3 objektumba
  • DynamoDB kiválthatja az AWS Lambdát, amikor adatot adnak hozzá, módosítanak vagy törölnek a táblázatban.
  • Segít az esemény ütemezésében, hogy a feladat rendszeres időközönként történjen.
  • Objektumok módosítása az S3 gyűjtőhelyeken
  • Értesítések küldése innen: Amazon SNS.
  • Az AWS Lambda használható a CloudTrail naplók feldolgozására.
  • Az API Gateway lehetővé teszi az AWS Lambda aktiválását GET/POST metódusokon.

AWS Lambda Concepts

Funkció: A függvény egy program vagy egy parancsfájl, amely az AWS Lambdában fut. A Lambda átadja a meghívási eseményeket a függvénynek, amely feldolgozza az eseményt, és visszaadja a választ.

Futásidők: A futásidejű környezet lehetővé teszi a különböző nyelveken írt függvények futtatását ugyanazon az alap végrehajtási környezetben. Ez segít a függvény konfigurálásában a futásidejű környezetben. Ez a kiválasztott nyelvhez is igazodik. programozási nyelv.

Az esemény forrása: Az eseményforrás egy AWS szolgáltatás, mint pl Amazon Közösségi média, vagy egyéni szolgáltatás. Ez az eseményindító segíti a függvény logikájának végrehajtását.

Lambda rétegek: A lambda rétegek fontos elosztási mechanizmust jelentenek a könyvtárak, az egyéni futási környezetek és más fontos függvényfüggőségek számára. Ez az AWS-összetevő abban is segít, hogy a fejlesztési funkció kódját az általa használt változatlan kódtól és erőforrásoktól elkülönítve kezelje.

Napló folyamok: A Log stream lehetővé teszi a függvénykód egyéni naplózási utasításokkal való annotálását, amelyek segítenek elemezni az AWS Lambda függvények végrehajtási folyamatát és teljesítményét.

Az AWS Lambda használata

Most egy AWS Lambda példával fogjuk megtanulni, hogyan kell használni az AWS Lambda-t:

Step 1) Nyissa meg az AWS Lambdát URL

Tovább https://aws.amazon.com/lambda/ és Kezdés.

Az AWS Lambda használata

Step 2) Hozzon létre egy fiókot

Ezután hozzon létre egy fiókot, vagy jelentkezzen be a meglévő fiókjával.

Az AWS Lambda használata

Step 3) Szerkessze a kódot, és kattintson a Futtatás gombra

A következő Lambda oldalon szerkessze a kódot, és kattintson a Futtatás gombra.

Step 4) Ellenőrizze a kimenetet

Látni fogod a kimenetet.

Az AWS Lambda használata

AWS Lambda VS AWS EC2

Íme néhány fő különbség az AWS Lambda és az EC2.

paraméterek AWS Lambda AWS EC2
Meghatározás Az AWS Lambda egy platform mint szolgáltatás (PaaS). Segít a háttérkód futtatásában és végrehajtásában. Az AWS EC2 egy Infrastructure as a Service (IaaS) rendszer, amely virtualizált számítási erőforrásokat biztosít.
Rugalmas Nem kínál rugalmasságot a számítási példányokba való bejelentkezéshez. Lehetővé teszi egy testreszabott operációs rendszer vagy nyelvi futtatókörnyezet kiválasztását. Rugalmasságot kínál különféle példányok, egyéni operációs rendszerek, biztonsági javítások és hálózatok stb. kiválasztásához.
Telepítési folyamat Ki kell választanod azt a környezetet, ahol a kódot futtatni szeretnéd, és be kell töltened a kódot az AWS Lambda-ba. Az EC2-ben először ki kell választania az operációs rendszert, telepítenie kell az összes szükséges szoftvert, majd be kell küldenie a kódot az EC2-be.
Környezeti korlátozások Néhány nyelvre korlátozódik. Nincsenek környezetvédelmi korlátozások.

AWS Lambda kontra AWS Elastic Beanstalk

Íme néhány fő különbség az AWS Lambda és az Elastic között Beanstalk.

paraméterek AWS Elastic Beanstalk AWS Lambda
Fő feladat Telepítse és kezelje az alkalmazásokat az AWS Cloudon anélkül, hogy aggódnia kellene az alkalmazásokat futtató infrastruktúra miatt. Az AWS Lambda a háttérkód futtatására és végrehajtására szolgál. Nem használható alkalmazás telepítésére.
Az AWS-erőforrások kiválasztása Szabadságot ad az AWS erőforrások kiválasztásában; például választhat egy EC2 példányt, amely optimális az alkalmazása számára. Nem választhatja ki az AWS erőforrásokat, például egy EC2 példánytípust; a Lambda a munkaterhelés alapján kínál erőforrásokat.
A rendszer típusa Ez egy állapotalapú rendszer. Ez egy hontalan rendszer.

Az AWS Lambda használati esetei

Az AWS Lambda-t számos alkalmazásban használják, például:

  • Segít a ETL folyamat
  • Lehetővé teszi valós idejű fájlfeldolgozást és valós idejű adatfolyam-feldolgozást
  • Használja webes alkalmazások létrehozására
  • Használja be Amazon olyan termékek, mint az Alexa Chatbots és Amazon Echo/Alexa
  • Adatfeldolgozás (valós idejű adatfolyam-elemzés)
  • A mindennapi feladatok automatizált biztonsági mentése
  • Skálázható háttérrendszerek (mobilalkalmazások, IoT-eszközök)
  • Segít a szerveroldali háttérlogika végrehajtásában
  • Lehetővé teszi az adatok szűrését és átalakítását

A lambda funkció legjobb gyakorlatai

Íme néhány AWS Lambda függvények bevált gyakorlata:

  • Használja a megfelelő „időtúllépést”.
  • Használja a helyi tároló funkcióit, amely 500 MB méretű a /temp mappában.
  • Minimalizálja az olyan indítókód használatát, amely nem kapcsolódik közvetlenül az aktuális esemény feldolgozásához.
  • A Lambda-funkciók beépített CloudWatch-felügyeletét kell használnia a kérések késleltetésének megtekintéséhez és optimalizálásához.

Mikor ne használja az AWS Lambdát

A következő helyzetekben a Lambda biztosan nem ideális megoldás:

  • Az AWS Lambda használata nem helyénvaló olyan szoftvercsomagokhoz vagy alkalmazásokhoz, amelyek az alapul szolgáló objektumok meghívására támaszkodnak. Windows RPC-k.
  • Ha licencszerződésekkel rendelkező egyedi szoftveralkalmazásokhoz, például MS-Office dokumentumfeldolgozáshoz használják, Oracle adatbázisok stb.
  • Az AWS Lambda-t nem szabad egyéni hardverfolyamatokhoz, például GPU-gyorsításhoz és hardveraffinitáshoz használni.

Az AWS Lambda használatának előnyei

Íme az AWS Lambda használatának előnyei/kedvezőségei:

  • Az AWS Lambda egy rendkívül rugalmasan használható eszköz.
  • Segít hozzáférést biztosítani az erőforrásokhoz, beleértve a VPC-ket is.
  • Közvetlenül szerző egy WYSIWYG szerkesztő a konzolban.
  • Beépülő modulként használhatod Eclipse és a Visual Studio.
  • Mivel szerver nélküli architektúráról van szó, nem kell aggódnia a szerverek kezelése vagy kiépítése miatt.
  • Nem kell beállítani egyiket sem Virtuális gép.
  • Segíti a fejlesztőket a kód eseményekre adott válaszának futtatásában és végrehajtásában infrastruktúra kiépítése nélkül.
  • Csak a számítási időért kell fizetned, csak akkor, amikor a kódod fut.
  • A CloudWatch segítségével valós időben nyomon követheti a kód teljesítményét.
  • Lehetővé teszi a kód futtatását más szerverek kiépítése vagy kezelése nélkül.
  • Segít abban, hogy a kódot csak akkor hajtsa végre, amikor szükséges.
  • Automatikusan méretezheti, hogy napi néhány kérést kezeljen, és akár több ezer kérést is támogatjon másodpercenként.
  • Az AWS Lambda külső eseményidőzítők segítségével konfigurálható ütemezett feladatok végrehajtására.
  • Az AWS lambda függvényét külső eseményekkel és időzítőkkel kell konfigurálni, hogy ütemezésre is használható legyen.
  • A lambda függvények állapot nélküliek, így gyorsan skálázhatók.
  • Az AWS Lambda gyors, így ezredmásodperceken belül végrehajtja a kódot.

Az AWS lambda korlátai

Íme az AWS Lambda használatának hátrányai/hátrányai:

  • Az AWS Lambda eszköz nem alkalmas kis projektekhez.
  • Az AWS Lambda teljes mértékben az AWS-re támaszkodik az infrastruktúra tekintetében, így nem telepíthet további szoftvert, ha a kódja megköveteli.
  • Az egyidejű végrehajtás alapértelmezett korlátja régiónként 1,000, amely kérésre növelhető.
  • A memória mennyisége 128 MB és 10 240 MB között változhat.
  • Az eseménykérés nem haladhatja meg a 128 KB-ot.
  • A Lambda-funkciók segítenek abban, hogy naplóikat csak a CloudWatch-ben írhasd. Ez az egyetlen eszköz, amely lehetővé teszi a funkciók figyelését vagy hibaelhárítását.
  • A kód végrehajtási időkorlátja 15 percre korlátozódik.

GYIK

Az AWS Lambda natívan támogatja a Node.js-t, Python, Java, Go, C#, PowerShell és Ruby. A futásidejű API és a konténerkép-támogatás lehetővé teszi szinte bármilyen más nyelv futtatását, így a csapatokat ritkán korlátozza az előnyben részesített nyelvkészletük.

Az AWS Lambda állandó ingyenes szintet kínál, amely havi egymillió kérést és 400 000 GB-másodperc számítási időt biztosít. Ezen felül csak a kérésekért és a kód által ténylegesen felhasznált számítási időért fizet, milliszekundumonként számlázva.

A hidegindítás az a rövid késleltetés, amikor a Lambda inicializál egy új végrehajtási környezetet egy tétlen függvényhez. Ezt csökkentheted párhuzamosítással, kisebb csomagokkal vagy a SnapStart segítségével. Java funkciókat.

Igen. A ZIP archívum feltöltésén kívül a Lambda lehetővé teszi a függvények akár 10 GB-os konténerképként való becsomagolását. Ez nagyobb függőségekhez és gépi tanulási könyvtárakhoz illik, miközben megtartjaping ugyanaz az eseményvezérelt, szerver nélküli végrehajtási modell.

A Lambda rövid, eseményvezérelt függvényeket futtat automatikus skálázással és ezredmásodpercenkénti számlázással. Az AWS Fargate hosszabb konténeresített munkafolyamatokat futtat szerverek kezelése nélkül. Válassza a Lambdát a gyors eseményválaszokhoz, a Fargate-et pedig a stabil, hosszú ideig futó konténerfeladatokhoz.

Igen. A Lambda általában mesterséges intelligencia alkalmazásokhoz készült, könnyű következtetéseket futtatva és olyan szolgáltatásokhoz intézett hívásokat hangolva el, mint például Amazon Bedrock és SageMaker. A konténerképek támogatása segít a gépi tanulási könyvtárak csomagolásában, míg a Lambda kezeli a generatív AI-folyamat skálázását.

Igen. GitHub másodpilóta kezelőfüggvényeket ír egy megjegyzésből vagy névből, miközben Amazon A Q Developer AWS-tudatos súgót ad hozzá az IAM-szabályzatokhoz, a CloudFormationhoz és az SDK-hívásokhoz, felgyorsítva a szerver nélküli fejlesztést.

Minden függvénynek adjon minimális jogosultságú IAM szerepkört, a titkokat titkosított környezeti változókban vagy a Secrets Managerben tárolja, és az érzékeny függvényeket egy VPC-n belül helyezze el. A CloudWatch és a CloudTrail ezután naplózza a tevékenységeket monitorozás és auditálás céljából.

Foglald össze ezt a bejegyzést a következőképpen: