Bygg er första Lambda-funktion
Skriv och driftsätt en enkel Lambda-funktion genom att konfigurera dess runtime, minne och exekveringsroll.
Bygg er första Lambda-funktion är en gratis lektion i AWS för backendutvecklare (EC2, S3, RDS, Lambda) på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för AWS för backendutvecklare (EC2, S3, RDS, Lambda), och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i AWS för backendutvecklare (EC2, S3, RDS, Lambda) innehåller totalt 4 lektioner.
Din första Lambda-funktion
Dags att bygga er första serverless-funktion! I den här lektionen skriver vi en enkel AWS Lambda-funktion som kör er kod utan att ni behöver hantera servrar.
Vi går igenom dess grundläggande struktur, hur ni väljer en runtime och viktiga konfigurationer som minne och exekveringsroller. Gör er redo att distribuera!
Kärnan: er Lambda-handler
Varje Lambda-funktion behöver en ”handler”-funktion. Det här är startpunkten där AWS Lambda börjar köra er kod. Den tar vanligtvis emot två argument:
event: Innehåller de data som utlöste anropet.context: Tillhandahåller runtime-information om anropet, funktionen och exekveringsmiljön.
Tänk på handlern som metoden ”main” för er serverless-kod.
Välj språk: Lambda-runtimes
AWS Lambda stöder många programmeringsspråk som kallas ”runtimes”. Ni väljer det språk som funktionskoden är skriven i. Runtimen avgör exekveringsmiljön och hur er handler anropas.
- Python: Utmärkt för skript, databearbetning och maskininlärning.
- Node.js: Ideal för realtidsapplikationer, API:er och mikrotjänster.
- Java: Bra för företagsapplikationer, hög prestanda och befintliga JVM-ekosystem.
- Go, C#, Ruby, Custom Runtimes: Fler alternativ för varierande behov och specifika användningsområden.
Hej Lambda: ett enkelt Python-exempel
Vi skriver en mycket enkel Python Lambda-funktion. Funktionen tar emot ett namn från event och returnerar en hälsning. Prova att köra den för att se resultatet!
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'])}")Funktionens indata: event
Objektet event är en Python-ordbok (eller ett JSON-objekt i andra runtimes) som innehåller de data som skickats till funktionen. Dessa data kommer från tjänsten som utlöste er Lambda.
- Om den utlöses av API Gateway: Den innehåller HTTP-metod, headers och body.
- Om den utlöses av S3: Den innehåller information om S3-bucketen och objektet.
- Om den anropas direkt: Den innehåller valfri JSON-payload som ni skickade.
Er funktion bearbetar dessa indata för att utföra sin uppgift.
Runtime-detaljer: context
Objektet context innehåller information om anropet, funktionen och exekveringsmiljön. Det är användbart för loggning och beslut under körning.
function_name: Namnet på er Lambda-funktion.aws_request_id: Ett unikt ID för anropet.memory_limit_in_mb: Det minne som tilldelats funktionen.get_remaining_time_in_millis(): Hur mycket tid som återstår innan funktionen får timeout.
Ni kan använda detta för avancerad felhantering eller loggning i funktionen.
Behörigheter med IAM-exekveringsroller
En Lambda-funktion behöver behörighet för att interagera med andra AWS-tjänster. Detta hanteras av en IAM Role, som specifikt kallas ”execution role”.
- Rollen definierar vilka åtgärder er Lambda får utföra (till exempel skriva loggar till CloudWatch och läsa från S3).
- Ni kopplar policyer till rollen och anger på så sätt behörigheterna.
- Utan rätt behörigheter misslyckas funktionen när den försöker komma åt andra AWS-resurser.
Följ alltid principen om minsta privilegium och bevilja endast de behörigheter som behövs.
Finjustering: minne och timeout
När ni skapar en Lambda-funktion konfigurerar ni flera inställningar som påverkar prestanda och kostnad:
- Memory: Anger mängden tilldelat RAM-minne (till exempel 128 MB till 10 GB). Mer minne innebär ofta även större CPU-kapacitet.
- Timeout: Den längsta tid som funktionen får köras (till exempel 3 sekunder till 15 minuter). Om tiden överskrids stoppar Lambda funktionen.
- Environment Variables: Nyckel-värde-par som kan nås av koden och passar bra för konfiguration utan kodändringar.
Det är viktigt att välja lämpliga inställningar för effektivitet och kostnadsoptimering.
Gör funktionen tillgänglig
När koden är klar distribuerar ni den till AWS Lambda. Här är en översikt på hög nivå:
- Paketera koden: Zippa koden och eventuella beroenden till ett distributionspaket.
- Ladda upp: Använd AWS Console, AWS CLI eller ett Infrastructure as Code-verktyg (IaC) som AWS SAM eller CloudFormation.
- Testa: Anropa funktionen direkt från Lambda-konsolen med testhändelser eller utlös den via en integrerad tjänst som API Gateway eller S3.
Konsolen ger ett snabbt sätt att komma igång och testa funktionen direkt.
Snabb kontroll: Lambda-handler
Fundera på den grundläggande strukturen för en Python Lambda-handler:
def lambda_handler(event, context):
# ... your code ...
return responseVad är det huvudsakliga syftet med parametern event?
Sammanfattning: ert första serverless-steg
Bra jobbat! Ni har lärt er grunderna i att bygga en Lambda-funktion:
- Varje Lambda behöver en handler-funktion som startpunkt.
- Ni väljer en runtime (till exempel Python) för koden.
- Objektet
eventinnehåller indata, ochcontexttillhandahåller runtime-information. - En IAM execution role ger funktionen nödvändiga behörigheter.
- Ni konfigurerar inställningar som minne och timeout för prestanda och kostnad.
Det här är grunden för att bygga kraftfulla serverless-applikationer!
Lär dig AWS för backendutvecklare (EC2, S3, RDS, Lambda) med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Bygg er första Lambda-funktion” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen AWS för backendutvecklare (EC2, S3, RDS, Lambda), inklusive ”Bygg er första Lambda-funktion”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i AWS för backendutvecklare (EC2, S3, RDS, Lambda) innehåller totalt 4 lektioner.
Vad lär jag mig i ”Bygg er första Lambda-funktion”?
Skriv och driftsätt en enkel Lambda-funktion genom att konfigurera dess runtime, minne och exekveringsroll. Ni övar på AWS för backendutvecklare (EC2, S3, RDS, Lambda) med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig AWS för backendutvecklare (EC2, S3, RDS, Lambda)?
Du behöver inga förkunskaper. Utbildningen i AWS för backendutvecklare (EC2, S3, RDS, Lambda) på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Bygg er första Lambda-funktion”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här AWS för backendutvecklare (EC2, S3, RDS, Lambda)-lektionen?
Ja. Varje AWS för backendutvecklare (EC2, S3, RDS, Lambda)-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Vad är AWS Lambda?
- Bygg er första Lambda-funktion
- Lambda-triggers och integrationer
- Övervaka och felsöka Lambda-funktioner