Serverlös backend med AWS Lambda & API Gateway · Lektion

Miljövariabler och lager

Hantera konfiguration och beroenden effektivt med miljövariabler och Lambda Layers för delad kod.

Lektion 2 av 411 steg

Miljövariabler och lager är en gratis lektion i Serverlös backend med AWS Lambda & API Gateway på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Serverlös backend med AWS Lambda & API Gateway, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Serverlös backend med AWS Lambda & API Gateway innehåller totalt 4 lektioner.

Konfigurera Lambda-funktioner

När ni bygger serverlösa applikationer behöver ni ofta konfigurera era Lambda-funktioner. Det omfattar inställningar som skiljer sig mellan utvecklings-, test- och produktionsmiljöer.

Tänk på anslutningssträngar till databaser, API-endpoints eller feature flags. Att hårdkoda dessa värden är en dålig praxis!

Vad är miljövariabler?

Miljövariabler är nyckel-värde-par som ni definierar för er Lambda-funktion. Funktionens kod kan sedan komma åt dessa variabler under körning.

  • De gör det enkelt att ändra funktionens beteende utan att ändra koden.
  • Varje funktion har en egen uppsättning miljövariabler.

Ange miljövariabler

Ni kan ange miljövariabler direkt i AWS Management Console när ni konfigurerar er Lambda-funktion. De kan också definieras med verktyg för Infrastructure as Code, till exempel AWS SAM eller CloudFormation.

Viktigt: Även om det är praktiskt bör ni undvika att lagra känslig information, till exempel databaslösenord, direkt i miljövariabler. Använd AWS Secrets Manager i stället!

Kom åt miljövariabler i Python

I Python kan ni komma åt miljövariabler med modulen os, specifikt os.environ.get(). Med den här metoden kan ni ange ett standardvärde om variabeln inte har definierats.

Prova att köra det här exemplet:

import os

def lambda_handler(event, context):
    # Get GREETING_MESSAGE env var, default to 'Hello'
    greeting = os.environ.get('GREETING_MESSAGE', 'Hello')
    
    # Get 'name' from the event, default to 'World'
    name = event.get('name', 'World') 
    
    message = f"{greeting}, {name}!"
    print(message)
    
    return {
        'statusCode': 200,
        'body': message
    }

# --- Local testing simulation ---
if __name__ == '__main__':
    # Simulate setting an environment variable locally
    os.environ['GREETING_MESSAGE'] = 'Hola'
    
    # Simulate a Lambda event
    test_event = {'name': 'CoddyKit User'}
    
    print("\nRunning lambda_handler locally...")
    result = lambda_handler(test_event, None)
    print(f"Local Lambda response: {result}")
    
    # Clean up simulated env var
    del os.environ['GREETING_MESSAGE']

Bästa praxis för miljövariabler

Genom att använda miljövariabler på ett genomtänkt sätt kan ni förbättra funktionens förvaltningsbarhet avsevärt:

  • Icke-känslig konfiguration: Använd dem för API-nycklar (för icke-kritiska tjänster), loggnivåer och feature flags.
  • Integration med Secrets Manager: För verkligt känsliga uppgifter (t.ex. databasautentiseringsuppgifter) lagrar ni dem i AWS Secrets Manager och hämtar dem under körning med funktionens IAM-roll.
  • Separata miljöer: Växla enkelt mellan konfigurationer för utveckling, staging och produktion.

Introduktion till Lambda Layers

När dina serverlösa applikationer växer kan du upptäcka att flera Lambda-funktioner behöver samma bibliotek, beroenden eller hjälpkod.

Lambda Layers löser detta genom att låta dig paketera och dela gemensamma komponenter mellan flera funktioner.

Fördelar med Lambda Layers

Layers erbjuder flera fördelar när du hanterar dina Lambda-funktioner:

  • Mindre distributionspaket: Funktionskoden innehåller bara din verksamhetslogik, inte stora bibliotek.
  • Återanvändning av kod: Dela gemensamma funktioner, hjälpmoduler eller SDK:er mellan många Lambda-funktioner.
  • Snabbare distributioner: Ladda bara upp den lilla funktionskoden, inte hela uppsättningar av beroenden.
  • Konsekventa beroenden: Säkerställ att alla funktioner använder samma version av ett bibliotek.

Så fungerar Lambda Layers

När du kopplar ett layer till en Lambda-funktion extraherar AWS dess innehåll till katalogen /opt i funktionens exekveringsmiljö.

Funktionskoden kan sedan importera moduler eller använda binärfiler från katalogen /opt som om de ingick i dess eget distributionspaket.

Använda ett delat layer (Python)

När ett layer har kopplats till kan din Python-funktion helt enkelt importera moduler från det. Om ditt layer till exempel innehåller my_utilities.py på sökvägen python/my_utilities.py kan du importera det precis som vilken annan modul som helst:

from my_utilities import format_message import json def lambda_handler(event, context): user_name = event.get('name', 'Guest') # Assuming format_message is in our layer response_message = format_message(user_name) return { 'statusCode': 200, 'body': json.dumps({'message': response_message}) }

Den här koden kan inte köras fristående eftersom layer inte definieras här, men den visar hur du importerar från det.

from my_utilities import format_message
import json

def lambda_handler(event, context):
    user_name = event.get('name', 'Guest')
    # Assuming format_message is in our layer
    response_message = format_message(user_name)
    
    return {
        'statusCode': 200,
        'body': json.dumps({'message': response_message})
    }

Snabbtest: miljövariabler och layers

Låt oss testa din förståelse av Lambdas miljövariabler och layers.

Sammanfattning: miljövariabler och layers

I den här lektionen lärde vi oss hur man effektivt hanterar konfigurationer och beroenden för Lambda-funktioner:

  • Miljövariabler: Nyckelvärdespar för icke-känslig konfiguration, som nås via os.environ i Python.
  • Lambda Layers: Mekanismer för att paketera och dela gemensam kod, bibliotek och beroenden mellan flera funktioner.
  • Layers leder till mindre distributionspaket, bättre återanvändning och snabbare distributioner.

Härnäst går vi igenom loggning och övervakning av dina Lambda-funktioner med CloudWatch!

Gratis att börja

Lär dig Serverlös backend med AWS Lambda & API Gateway 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 ”Miljövariabler och lager” gratis?

Ja – hela texten till ”Miljövariabler och lager” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Serverlös backend med AWS Lambda & API Gateway, kan Ni uppgradera till CoddyKit PRO. Kursen i Serverlös backend med AWS Lambda & API Gateway innehåller totalt 4 lektioner.

Vad lär jag mig i ”Miljövariabler och lager”?

Hantera konfiguration och beroenden effektivt med miljövariabler och Lambda Layers för delad kod. Ni övar på Serverlös backend med AWS Lambda & API Gateway 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 Serverlös backend med AWS Lambda & API Gateway?

Du behöver inga förkunskaper. Utbildningen i Serverlös backend med AWS Lambda & API Gateway 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 ”Miljövariabler och lager”?

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 Serverlös backend med AWS Lambda & API Gateway-lektionen?

Ja. Varje Serverlös backend med AWS Lambda & API Gateway-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

  1. Lambda-körmiljö och handler
  2. Miljövariabler och lager
  3. Loggning och övervakning med CloudWatch
  4. Felhantering, retries och dead-letter-köer
← Tillbaka till Serverlös backend med AWS Lambda & API Gateway