Serverless-kehitys AWS Lambdalla · Oppitunti

S3 tiedostotallennukseen ja tapahtumiin

Syvennätte ymmärrystänne Amazon S3:n käytöstä suurten objektien tallentamiseen ja hakemiseen sekä siitä, miten S3-tapahtumat voivat käynnistää Lambdan käsittelyä varten

Oppitunti 2/411 vaihetta

S3 tiedostotallennukseen ja tapahtumiin on ilmainen Serverless-kehitys AWS Lambdalla-oppitunti CoddyKitissä. Tämä on oppitunti 2/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.

S3 ja Lambda: tapahtumien voima

Tervetuloa! Tässä oppitunnissa perehdymme siihen, miten tehokas tallennuspalvelu Amazon S3 toimii yhdessä AWS Lambdan kanssa.

Opit tallentamaan ja hakemaan tiedostoja sekä ennen kaikkea sen, miten S3 voi käynnistää Lambda-funktiosi automaattisesti, kun tiedoillesi tapahtuu jotakin.

Amazon S3: pilvitallennus

Amazon S3 (Simple Storage Service) on erittäin skaalautuva, kestävä ja käytettävissä oleva objektitallennuspalvelu.

  • Se tallentaa tiedot objekteina säilöihin.
  • Objektit ovat tiedostoja (kuvia, videoita ja asiakirjoja) sekä niiden metatietoja.
  • Säilöt ovat ylimmän tason kansioiden kaltaisia, ja niiden nimien on oltava maailmanlaajuisesti yksilöllisiä.
  • S3 sopii erinomaisesti suurten strukturoimattomien tietomäärien tallentamiseen.

Objektien tallentaminen S3:een

Voitte helposti sijoittaa objekteja S3-säilöön. Jokaisella objektilla on avain, joka toimii sen yksilöllisenä tunnisteena säilön sisällä.

  • Konsoli: Ladatkaa tiedostoja suoraan AWS Management Consolen kautta.
  • CLI: Käyttäkää AWS Command Line Interfacea komentosarjoilla tehtäviin latauksiin.
  • SDK:t: Ladatkaa tiedostoja ohjelmallisesti sovelluksestanne AWS SDK:iden avulla (esimerkiksi Python Boto3- tai Node.js SDK).

Objektien noutaminen S3:sta

Tietojen noutaminen S3:sta on yhtä helppoa. Viittaatte säilön nimeen ja objektin avaimeen.

S3 tarjoaa myös ominaisuuksia, kuten versioinnin useiden objektiversioiden säilyttämiseen sekä ennalta allekirjoitettuja URL-osoitteita yksityisten objektien väliaikaista ja suojattua käyttöä varten.

S3:n tapahtumailmoitukset

Yksi S3:n tehokkaimmista ominaisuuksista palvelimettomassa arkkitehtuurissa on tapahtumailmoitukset. S3 voi ilmoittaa teille, kun säilöissänne tapahtuu tiettyjä tapahtumia.

Näitä tapahtumia ovat esimerkiksi:

  • Objektin luominen (PUT, POST, COPY)
  • Objektin poistaminen
  • Objektin palauttaminen Glacierista

Nämä ilmoitukset voidaan lähettää useisiin AWS-palveluihin, kuten Lambda-funktioihin!

S3-triggerin määrittäminen

S3-triggerin määrittäminen Lambdalle tehdään S3-konsolin tai infrastruktuuri koodina -työkalujen kautta.

Määritätte seuraavat:

  • tapahtumatyypin (esimerkiksi ObjectCreated:Put).
  • kohteen (Lambda-funktionne).
  • Valinnaisen etuliitteen tai jälkiliitteen tapahtumien suodattamista varten (esimerkiksi käynnistys vain images/-kansiossa oleville tiedostoille tai .jpg-tiedostoille).

Lambda käsittelee S3-tapahtumia

