View a markdown version of this page

Creazione di funzioni Lambda con Node.js - 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 Lambda con Node.js

Puoi eseguire il JavaScript codice con Node.js in. AWS Lambda Lambda fornisce i runtime per l' Node.js esecuzione del codice per l'elaborazione degli eventi. Il codice viene eseguito in un ambiente che include AWS SDK per JavaScript, con le credenziali di un ruolo AWS Identity and Access Management (IAM) che gestisci. Per saperne di più sulle versioni SDK incluse nei Node.js runtime, consulta. Runtime-included Versioni SDK

Lambda supporta i seguenti runtime. Node.js

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

Node.js 24

nodejs24.x

Amazon Linux 2023

30 aprile 2028

1 giugno 2028

1 luglio 2028

Node.js 22

nodejs22.x

Amazon Linux 2023

30 aprile 2027

1 giugno 2027

1 luglio 2027

Per creare una funzione Node.js
  1. Aprire la console Lambda.

  2. Scegli Crea funzione.

  3. Configura le impostazioni seguenti:

    • Nome della funzione: inserisci il nome della funzione.

    • Runtime: scegli Node.js 24.x.

  4. Scegli Crea funzione.

La console crea una funzione Lambda con un singolo file di origine 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 runtime della Node.js funzione riceve gli eventi di chiamata 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 funzione Lambda viene fornita con un gruppo di log Logs. CloudWatch 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.

Runtime-included Versioni SDK

Tutti i Node.js runtime Lambda supportati includono una versione secondaria specifica della AWS SDK per JavaScript v3, non la versione più recente. https://github.com/aws/aws-sdk-js-v3/releases La versione secondaria specifica inclusa nel runtime dipende dalla versione di runtime e dalla tua. Regione AWS Per trovare la versione specifica dell'SDK inclusa nel runtime che stai utilizzando, crea una funzione Lambda con il codice seguente.

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 Usare l'SDK per la v3 nel tuo gestore JavaScript.

Utilizzo di keep-alive per le connessioni TCP

L' Node.js HTTP/HTTPS agente predefinito crea una nuova connessione TCP per ogni nuova richiesta. Per evitare il costo della creazione di nuove connessioni, keep-alive è abilitato di default in tutti i runtime supportati. Node.js Keep-alive può ridurre i tempi di richiesta per le funzioni Lambda che effettuano più chiamate API utilizzando l'SDK.

Per disabilitare keep-alive, consulta Riutilizzare le connessioni con keep-alive in Node.js nella Guida per gli sviluppatori di SDK for 3.x. AWS JavaScript Per ulteriori informazioni sull'uso di keep-alive, vedi HTTP keep-alive è attivo per impostazione predefinita nell'SDK modulare per nel Developer Tools Blog. AWS JavaScript AWS

Caricamento di certificati CA

Per le versioni Node.js di runtime fino alla Node.js 18, Lambda carica automaticamente i certificati Amazon-specific 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 runtime Node.js 20 contiene un file di certificato con tutti i certificati Amazon CA disponibili in/var/runtime/ca-cert.pem. Per ripristinare lo stesso comportamento a partire da Node.js 18 runtime e precedenti, imposta la variabile di NODE_EXTRA_CA_CERTS ambiente su/var/runtime/ca-cert.pem.

Per prestazioni ottimali, consigliamo di raggruppare solo i certificati necessari con il pacchetto di distribuzione e di caricarli tramite la 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.

Funzionalità sperimentali Node.js

Le versioni Node.js linguistiche upstream 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 Node.js Versioni supportate Node.js flag applicato 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

--no-experimental-require-module

--experimental-require-module

Supporto per il rilevamento automatico dei moduli ES e CommonJS

Node.js 22, 24 Node.js

--no-experimental-detect-module

--experimental-detect-module

Per abilitare una funzionalità sperimentale disattivata, imposta il flag di riabilitazione nella variabile di NODE_OPTIONS ambiente. Ad esempio, per abilitare il modulo ES richiedi supporto, imposta NODE_OPTIONS su--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 nelle Node.js versioni future. Le funzioni che utilizzano funzionalità sperimentali non sono idonee per il Lambda Service Level Agreement (SLA) o. Supporto AWS