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à.
Compilazione di funzioni Lambda con Python
Puoi eseguire il codice Python in AWS Lambda. Lambda fornisce Runtime per Python che eseguono il tuo codice per elaborare gli eventi. Il codice viene eseguito in un ambiente che include SDK for Python (Boto3), con le credenziali di un ruolo AWS Identity and Access Management (IAM) che gestisci. Per saperne di più sulle SDK versioni incluse nei runtime di Python, consulta. Versioni incluse in runtime SDK
Lambda supporta i seguenti runtime di Python.
Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Nome | Identificatore | Sistema operativo | Data di ritiro | Blocco creazione funzioni | Blocco aggiornamento funzioni | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.12 |
|
Amazon Linux 2023 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.11 |
|
Amazon Linux 2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.10 |
|
Amazon Linux 2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.9 |
|
Amazon Linux 2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.8 |
|
Amazon Linux 2 |
14 ottobre 2024 |
28 febbraio 2025 |
31 marzo 2025 |
Per creare una funzione Python
-
Aprire la console Lambda
. -
Scegli Crea funzione.
-
Configurare le impostazioni seguenti:
-
Nome della funzione: inserisci il nome della funzione.
-
Runtime: scegli Python 3.12.
-
-
Scegli Crea funzione.
-
Per configurare un evento di test scegliere Test.
-
Per Event name (Nome evento) immettere
test
. -
Scegli Save changes (Salva modifiche).
-
Per invocare la funzione, scegliere Test (Testa).
La console crea una funzione Lambda con un singolo file di origine denominato lambda_function
. È possibile modificare questo file e aggiungere altri file nell'editor di codice predefinito. Per salvare le modifiche, scegliere Save (Salva). Quindi, per eseguire il codice, scegliere Test (Testa).
La funzione Lambda include un gruppo di CloudWatch log Logs. Il runtime della funzione invia i dettagli su ogni chiamata a Logs. CloudWatch Si trasmette qualsiasi log che la tua funzione emette durante la chiamata. Se la funzione restituisce un errore, Lambda formatta l'errore e lo restituisce al chiamante.
Argomenti
- Versioni incluse in runtime SDK
- Formato della risposta
- Chiusura graduale per le estensioni
- Definisci il gestore di funzioni Lambda in Python
- Utilizzo di archivi di file .zip per le funzioni Lambda in Python
- Distribuisci funzioni Lambda per Python con immagini di container
- Lavorare con i livelli per le funzioni Python Lambda
- Utilizzo dell'oggetto contestuale Lambda per recuperare le informazioni sulla funzione Python
- Registra e monitora le funzioni Lambda di Python
- Test delle funzioni AWS Lambda in Python
- Strumentazione del codice Python in AWS Lambda
Versioni incluse in runtime SDK
La versione AWS SDK inclusa nel runtime di Python dipende dalla versione di runtime e dalla tua. Regione AWS Per trovare la versione SDK inclusa nel runtime che stai utilizzando, crea una funzione Lambda con il codice seguente.
import boto3 import botocore def lambda_handler(event, context): print(f'boto3 version: {boto3.__version__}') print(f'botocore version: {botocore.__version__}')
Formato della risposta
Nei runtime Python 3.12 e successivi, le funzioni restituiscono caratteri Unicode come parte della loro risposta. JSON I runtime Python precedenti restituivano sequenze con escape per i caratteri Unicode nelle risposte. Ad esempio, in Python 3.11, se restituisci una stringa Unicode come "こんにちは", viene eseguito l'escape dei caratteri Unicode e restituito il valore "\u3053\u3093\u306b\u3061\u306f". Il runtime Python 3.12 restituisce il valore "こんにちは" originale.
L'utilizzo delle risposte Unicode riduce le dimensioni delle risposte Lambda e ciò facilita l'inserimento di risposte più grandi nella dimensione del payload massima di 6 MB per le funzioni sincrone. Nell'esempio precedente, la versione con escape è di 32 byte, rispetto ai 17 della stringa Unicode.
Quando esegui l'aggiornamento a Python 3.12, potrebbe essere necessario modificare il codice tenendo conto del nuovo formato di risposta. Se il chiamante prevede un codice Unicode con escape, devi aggiungere manualmente il codice alla funzione restituita per eseguire l'escape dell'Unicode o regolare il chiamante per gestire la restituzione dell'Unicode.
Chiusura graduale per le estensioni
I runtime Python 3.12 e versioni successive offrono funzionalità di arresto graduale migliorate per funzioni con estensioni esterne. Quando chiude un ambiente di esecuzione, Lambda invia un segnale SIGTERM
al runtime e quindi un evento SHUTDOWN
a ogni estensione esterna registrata. È possibile catturare il segnale SIGTERM
nella funzione Lambda e ripulire risorse come le connessioni al database create dalla funzione.
Per ulteriori informazioni sul ciclo di vita dell'ambiente di esecuzione, consulta Comprendi il ciclo di vita dell'ambiente di esecuzione Lambda. Per esempi di come utilizzare Graceful Shutdown con le estensioni, consulta il repository Samples.AWS GitHub