Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo dei livelli per le funzioni Lambda in Python
Usa i livelli Lambda per impacchettare codice e dipendenze che desideri riutilizzare in più funzioni. I livelli di solito contengono dipendenze dalla libreria, un runtime personalizzato o file di configurazione. La creazione di un livello prevede tre passaggi generali:
-
Crea un pacchetto per il contenuto del livello. Ciò significa creare un archivio di file con estensione .zip che contiene le dipendenze che desideri utilizzare nelle funzioni.
-
Crea il livello in Lambda.
-
Aggiungi il livello alle tue funzioni.
Argomenti
Crea un pacchetto per il contenuto del livello
Per creare un layer, raggruppa i pacchetti in un archivio di file .zip che soddisfi i seguenti requisiti:
-
Crea il livello utilizzando la stessa versione di Python che intendi utilizzare per la funzione Lambda. Ad esempio, se crei il tuo layer usando Python 3.14, usa il runtime Python 3.14 per la tua funzione.
-
Il file .zip deve includere una
pythondirectory al livello principale. -
I pacchetti del livello devono essere compatibili con Linux. Le funzioni Lambda vengono eseguite su Amazon Linux.
Puoi creare livelli che contengono librerie Python di terze parti installate con pip (come requests orpandas) o moduli e pacchetti Python personalizzati.
Per creare un livello usando i pacchetti pip
-
Scegliete uno dei seguenti metodi per installare
pipi pacchetti nella directory di primo livello richiesta ()python/: -
Comprimi il contenuto della directory.
pythonLa struttura delle cartelle del tuo file .zip dovrebbe essere la seguente:
python/# Required top-level directory └── requests/ └── boto3/ └── numpy/ └── (dependencies of the other packages)Nota
Se si utilizza un ambiente virtuale Python (venv) per installare i pacchetti, la struttura delle cartelle è diversa (ad esempio,).
python/lib/python3.Se il file .zip include lax/site-packagespythondirectory a livello principale, Lambda può localizzare e importare i pacchetti.
Per creare un livello usando il tuo codice
-
Crea la directory di primo livello richiesta per il tuo layer:
mkdir python -
Crea i tuoi moduli Python nella
pythondirectory. Il seguente modulo di esempio convalida gli ordini confermando che contengano le informazioni richieste.Esempio modulo personalizzato: validator.py
import json def validate_order(order_data): """Validates an order and returns formatted data.""" required_fields = ['product_id', 'quantity'] # Check required fields missing_fields = [field for field in required_fields if field not in order_data] if missing_fields: raise ValueError(f"Missing required fields: {', '.join(missing_fields)}") # Validate quantity quantity = order_data['quantity'] if not isinstance(quantity, int) or quantity < 1: raise ValueError("Quantity must be a positive integer") # Format and return the validated data return { 'product_id': str(order_data['product_id']), 'quantity': quantity, 'shipping_priority': order_data.get('priority', 'standard') } def format_response(status_code, body): """Formats the API response.""" return { 'statusCode': status_code, 'body': json.dumps(body) } -
Comprimi il contenuto della
pythoncartella.La struttura delle cartelle del tuo file .zip dovrebbe essere la seguente:
python/# Required top-level directory └── validator.py -
Nella tua funzione, importa e usa i moduli come faresti con qualsiasi pacchetto Python. Esempio:
from validator import validate_order, format_responseimport json def lambda_handler(event, context): try: # Parse the order data from the event body order_data = json.loads(event.get('body', '{}')) # Validate and format the order validated_order = validate_order(order_data) return format_response(200, { 'message': 'Order validated successfully', 'order': validated_order }) except ValueError as e: return format_response(400, { 'error': str(e) }) except Exception as e: return format_response(500, { 'error': 'Internal server error' })È possibile utilizzare il seguente evento di test per richiamare la funzione:
{ "body": "{\"product_id\": \"ABC123\", \"quantity\": 2, \"priority\": \"express\"}" }Risposta prevista:
{ "statusCode": 200, "body": "{\"message\": \"Order validated successfully\", \"order\": {\"product_id\": \"ABC123\", \"quantity\": 2, \"shipping_priority\": \"express\"}}" }
Crea il livello in Lambda
Puoi pubblicare il tuo layer utilizzando la console AWS CLI o Lambda.
Aggiungi il livello alla tua funzione
App di esempio
Per altri esempi su come utilizzare i livelli Lambda, consulta l'applicazione di esempio