Opbygning af din første Lambda-funktion
Skriv og implementér en enkel Lambda-funktion, og konfigurér dens runtime, hukommelse og udførelsesrolle.
Opbygning af din første Lambda-funktion er en gratis AWS for backendudviklere (EC2, S3, RDS, Lambda)-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i AWS for backendudviklere (EC2, S3, RDS, Lambda), og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. AWS for backendudviklere (EC2, S3, RDS, Lambda)-kurset indeholder 4 lektioner i alt.
Din første Lambda-funktion
Det er tid til at bygge din første serverløse funktion! I denne lektion skriver vi en enkel AWS Lambda-funktion, der kører din kode uden at administrere servere.
Vi gennemgår dens grundlæggende struktur, hvordan du vælger et runtime-miljø, og vigtige konfigurationer som hukommelse og udførelsesroller. Gør dig klar til at implementere den!
Kernen: Din Lambda-handler
Alle Lambda-funktioner skal have en handler-funktion. Det er indgangspunktet, hvor AWS Lambda begynder at køre din kode. Den modtager typisk to argumenter:
event: Indeholder de data, der udløste kaldet.context: Indeholder oplysninger om kaldet, funktionen og udførelsesmiljøet.
Se handleren som metoden 'main' i din serverløse kode.
Vælg dit sprog: Lambda-runtime-miljøer
AWS Lambda understøtter mange programmeringssprog, som kaldes 'runtime-miljøer'. Du vælger det sprog, som din funktionskode er skrevet i. Runtime-miljøet bestemmer udførelsesmiljøet og hvordan din handler kaldes.
- Python: Velegnet til scripting, databehandling og maskinlæring.
- Node.js: Ideelt til realtidsapplikationer, API'er og mikrotjenester.
- Java: Velegnet til virksomhedsapplikationer, høj ydeevne og eksisterende JVM-økosystemer.
- Go, C#, Ruby, brugerdefinerede runtime-miljøer: Flere muligheder til forskellige behov og specifikke anvendelsesområder.
Hej Lambda: Et grundlæggende Python-eksempel
Lad os skrive en meget enkel Python-Lambda-funktion. Funktionen modtager et navn som input fra event og returnerer en hilsen. Prøv at køre den for at se outputtet!
import json
def lambda_handler(event, context):
# event is a dictionary containing invocation data
# context provides runtime info (e.g., function name, memory limit)
# We expect 'name' in the event payload
name = event.get('name', 'World')
message = f"Hello, {name}!"
# Lambda functions often return a dictionary, which AWS converts to JSON
return {
'statusCode': 200,
'body': json.dumps(message)
}
# --- Local Test Simulation ---
if __name__ == "__main__":
# Simulate an event payload
test_event = {"name": "CoddyKit User"}
# Simulate a dummy context object
class Context:
def __init__(self):
self.function_name = "my-test-function"
self.memory_limit_in_mb = 128
self.invoked_function_arn = "arn:aws:lambda:us-east-1:123456789012:function:my-test-function"
self.aws_request_id = "test-request-id-123"
test_context = Context()
# Call the handler
response = lambda_handler(test_event, test_context)
# Print the response for local verification
print(f"Status Code: {response['statusCode']}")
print(f"Body: {json.loads(response['body'])}")
# Test without a name
test_event_no_name = {}
response_no_name = lambda_handler(test_event_no_name, test_context)
print(f"\nStatus Code (no name): {response_no_name['statusCode']}")
print(f"Body (no name): {json.loads(response_no_name['body'])}")Din funktions input: Hændelsen
Objektet event er en Python-ordbog (eller et JSON-objekt i andre runtime-miljøer), der indeholder de data, som sendes til din funktion. Disse data kommer fra den tjeneste, der udløste din Lambda-funktion.
- Hvis den udløses af API Gateway: Den indeholder HTTP-metoden, headere og brødteksten.
- Hvis den udløses af S3: Den indeholder oplysninger om S3-bøtten og objektet.
- Hvis den kaldes direkte: Den indeholder den JSON-nyttelast, du sendte.
Din funktion behandler dette input for at udføre sin opgave.
Runtime-detaljer: Context
Objektet context indeholder oplysninger om kaldet, funktionen og udførelsesmiljøet. Det er nyttigt til logning og beslutninger under kørsel.
function_name: Navnet på din Lambda-funktion.aws_request_id: Et entydigt ID for kaldet.memory_limit_in_mb: Den hukommelse, der er tildelt funktionen.get_remaining_time_in_millis(): Hvor meget tid der er tilbage, før funktionen får timeout.
Du kan bruge dette til avanceret fejlhåndtering eller logning i din funktion.
Tilladelser med IAM-udførelsesroller
En Lambda-funktion skal have tilladelse til at kommunikere med andre AWS-tjenester. Det administreres med en IAM Role, som specifikt kaldes en "execution role".
- Rollen definerer, hvilke handlinger din Lambda kan udføre (f.eks. skrive logge til CloudWatch eller læse fra S3).
- Du knytter politikker til denne rolle for at angive tilladelserne.
- Uden de korrekte tilladelser mislykkes din funktion, når den forsøger at få adgang til andre AWS-ressourcer.
Følg altid princippet om mindst mulige privilegier, og tildel kun de nødvendige tilladelser.
Finjustering: Hukommelse og timeout
Når du opretter en Lambda-funktion, konfigurerer du flere indstillinger, der påvirker dens ydeevne og pris:
- Hukommelse: Definerer den tildelte RAM (f.eks. fra 128 MB til 10 GB). Mere hukommelse betyder ofte også mere CPU-kraft.
- Timeout: Den maksimale tid, din funktion må køre (f.eks. fra 3 sekunder til 15 minutter). Hvis den overskrider denne tid, stopper Lambda den.
- Miljøvariabler: Nøgle-værdi-par, som din kode kan få adgang til, og som er velegnede til konfiguration uden ændringer af koden.
Det er afgørende for effektivitet og omkostningsoptimering at vælge passende indstillinger.
Gør din funktion tilgængelig
Når din kode er klar, implementerer du den i AWS Lambda. Her er en oversigt på højt niveau:
- Pak din kode: Zip din kode og alle afhængigheder i en implementeringspakke.
- Upload: Brug AWS Console, AWS CLI eller et Infrastructure as Code-værktøj (IaC) som AWS SAM eller CloudFormation.
- Test: Kald din funktion direkte fra Lambda-konsollen med testhændelser, eller udløs den via en integreret tjeneste som API Gateway eller S3.
Konsollen giver dig en hurtig måde at komme i gang på og teste din funktion med det samme.
Hurtigt tjek: Lambda-handleren
Overvej den grundlæggende struktur for en Python-Lambda-handler:
def lambda_handler(event, context):
# ... your code ...
return responseHvad er det primære formål med parameteren event?
Opsamling: Dit første serverløse skridt
Godt gået! Du har lært det grundlæggende i at bygge en Lambda-funktion:
- Alle Lambda-funktioner har en handler-funktion som indgangspunkt.
- Du vælger et runtime-miljø (f.eks. Python) til din kode.
- Objektet
eventindeholder inputdata, ogcontextindeholder oplysninger om runtime-miljøet. - En IAM-udførelsesrolle giver din funktion de nødvendige tilladelser.
- Du konfigurerer indstillinger som hukommelse og timeout for at optimere ydeevne og pris.
Dette er dit grundlag for at bygge effektive serverløse applikationer!
Lær AWS for backendudviklere (EC2, S3, RDS, 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 “Opbygning af din første Lambda-funktion” gratis?
Ja — alle 3 lektioner i læringssporet AWS for backendudviklere (EC2, S3, RDS, Lambda), inklusive “Opbygning af din første Lambda-funktion”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. AWS for backendudviklere (EC2, S3, RDS, Lambda)-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Opbygning af din første Lambda-funktion”?
Skriv og implementér en enkel Lambda-funktion, og konfigurér dens runtime, hukommelse og udførelsesrolle. Du øver dig i AWS for backendudviklere (EC2, S3, RDS, 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å AWS for backendudviklere (EC2, S3, RDS, Lambda)?
Der kræves ingen tidligere erfaring. AWS for backendudviklere (EC2, S3, RDS, 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 “Opbygning af din første Lambda-funktion”?
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 AWS for backendudviklere (EC2, S3, RDS, Lambda)-lektion?
Ja. Alle AWS for backendudviklere (EC2, S3, RDS, 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
- Hvad er AWS Lambda?
- Opbygning af din første Lambda-funktion
- Lambda-triggere og integrationer
- Overvågning og fejlfinding af Lambda-funktioner