S3 til fillagring og hændelser
Gå i dybden med brugen af Amazon S3 til lagring og hentning af store objekter, og lær, hvordan S3-hændelser kan udløse Lambda til behandling.
S3 til fillagring og hændelser er en gratis Serverløs udvikling med AWS Lambda-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Serverløs udvikling med AWS Lambda, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Serverløs udvikling med AWS Lambda-kurset indeholder 4 lektioner i alt.
S3 og Lambda: Hændelser i aktion
Velkommen! I denne lektion ser vi nærmere på, hvordan Amazon S3, en effektiv lagringstjeneste, arbejder sammen med AWS Lambda.
Du lærer at gemme og hente filer og ikke mindst, hvordan S3 automatisk kan udløse dine Lambda-funktioner, når der sker noget med dine data.
Amazon S3: Cloud-lagring
Amazon S3 (Simple Storage Service) er en meget skalerbar, robust og tilgængelig objektdatalagringstjeneste.
- Den gemmer data som objekter i spande.
- Objekter er filer (billeder, videoer, dokumenter) og deres metadata.
- Spande fungerer som mapper på øverste niveau og har globalt entydige navne.
- S3 er perfekt til lagring af store mængder ustrukturerede data.
Lagring af objekter i S3
Du kan nemt lægge objekter i en S3-spand. Hvert objekt har en nøgle, som er dets entydige identifikator i spanden.
- Konsol: Upload filer direkte via AWS Management Console.
- CLI: Brug AWS Command Line Interface til scriptbaserede uploads.
- SDK'er: Upload programmatisk fra din applikation ved hjælp af AWS SDK'er (f.eks. Python Boto3 og Node.js SDK).
Hentning af objekter fra S3
Det er lige så enkelt at hente dine data fra S3. Du angiver spandens navn og objektets nøgle.
S3 tilbyder også funktioner som versionering, så du kan bevare flere versioner af et objekt, samt forhåndssignerede URL'er til midlertidig, sikker adgang til private objekter.
Hændelsesnotifikationer i S3
En af S3's mest effektive funktioner til serverløs drift er hændelsesnotifikationer. S3 kan give dig besked, når bestemte hændelser finder sted i dine spande.
Disse hændelser omfatter:
- Oprettelse af objekt (PUT, POST, COPY)
- Sletning af objekt
- Gendannelse af objekt fra Glacier
Disse notifikationer kan sendes til forskellige AWS-tjenester, herunder Lambda-funktioner!
Konfigurer en S3-udløser
Du konfigurerer en S3-udløser til Lambda via S3-konsollen eller værktøjer til infrastruktur som kode.
Du angiver:
- Hændelsestypen (f.eks.
ObjectCreated:Put). - Destinationen (din Lambda-funktion).
- Et valgfrit præfiks eller suffiks til filtrering af hændelser (f.eks. kun udløsning for filer i mappen
images/eller.jpg-filer).
Lambda-behandling af S3-hændelser
Når der opstår en S3-hændelse, aktiverer Lambda din funktion og sender oplysningerne om hændelsen som en JSON-nyttelast til din handler. Lad os se et eksempel i Python.
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!')
}Forstå hændelsesnyttelasten
event-objektet, som sendes til din Lambda-funktions handler, indeholder vigtige oplysninger om S3-hændelsen.
Records: En liste, fordi flere hændelser kan samles i en batch.s3: Indeholder oplysninger om den involverede spand og det involverede objekt.bucket.name: Navnet på S3-spanden.object.key: Objektets fulde sti/nøgle, som udløste hændelsen.eventName: Beskriver den specifikke S3-handling (f.eks.ObjectCreated:Put).
Almindeligt anvendelsestilfælde: Ændring af billedstørrelse
Et klassisk serverløst mønster er billedbehandling. Forestil dig en mobilapp, hvor brugerne uploader billeder:
- Brugeren uploader et billede i høj opløsning til en S3-spand.
- S3 aktiverer en Lambda-funktion (f.eks. hændelsen
ObjectCreated:Put). - Lambda downloader billedet og ændrer størrelsen til forskellige miniaturebilleder.
- Lambda uploader miniaturebillederne til en anden S3-spand.
Det er meget skalerbart og omkostningseffektivt!
Kontrol af S3-hændelsesudløsere
Hvilke af følgende udsagn er SANDE om S3-hændelsesnotifikationer til Lambda?
Opsummering: S3-hændelser til Lambda
Godt klaret! Du har lært, hvordan S3 både fungerer som lagringsløsning og som en effektiv hændelseskilde til Lambda.
- S3 gemmer objekter i spande og tilbyder høj robusthed og skalerbarhed.
- S3-hændelsesnotifikationer gør det muligt at lade bestemte handlinger (f.eks. oprettelse eller sletning af objekter) aktivere Lambda-funktioner.
- Lambda-funktioner modtager en JSON-nyttelast med hændelsesmetadata, ikke hele objektet.
- Dette mønster muliggør effektive serverløse arbejdsgange som billedbehandling og datatransformationer.
Lær Serverløs udvikling med AWS Lambda med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “S3 til fillagring og hændelser” gratis?
Ja — hele teksten til “S3 til fillagring og hændelser” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Serverløs udvikling med AWS Lambda-kurset, skal du opgradere til CoddyKit PRO. Serverløs udvikling med AWS Lambda-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “S3 til fillagring og hændelser”?
Gå i dybden med brugen af Amazon S3 til lagring og hentning af store objekter, og lær, hvordan S3-hændelser kan udløse Lambda til behandling. Du øver dig i Serverløs udvikling med AWS Lambda med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Serverløs udvikling med AWS Lambda?
Der kræves ingen tidligere erfaring. Serverløs udvikling med AWS Lambda på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “S3 til fillagring og hændelser”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Serverløs udvikling med AWS Lambda-lektion?
Ja. Alle Serverløs udvikling med AWS Lambda-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Integration med DynamoDB
- S3 til fillagring og hændelser
- Valg af det rette datalager
- Caching med Amazon ElastiCache og DAX