Kun S3-tapahtuma tapahtuu, Lambda kutsuu funktiotanne ja välittää tapahtuman tiedot JSON-kuormana käsittelijällenne. Katsotaanpa Python-esimerkkiä.

import json

def lambda_handler(event, context):
    print("Received S3 event!")
    for record in event['Records']:
        bucket_name = record['s3']['bucket']['name']
        object_key = record['s3']['object']['key']
        event_name = record['eventName']

        print(f"Bucket: {bucket_name}")
        print(f"Object Key: {object_key}")
        print(f"Event Type: {event_name}")

        # In a real scenario, you'd download and process the object here
        # using the bucket_name and object_key
        print(f"Processing '{object_key}' from '{bucket_name}'...")

    return {
        'statusCode': 200,
        'body': json.dumps('S3 event processed successfully!')
    }

Tapahtumakuorman ymmärtäminen

Lambda-funktionne käsittelijälle välitetty event-objekti sisältää olennaisia tietoja S3-tapahtumasta.

  • Records: Luettelo, koska useita tapahtumia voidaan käsitellä eränä.
  • s3: Sisältää tietoja kyseessä olevasta säilöstä ja objektista.
  • bucket.name: S3-säilön nimi.
  • object.key: Tapahtuman käynnistäneen objektin täydellinen polku/avain.
  • eventName: Kuvaa tietyn S3-toiminnon (esimerkiksi ObjectCreated:Put).

Yleinen käyttötapaus: kuvien koon muuttaminen

Klassinen palvelimeton käyttötapaus on kuvankäsittely. Kuvitelkaa mobiilisovellus, jossa käyttäjät lataavat valokuvia:

  1. Käyttäjä lataa suuren tarkkuuden kuvan S3-säilöön.
  2. S3 käynnistää Lambda-funktion (esimerkiksi ObjectCreated:Put-tapahtuman).
  3. Lambda lataa kuvan ja muuttaa sen koon erikokoisiksi pikkukuviksi.
  4. Lambda lataa pikkukuvat toiseen S3-säilöön.

Tämä on erittäin skaalautuva ja kustannustehokas ratkaisu!

S3-tapahtumatriggerien tarkistus

Mitkä seuraavista väitteistä PITÄVÄT PAIKKANSA Lambdan S3-tapahtumailmoituksista?

Kertaus: S3-tapahtumat Lambdalle

Hienoa työtä! Olette oppineet, miten S3 toimii sekä tallennusratkaisuna että tehokkaana Lambdan tapahtumalähteenä.

  • S3 tallentaa objektit säilöihin ja tarjoaa hyvän kestävyyden sekä skaalautuvuuden.
  • S3-tapahtumailmoitusten avulla tietyt toiminnot, kuten objektin luominen tai poistaminen, voivat käynnistää Lambda-funktioita.
  • Lambda-funktiot vastaanottavat JSON-kuorman, joka sisältää tapahtuman metatiedot, ei koko objektia.
  • Tämä toimintamalli mahdollistaa tehokkaat palvelimettomat työnkulut, kuten kuvankäsittelyn ja tietojen muunnokset.
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 ”S3 tiedostotallennukseen ja tapahtumiin” ilmainen?

Kyllä – oppitunnin ”S3 tiedostotallennukseen ja tapahtumiin” 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 ”S3 tiedostotallennukseen ja tapahtumiin”?

Syvennätte ymmärrystänne Amazon S3:n käytöstä suurten objektien tallentamiseen ja hakemiseen sekä siitä, miten S3-tapahtumat voivat käynnistää Lambdan käsittelyä varten 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 2/4.

Kuinka kauan ”S3 tiedostotallennukseen ja tapahtumiin”-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. Integrointi DynamoDB:hen
  2. S3 tiedostotallennukseen ja tapahtumiin
  3. Sopivan datavaraston valitseminen
  4. Välimuisti Amazon ElastiCachen ja DAXin avulla
← Takaisin: Serverless-kehitys AWS Lambdalla