Serverless-kehitys AWS Lambdalla · Oppitunti

Lambdan ajonaika ja layerit

Tutustukaa eri Lambda-ajonaikoihin ja hyödyntäkää Lambda Layers -kerroksia yhteisten riippuvuuksien, kirjastojen ja mukautettujen ajonaikojen tehokkaaseen hallintaan

Oppitunti 1/411 vaihetta

Lambdan ajonaika ja layerit on ilmainen Serverless-kehitys AWS Lambdalla-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Serverless-kehitys AWS Lambdalla-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Serverless-kehitys AWS Lambdalla-kurssilla on yhteensä 4 oppituntia.

Mitä Lambda-ajonaikaiset ympäristöt ovat

Kun kirjoitat AWS Lambda -funktion, sinun on valittava ajonaikainen ympäristö. Ajonaikainen ympäristö tarkoittaa tiettyä kieliympäristöä, jossa koodisi suoritetaan.

Se on kuin valitsisit, missä keittiössä reseptisi valmistetaan – Python-, Node.js- tai Java-keittiössä ja niin edelleen. AWS Lambda tarjoaa hallinnoidut ajonaikaiset ympäristöt suosituille kielille.

Miksi ajonaikaiset ympäristöt ovat tärkeitä

Valitsemasi ajonaikainen ympäristö määrittää, miten koodisi suoritetaan, mitä kirjastoja on oletusarvoisesti käytettävissä ja miten funktiosi toimii Lambda-ympäristön kanssa.

  • Kielituki: Varmistaa, että koodisi suoritetaan oikein.
  • Riippuvuudet: Määrittää esiasennetut kirjastot.
  • Suorituskyky: Eri ajonaikaisilla ympäristöillä on erilaiset käynnistysajat ja suoritusnopeudet.
  • Työkalut: Vaikuttaa käyttämiisi kehitystyökaluihin.

Suositut Lambda-ajonaikaiset ympäristöt

AWS Lambda tukee useita suosittuja ohjelmointikieliä suoraan. Tässä on joitakin yleisimpiä:

  • Node.js: Sopii erinomaisesti web-palveluihin ja tapahtumaohjautuviin sovelluksiin.
  • Python: Suosittu skriptauksessa, tietojenkäsittelyssä ja tekoälyssä sekä koneoppimisessa.
  • Java: Käytetään usein yrityssovelluksissa.
  • C# (.NET): Microsoft-ekosysteemissä työskenteleville kehittäjille.
  • Go: Tunnetaan hyvästä suorituskyvystä ja samanaikaisuudesta.
  • Ruby: Kehittäjille, jotka arvostavat sen eleganttiutta ja tuottavuutta.

Ensimmäinen Python-Lambda-funktiosi

Tarkastellaan yksinkertaista Pythonilla kirjoitettua Lambda-funktiota. Tämä funktio toimii aloituspisteenä, käsittelee event-tapahtuman ja palauttaa vastauksen.

Kokeile suorittaa tämä esimerkki:

def lambda_handler(event, context):
    # 'event' contains data from the trigger
    # 'context' provides runtime information
    name = event.get('name', 'World') # Get name from event, default to 'World'
    message = f"Hello, {name}! This is your first Python Lambda."
    print(message)
    
    return {
        'statusCode': 200,
        'body': message
    }

Lambda Layersin esittely

Lambda-sovellustesi kasvaessa niissä on usein yhteistä koodia, kirjastoja tai riippuvuuksia, joita useat funktiot käyttävät. Tässä Lambda Layers -kerrokset tulevat avuksi!

Layer on .zip-tiedostoarkisto, joka voi sisältää kirjastoja, mukautetun ajonaikaisen ympäristön tai muita riippuvuuksia. Lambda-funktioon voi liittää enintään viisi kerrosta.

Kerrosten käytön hyödyt

Kerrokset auttavat hallitsemaan Lambda-funktioitasi tehokkaammin ja pitämään ne järjestyksessä:

  • Pienemmät julkaisutiedostot: Funktiokoodisi sisältää vain ainutlaatuisen logiikan, ei yhteisiä kirjastoja.
  • Nopeammat julkaisut: Pienemmät tiedostot latautuvat nopeammin.
  • Riippuvuuksien hallinta: Kun päivität kirjaston yhdessä kerroksessa, kaikki siihen liittyvät funktiot hyötyvät päivityksestä.
  • Koodin uudelleenkäyttö: Voit jakaa aputoimintoja tai määrityksiä useiden Lambda-funktioiden kesken.
  • Vastuiden erottelu: Pidä liiketoimintalogiikka erillään yhteisistä riippuvuuksista.

