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 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. Versioni SDK incluse in runtime

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

Nota

Le informazioni sul runtime in questa tabella sono sottoposte ad aggiornamenti continui. Per ulteriori informazioni sull'utilizzo degli AWS SDK in Lambda, consulta AWS Gestione degli SDK nelle funzioni Lambda in Serverless Land.

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. Seleziona Salvataggio delle 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).

Nota

La console AWS Cloud9 Lambda fornisce un ambiente di sviluppo integrato nel browser. Puoi anche usarle AWS Cloud9 per sviluppare funzioni Lambda nel tuo ambiente. Per ulteriori informazioni, consulta Lavorare con AWS Lambda le funzioni utilizzando la Kit di strumenti AWS guida per l' AWS Cloud9 utente.

Nota

Per iniziare a sviluppare applicazioni nell'ambiente locale, implementate una delle applicazioni di esempio disponibili nell' GitHub archivio di questa guida.

Applicazioni Lambda di esempio in Python
  • blank-python — Una funzione Python che mostra l'uso della registrazione, delle variabili di ambiente, del AWS X-Ray tracciamento, dei livelli, dei test unitari e dell'SDK. AWS

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 SDK incluse in runtime

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 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 Ambiente di esecuzione Lambda. Per esempi di come utilizzare Graceful Shutdown con le estensioni, consulta il repository Samples.AWS GitHub