Runtime di esecuzione delle istanze gestite Lambda - 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à.

Runtime di esecuzione delle istanze gestite Lambda

Lambda elabora le richieste in modo diverso quando utilizza istanze gestite Lambda. Invece di gestire le richieste in sequenza in ogni ambiente di esecuzione, le istanze gestite Lambda elaborano più richieste contemporaneamente all'interno di ciascun ambiente di esecuzione. Questa modifica nel modello di esecuzione significa che le funzioni che utilizzano le istanze gestite Lambda devono considerare la sicurezza dei thread, la gestione dello stato e l'isolamento del contesto, problemi che non sorgono nel modello a concorrenza singola Lambda (predefinito). Inoltre, l'implementazione multi-concorrenza varia da un runtime all'altro.

Lingue supportate

Le istanze gestite Lambda possono essere utilizzate con i seguenti linguaggi di programmazione e runtime:

  • Java: Java 21 e versioni successive.

  • Python: Python 3.13 e versioni successive.

  • Node.js: Node.js 22 e versioni successive.

  • .NET: .NET 8 e versioni successive.

  • Rust: supportato utilizzando il runtime solo per il sistema operativo provided.al2023 e versioni successive.

Considerazioni specifiche sulla lingua

Ogni linguaggio di programmazione implementa la multiconcorrenza in modo diverso. È necessario comprendere come viene implementata la concorrenza multipla nel linguaggio di programmazione prescelto per applicare le migliori pratiche di concorrenza appropriate.

Java

Utilizza un unico processo con thread del sistema operativo per la concorrenza. Più thread eseguono il metodo handler contemporaneamente, richiedendo una gestione thread-safe delle risorse statali e condivise.

Python

Utilizza più processi Python in cui ogni richiesta simultanea viene eseguita in un processo separato. Ciò protegge dalla maggior parte dei problemi di concorrenza, sebbene sia necessaria attenzione per le risorse condivise come la directory. /tmp

Node.js

Utilizza thread di lavoro con esecuzione asincrona. Le richieste concorrenti sono distribuite tra i thread di lavoro e ogni thread di lavoro può anche gestire le richieste simultanee in modo asincrono, il che richiede una gestione sicura delle risorse statali e condivise.

.NET

Utilizza .NET Tasks con l'elaborazione asincrona di più richieste simultanee. Richiede una gestione sicura delle risorse statali e condivise.

Rust

Utilizza un unico processo con attività asincrone basate su Tokio. Il gestore deve essere +. Clone Send

Fasi successive

Per informazioni dettagliate su ogni runtime, consultate i seguenti argomenti: