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 Node.js
Puoi correre JavaScript codice con Node.js nel AWS Lambda Funzioni degli eventi. Lambda fornisce tempi di esecuzione per Node.js che eseguono il codice per elaborare gli eventi. Il codice viene eseguito in un ambiente che include AWS SDK per JavaScript, con credenziali di un AWS Identity and Access Management ruolo (IAM) che gestisci. Per saperne di più sulle versioni SDK incluse nel Node.js runtime, vedi Runtime-included Versioni SDK.
Lambda supporta quanto segue Node.js tempi di esecuzione.
| Nome | Identificatore | Sistema operativo | Data di ritiro | Blocco creazione funzioni | Blocco aggiornamento funzioni |
|---|---|---|---|---|---|
|
Node.js 26 |
|
Amazon Linux 2023 |
Non programmato |
Non programmato |
Non programmato |
|
Node.js 24 |
|
Amazon Linux 2023 |
30 aprile 2028 |
1 giugno 2028 |
1 luglio 2028 |
|
Node.js 22 |
|
Amazon Linux 2023 |
30 aprile 2027 |
29 luglio 2027 |
31 agosto 2027 |
Per creare un Node.js Funzione evento
-
Aprire la console Lambda
. -
Scegli Crea funzione evento.
-
Configura le impostazioni seguenti:
-
Nome della funzione: inserisci il nome della funzione.
-
Runtime: Scegli Node.js 2.x.
-
-
Scegli Crea funzione evento.
La console crea una Lambda Event Function con un singolo file sorgente denominato index.mjs. È 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.
Il file index.mjs esporta una funzione denominata handler che richiede un oggetto evento e un oggetto contesto. Questa è la funzione del gestore chiamata da Lambda quando la funzione viene richiamata. Il Node.js il runtime della funzione riceve gli eventi di invocazione da Lambda e li passa al gestore. Nella configurazione della funzione il valore del gestore è index.handler.
Quando si salva il codice funzione, la console Lambda crea un pacchetto di implementazione dell'archivio di file .zip. Quando sviluppi il codice funzione al di fuori della console (utilizzando un IDE) devi creare un pacchetto di implementazione per caricare il codice nella funzione Lambda.
Il runtime della funzione passa un oggetto contesto al gestore, oltre all'evento di chiamata. L'oggetto contesto contiene ulteriori informazioni sulla chiamata, sulla funzione e sull'ambiente di esecuzione. Altre informazioni sono disponibili con le variabili di ambiente.
La tua funzione Lambda è dotata di un CloudWatch Log e gruppo di log. Il runtime della funzione invia i dettagli su ogni chiamata a CloudWatch Registri. 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
Runtime-included Versioni SDK
Tutte Lambda supportata Node.js tempi di esecuzione includono una versione secondaria specifica di AWS SDK per JavaScript v3, non il ultima versione
Esempio index.mjs
import packageJson from '@aws-sdk/client-s3/package.json' with { type: 'json' }; export const handler = async () => ({ version: packageJson.version });
Restituisce una risposta nel seguente formato:
{ "version": "3.632.0" }
Per ulteriori informazioni, consulta Utilizzo dell'SDK per v3 nel gestore JavaScript.
Utilizzo di keep-alive per le connessioni TCP
L'impostazione predefinita Node.js HTTP/HTTPS l'agente crea una nuova connessione TCP per ogni nuova richiesta. Per evitare il costo della creazione di nuove connessioni, keep-alive è abilitato di default in tutte supportato Node.js tempi di esecuzione. Keep-alive può ridurre i tempi di richiesta per le funzioni Lambda che effettuano più chiamate API utilizzando l'SDK.
Per disabilitare keep-alive, vedi Riutilizzo delle connessioni con keep-alive in Node.js nel AWS SDK per JavaScript Guida per gli sviluppatori 3.x. Per ulteriori informazioni sull'uso di keep-alive, vedi HTTP keep-alive è attivo per impostazione predefinita in modalità modulare AWS SDK per JavaScript
Caricamento di certificati CA
Per Node.js versioni di runtime fino a Node.js 18, Lambda si carica automaticamente Amazon-specific certificati CA (autorità di certificazione) per semplificare la creazione di funzioni che interagiscono con altre Servizi AWS. Ad esempio, Lambda include i certificati Amazon RDS necessari per convalidare il certificato di identità del server installato sul tuo database Amazon RDS. Questo comportamento può avere un impatto sulle prestazioni durante gli avvii a freddo.
A partire da Node.js 20, Lambda non carica più certificati CA aggiuntivi per impostazione predefinita. Il Node.js Il runtime 20 contiene un file di certificato con tutti i certificati Amazon CA che si trovano in /var/runtime/ca-cert.pem. Per ripristinare lo stesso comportamento da Node.js 18 e versioni precedenti, imposta il NODE_EXTRA_CA_CERTS variabile di ambiente a /var/runtime/ca-cert.pem.
Per prestazioni ottimali, consigliamo di raggruppare solo i certificati necessari con il pacchetto di distribuzione e di caricarli tramite NODE_EXTRA_CA_CERTS variabile di ambiente. Il file dei certificati deve essere composto da uno o più certificati CA root o intermedi affidabili in formato PEM. Ad esempio, per RDS, includi i certificati richiesti insieme al codice come certificates/rds.pem. Quindi, carica i certificati impostando NODE_EXTRA_CA_CERTS su /var/task/certificates/rds.pem.
sperimentale Node.js caratteristiche
L'upstream Node.js Le versioni linguistiche abilitano alcune funzionalità sperimentali per impostazione predefinita. Lambda disabilita queste funzionalità per garantire stabilità di runtime e prestazioni costanti. La tabella seguente elenca le funzionalità sperimentali disabilitate da Lambda.
| Funzionalità sperimentale | Supportata Node.js versioni | Node.js bandiera applicata da Lambda | Flag Lambda da riattivare |
|---|---|---|---|
|
Supporto per l'importazione di moduli utilizzando i moduli require in ES |
Node.js 20, Node.js 22, Node.js 24 |
|
|
|
Supporto per il rilevamento automatico dei moduli ES e CommonJS |
Node.js 22, Node.js 24 |
|
|
Per abilitare una funzione sperimentale disattivata, imposta il flag di riattivazione nel NODE_OPTIONS variabile di ambiente. Ad esempio, per abilitare il modulo ES richiedi il supporto, imposta NODE_OPTIONS a --experimental-require-module. Lambda rileva questo override e rimuove il corrispondente flag di disabilitazione.
Importante
L'utilizzo di funzionalità sperimentali può causare instabilità e problemi di prestazioni. Queste funzionalità potrebbero essere modificate o rimosse in futuro Node.js versioni. Le funzioni che utilizzano funzionalità sperimentali non sono idonee per il Lambda Service Level Agreement (SLA) o Supporto AWS.