View a markdown version of this page

Creazione di funzioni di eventi Lambda con Python - AWS Lambda

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à.

Creazione di funzioni di eventi Lambda con Python

Puoi eseguire il codice Python in AWS Lambda Event Functions. Lambda fornisce Runtime per Python che eseguono il tuo codice per elaborare gli eventi. Il codice viene eseguito in un ambiente che include l'SDK for Python (Boto3), con le credenziali AWS Identity and Access Management di un ruolo (IAM) che gestisci. Per ulteriori informazioni sulle versioni SDK incluse nei runtime Python, consulta Runtime-included Versioni SDK.

Lambda supporta i seguenti runtime di Python.

Nome Identificatore Sistema operativo Data di ritiro Blocco creazione funzioni Blocco aggiornamento funzioni

Python 3.15

python3.15

Amazon Linux 2023

Non programmato

Non programmato

Non programmato

Python 3.14

python3.14

Amazon Linux 2023

30 giugno 2029

31 luglio 2029

31 agosto 2029

Python 3.13

python3.13

Amazon Linux 2023

30 giugno 2029

31 luglio 2029

31 agosto 2029

Python 3.12

python3.12

Amazon Linux 2023

31 ottobre 2028

30 novembre 2028

10 gennaio 2029

Python 3.11

python3.11

Amazon Linux 2

30 giugno 2027

29 luglio 2027

31 agosto 2027

Python 3.10

python3.10

Amazon Linux 2

31 ottobre 2026

29 luglio 2027

31 agosto 2027

Per creare una funzione evento in Python
  1. Aprire la console Lambda.

  2. Scegli Crea funzione evento.

  3. Configura le impostazioni seguenti:

    • Nome della funzione: inserisci il nome della funzione.

    • Runtime: scegli Python 3.14.

  4. Scegli Crea funzione evento.

La console crea una funzione di eventi Lambda con un unico file sorgente denominato. lambda_function È possibile modificare questo file e aggiungere altri file nell'editor di codice predefinito. Nella sezione DEPLOY, scegli Implementa per aggiornare il codice della tua funzione. Quindi, per eseguire il codice, scegli Crea evento di test nella sezione EVENTI DI TEST.

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.

Per indicazioni su come testare le tue funzioni Python, consulta. AWS Lambda Test delle funzioni degli eventi in Python

Runtime-included Versioni SDK

La versione dell' AWS SDK inclusa nel runtime di Python dipende dalla versione di runtime e dalla tua. Regione AWS Per trovare la versione dell'SDK inclusa nel runtime che stai utilizzando, crea una funzione 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__}')

Funzionalità Python disattivate

La tabella seguente elenca le funzionalità di Python che sono disabilitate nei runtime gestiti da Lambda e nelle immagini base dei contenitori per Python. Queste funzionalità devono essere abilitate quando l'eseguibile del runtime Python è compilato e non possono essere abilitate utilizzando un flag in fase di esecuzione. Per utilizzare queste funzionalità in Lambda, puoi distribuire la tua build di runtime Python con queste funzionalità abilitate, utilizzando un'immagine del contenitore o un runtime personalizzato.

Funzionalità Python Versioni di Python interessate Stato
Just-in-Time compilatore (JIT) Python 3.13 e versioni successive Il compilatore JIT è sperimentale e non è consigliato per carichi di lavoro di produzione. È quindi disabilitato nei runtime Lambda Python.
Free-threading Python 3.13 e versioni successive Il threading libero (opzione per disabilitare il blocco globale dell'interprete) è disabilitato nelle build Lambda Python a causa dell'impatto sulle prestazioni sul codice a thread singolo.

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 o a runtime Python successivi, 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 SIGTERM segnale nella funzione e ripulire risorse come le connessioni al database create dalla funzione.

Per ulteriori informazioni sul ciclo di vita dell'ambiente di esecuzione, consulta Comprendere il ciclo di vita dell’ambiente di esecuzione Lambda. Per esempi di come utilizzare Graceful Shutdown con le estensioni, consultate il repository Samples.AWS GitHub