Lambda-lager och miljövariabler
Effektivisera koddistribution och -hantering genom att använda Lambda Layers för beroenden och miljövariabler för konfiguration.
Lambda-lager och miljövariabler ä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.
Vad är Lambda Layers?
AWS Lambda Layers hjälper dig att hantera gemensamma beroenden och anpassade körningsmiljöer mer effektivt. Se dem som delade bibliotek för dina funktioner.
I stället för att paketera all kod och alla beroenden med varje funktionsdistribution kan du paketera återanvändbara komponenter i en Layer.
Varför använda Lambda Layers?
Layers erbjuder flera fördelar för dina serverlösa tillämpningar:
- Mindre distributionspaket: Håll funktionskoden kompakt genom att separera beroenden.
- Återanvändning av kod: Dela gemensam kod (till exempel hjälpfunktioner och databasanslutningar) mellan flera Lambda-funktioner.
- Snabbare distributioner: Mindre paket laddas upp snabbare.
- Enklare uppdateringar: Uppdatera ett beroende en gång i en layer, så får alla funktioner som använder den nytta av uppdateringen.
Så är Layers strukturerade
En Lambda Layer är i grunden ett .zip-arkiv som innehåller bibliotekskod, anpassade körningsmiljöer eller andra beroenden.
När du kopplar en layer till en funktion extraherar Lambda dess innehåll till katalogen /opt i funktionens körningsmiljö. Funktionskoden kan sedan importera moduler från /opt.
Föreställ dig en enkel Layer
Anta att du har ett gemensamt loggningsverktyg eller en specifik SDK-version som du vill använda. I stället för att inkludera det i distributionspaketet för varje Lambda-funktion placerar du det i en layer.
ZIP-filens struktur för Python kan exempelvis se ut så här:
python/mylogger.pyDin Lambda-funktion importerar det sedan helt enkelt med import mylogger.
Koppla en Layer till Lambda
Du kan koppla upp till fem layers till en enda Lambda-funktion. Detta görs vanligtvis via AWS Management Console, AWS CLI eller verktyg för Infrastructure as Code, till exempel SAM eller CloudFormation.
När du kopplar en layer anger du dess Layer ARN (Amazon Resource Name), som unikt identifierar layern och dess specifika version.
Layer-demonstration: Delat verktyg
Föreställ dig att vi har en layer som innehåller utils.py med funktionen greet. Så här skulle en Lambda-funktion använda den. (I den här körbara demonstrationen simulerar vi att layern finns):
import json
# In a real Lambda, 'utils' would be imported
# from a layer mounted at /opt/python/utils.py
# For this demo, we simulate the 'utils' module.
class Utils:
@staticmethod
def greet(name):
return f"Hello, {name} from Layer!"
utils = Utils() # Make it available as 'utils'
def lambda_handler(event, context):
name = event.get('name', 'World')
message = utils.greet(name)
return {
'statusCode': 200,
'body': json.dumps(message)
}
if __name__ == "__main__":
# Simulate a test event
test_event = {'name': 'Coddy'}
result = lambda_handler(test_event, None)
print(result['body'])
test_event_default = {}
result_default = lambda_handler(test_event_default, None)
print(result_default['body'])Vad är miljövariabler?
Miljövariabler låter dig skicka konfigurationsinställningar till din Lambda-funktion utan att ändra den underliggande koden.
De är nyckel-värde-par som är tillgängliga för funktionskoden under körning. Detta passar bra för inställningar som varierar mellan miljöer (till exempel utveckling, test och produktion) eller för icke-känsliga konfigurationsdata.
Ange miljövariabler i Lambda
Du kan definiera miljövariabler när du skapar eller uppdaterar din Lambda-funktion. Detta görs vanligtvis via:
- AWS Management Console: Under funktionens flik "Configuration" och sedan "Environment variables".
- AWS CLI: Med parametern
--environment "Variables={KEY=VALUE}". - Infrastructure as Code: Till exempel i en SAM-mall, under funktionens avsnitt
Environment: Variables:.
Viktigt: För mycket känsliga data, som databaslösenord eller API-nycklar, ska du alltid använda AWS Secrets Manager i stället för miljövariabler.
Demonstration av miljövariabler: Konfiguration
Anta att du har en miljövariabel med namnet GREETING_PREFIX som har värdet "Welcome". Din Lambda-funktion kan enkelt komma åt värdet med modulen os i Python:
import os
import json
def lambda_handler(event, context):
# Access environment variables
# os.environ.get('KEY', 'default_value')
prefix = os.environ.get('GREETING_PREFIX', 'Hello')
name = event.get('name', 'User')
message = f"{prefix}, {name}!"
return {
'statusCode': 200,
'body': json.dumps(message)
}
if __name__ == "__main__":
# Simulate setting an environment variable locally
os.environ['GREETING_PREFIX'] = 'Hola'
test_event = {'name': 'Amigo'}
result = lambda_handler(test_event, None)
print(result['body'])
# Clean up and test default behavior
del os.environ['GREETING_PREFIX']
test_event_default = {'name': 'World'}
result_default = lambda_handler(test_event_default, None)
print(result_default['body'])Testa dina kunskaper
Vilka av följande är giltiga skäl att använda AWS Lambda Layers?
Sammanfattning: Layers och miljövariabler
I dag har du lärt dig om två kraftfulla verktyg för att hantera dina Lambda-funktioner mer effektivt:
- Lambda Layers: Används för att paketera delad kod, bibliotek och beroenden, vilket minskar distributionspaketens storlek och främjar återanvändning av kod mellan funktioner.
- Miljövariabler: Används för att skicka konfigurationsinställningar till funktionen under körning, vilket gör koden mer flexibel och enklare att hantera i olika distributionsmiljöer.
Genom att behärska dessa funktioner kan du bygga mer välorganiserade, effektiva och underhållbara serverlösa tillämpningar!
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 ”Lambda-lager och miljövariabler” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen AWS för backendutvecklare (EC2, S3, RDS, Lambda), inklusive ”Lambda-lager och miljövariabler”, 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 ”Lambda-lager och miljövariabler”?
Effektivisera koddistribution och -hantering genom att använda Lambda Layers för beroenden och miljövariabler för konfiguration. 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 ”Lambda-lager och miljövariabler”?
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
- Asynkrona Lambda-anrop
- Lambda-lager och miljövariabler
- API Gateway för Lambda-endpoints
- Step Functions för orkestrering av Lambda