Compilazione di funzioni 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à.

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

python3.12

Amazon Linux 2023

Python 3.11

python3.11

Amazon Linux 2

Python 3.10

python3.10

Amazon Linux 2

Python 3.9

python3.9

Amazon Linux 2

Python 3.8

python3.8

Amazon Linux 2

14 ottobre 2024

28 febbraio 2025

31 marzo 2025

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

  2. Scegli Crea funzione.

  3. Configurare le impostazioni seguenti:

    • Nome della funzione: inserisci il nome della funzione.

    • Runtime: scegli Python 3.12.

  4. Scegli Crea funzione.

  5. Per configurare un evento di test scegliere Test.

  6. Per Event name (Nome evento) immettere test.

  7. Scegli Save changes (Salva modifiche).

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

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