Kerrosten rakenne

Jotta Lambda löytää kerroksen sisällön, se on järjestettävä .zip-tiedoston tiettyihin kansioihin. Pythonia käytettäessä koodin on oltava python/-hakemistossa.

Jos sinulla on esimerkiksi my_utils.py-niminen apumoduuli, kerroksen .zip-tiedosto näyttäisi tältä:

  • my_layer.zip
    • python/
      • my_utils.py

Muilla ajonaikaisilla ympäristöillä on vastaavat käytännöt (esimerkiksi nodejs/node_modules Node.js:ää varten).

Yksinkertaisen kerroksen luominen

Kuvitellaan, että meillä on yhteinen aputoiminto, joka kääntää merkkijonon yksinkertaisesti ympäri. Voimme sijoittaa sen kerrokseen.

Tämä olisi my_utils.py-tiedostomme sisältö, joka pakattaisiin sen jälkeen kerrokseksi:

# my_utils.py (inside the 'python/' directory of your layer)

def reverse_string(s):
    return s[::-1]

def greet_user(name):
    return f"Hello, {name}!"

Kerroksen käyttäminen Lambdassa

Kun olet luonut kerroksen ja liittänyt sen Lambda-funktioosi, voit tuoda sen moduuleja aivan kuten minkä tahansa paikallisen moduulin. Näin Python-Lambdamme käyttäisi my_utils-kerrosta:

import my_utils # This import works because 'my_utils' is in an attached layer

def lambda_handler(event, context):
    input_name = event.get('name', 'there')
    
    # Use functions from the layer
    greeting = my_utils.greet_user(input_name)
    reversed_greeting = my_utils.reverse_string(greeting)
    
    print(f"Original: {greeting}")
    print(f"Reversed: {reversed_greeting}")
    
    return {
        'statusCode': 200,
        'body': reversed_greeting
    }

Nopea tarkistus ajonaikaisista ympäristöistä ja kerroksista

Mikä seuraavista on AWS Lambda Layersin käytön ensisijainen hyöty?

Kertaus ja seuraavat vaiheet

Hienoa työtä! Olet oppinut Lambdan ajonaikaisista ympäristöistä ja kerroksista.

  • Ajonaikaiset ympäristöt määrittävät Lambda-koodisi kieliympäristön.
  • Kerrokset auttavat hallitsemaan yhteisiä riippuvuuksia ja jakamaan koodia, mikä pienentää ja tehostaa julkaisutiedostoja.

Kerrosten avulla Lambda-funktiosi pysyvät kevyinä, joten ne on helpompi julkaista ja ylläpitää. Seuraavaksi perehdymme toiseen tärkeään Lambdan hallinnan osa-alueeseen: ympäristömuuttujiin!

Aloita maksutta

Opi Serverless-kehitys AWS Lambdalla tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Lambdan ajonaika ja layerit” ilmainen?

Kyllä – oppitunnin ”Lambdan ajonaika ja layerit” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Serverless-kehitys AWS Lambdalla-kurssin, päivitä CoddyKit PROhon. Serverless-kehitys AWS Lambdalla-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Lambdan ajonaika ja layerit”?

Tutustukaa eri Lambda-ajonaikoihin ja hyödyntäkää Lambda Layers -kerroksia yhteisten riippuvuuksien, kirjastojen ja mukautettujen ajonaikojen tehokkaaseen hallintaan Harjoittelet Serverless-kehitys AWS Lambdalla-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Serverless-kehitys AWS Lambdalla-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Serverless-kehitys AWS Lambdalla-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Lambdan ajonaika ja layerit”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Serverless-kehitys AWS Lambdalla-oppitunnilla?

Kyllä. Jokainen Serverless-kehitys AWS Lambdalla-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Lambdan ajonaika ja layerit
  2. Ympäristömuuttujat ja määritykset
  3. Lambdan IAM-roolit ja tietoturva
  4. Versiointi ja aliakset turvallisia julkaisuja varten
← Takaisin: Serverless-kehitys AWS Lambdalla