Miljøvariabler og Layers
Håndtér konfiguration og afhængigheder effektivt ved hjælp af miljøvariabler og Lambda Layers til delt kode.
Miljøvariabler og Layers er en gratis Serverløs backend med AWS Lambda og API Gateway-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 backend med AWS Lambda og API Gateway, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Serverløs backend med AWS Lambda og API Gateway-kurset indeholder 4 lektioner i alt.
Konfiguration af Lambda-funktioner
Når du opbygger serverløse applikationer, har du ofte brug for at konfigurere dine Lambda-funktioner. Det omfatter indstillinger, der ændres mellem udviklings-, test- og produktionsmiljøer.
Tænk på forbindelsesstrenge til databaser, API-slutpunkter eller funktionsflag. Det er dårlig praksis at hardkode disse værdier!
Hvad er miljøvariabler?
Miljøvariabler er nøgle-værdi-par, som du definerer for din Lambda-funktion. Din funktions kode kan derefter få adgang til disse variabler under kørsel.
- De gør det nemt at ændre funktionens adfærd uden at ændre dens kode.
- Hver funktion har sit eget sæt miljøvariabler.
Angivelse af miljøvariabler
Du kan angive miljøvariabler direkte i AWS Management Console, når du konfigurerer din Lambda-funktion. De kan også defineres ved hjælp af værktøjer til Infrastructure as Code som AWS SAM eller CloudFormation.
Vigtigt: Selvom det er praktisk, bør du undgå at gemme følsomme oplysninger som databaseadgangskoder direkte i miljøvariabler. Brug AWS Secrets Manager til det!
Adgang til miljøvariabler i Python
I Python kan du få adgang til miljøvariabler ved hjælp af modulet os, specifikt os.environ.get(). Denne metode gør det muligt at angive en standardværdi, hvis variablen ikke er angivet.
Prøv at køre dette eksempel:
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']
Bedste praksis for miljøvariabler
Hvis du bruger miljøvariabler fornuftigt, kan det gøre din funktion meget nemmere at vedligeholde:
- Ikke-følsom konfiguration: Brug dem til API-nøgler (til ikke-kritiske tjenester), logningsniveauer og funktionsflag.
- Integration med Secrets Manager: Gem virkelig følsomme data (f.eks. databaselegitimationsoplysninger) i AWS Secrets Manager, og hent dem under kørsel ved hjælp af din funktions IAM-rolle.
- Adskilte miljøer: Skift nemt konfiguration mellem udvikling, staging og produktion.
Introduktion til Lambda-lag
Efterhånden som dine serverløse applikationer vokser, vil du måske opdage, at flere Lambda-funktioner har brug for de samme biblioteker, afhængigheder eller hjælpefunktioner.
Lambda Layers løser dette ved at give dig mulighed for at pakke og dele fælles komponenter på tværs af flere funktioner.
Fordele ved Lambda Layers
Layers giver flere fordele, når du administrerer dine Lambda-funktioner:
- Mindre udrulningspakker: Din funktionskode indeholder kun din forretningslogik og ikke store biblioteker.
- Genbrug af kode: Del fælles funktioner, hjælpe-moduler eller SDK'er på tværs af mange Lambda-funktioner.
- Hurtigere udrulninger: Upload kun din lille funktionskode i stedet for alle afhængighedssæt.
- Ensartede afhængigheder: Sørg for, at alle funktioner bruger den samme version af et bibliotek.
Sådan fungerer Lambda Layers
Når du knytter et layer til en Lambda-funktion, udpakker AWS dets indhold i mappen /opt i funktionens kørselmiljø.
Din funktionskode kan derefter importere moduler eller bruge binære filer fra mappen /opt, som om de var en del af dens egen udrulningspakke.
Brug af et delt layer (Python)
Når et layer er knyttet til funktionen, kan din Python-funktion blot importere moduler fra det. Hvis dit layer for eksempel indeholder my_utilities.py på python/my_utilities.py, kan du importere det som ethvert andet modul:
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})
}
Denne kode kan ikke køre selvstændigt, fordi layeret ikke er defineret her, men den viser, hvordan du importerer fra 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})
}
Hurtigt tjek: Miljøvariabler og layers
Lad os teste din forståelse af Lambdas miljøvariabler og layers.
Opsamling: Miljøvariabler og layers
I denne lektion lærte du, hvordan du effektivt administrerer Lambda-funktioners konfiguration og afhængigheder:
- Miljøvariabler: Nøgleværdi-par til ikke-følsom konfiguration, som tilgås via
os.environi Python. - Lambda Layers: Mekanismer til at pakke og dele fælles kode, biblioteker og afhængigheder på tværs af flere funktioner.
- Layers giver mindre udrulningspakker, bedre genbrug og hurtigere udrulninger.
Nu skal du se nærmere på logning og overvågning af dine Lambda-funktioner med CloudWatch!
Lær Serverløs backend med AWS Lambda og API Gateway 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 “Miljøvariabler og Layers” gratis?
Ja — hele teksten til “Miljøvariabler og Layers” 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 backend med AWS Lambda og API Gateway-kurset, skal du opgradere til CoddyKit PRO. Serverløs backend med AWS Lambda og API Gateway-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Miljøvariabler og Layers”?
Håndtér konfiguration og afhængigheder effektivt ved hjælp af miljøvariabler og Lambda Layers til delt kode. Du øver dig i Serverløs backend med AWS Lambda og API Gateway 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 backend med AWS Lambda og API Gateway?
Der kræves ingen tidligere erfaring. Serverløs backend med AWS Lambda og API Gateway 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 “Miljøvariabler og Layers”?
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 backend med AWS Lambda og API Gateway-lektion?
Ja. Alle Serverløs backend med AWS Lambda og API Gateway-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
- Lambda-runtime og handler
- Miljøvariabler og Layers
- Logning og overvågning med CloudWatch
- Fejlhåndtering, retries og dead-letter queues