View a markdown version of this page

Creazione di funzioni di eventi Lambda con TypeScript - 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 di eventi Lambda con TypeScript

Puoi usare Node.js runtime da eseguire TypeScript codice in AWS Lambda Funzioni di evento. Perché Node.js non funziona TypeScript codifica in modo nativo, devi prima trascrivere il tuo TypeScript codifica in JavaScript. Quindi, usa JavaScript file per distribuire il codice funzione su Lambda. 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.

Per informazioni sul tracciamento TypeScript funzioni con, vedere TypeScript Codice di tracciamento in AWS Lambda.

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

nodejs26.x

Amazon Linux 2023

Non programmato

Non programmato

Non programmato

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

29 luglio 2027

31 agosto 2027

Configurare un TypeScript ambiente di sviluppo

Usa un ambiente di sviluppo integrato locale (IDE) o un editor di testo per scrivere il tuo TypeScript codice funzione. Non puoi creare TypeScript codice sulla console Lambda.

Puoi usare entrambi esbuild o Microsoft TypeScript compilatore (tsc) per trascrivere il tuo TypeScript codice in JavaScript. AWS Serverless Application Model (AWS SAM) e AWS Cloud Development Kit (AWS CDK) usano entrambi esbuild.

Durante l'utilizzo di esbuild, considera quanto segue:

  • Ce ne sono diversi TypeScript avvertimenti.

  • È necessario configurare il TypeScript impostazioni di traspilazione in modo che corrispondano a Node.js runtime che intendi utilizzare. Per ulteriori informazioni, consulta Target nella documentazione esbuild. Per un esempio di tsconfig.json file che dimostra come scegliere come target uno specifico Node.js versione supportata da Lambda, fare riferimento alla TypeScript GitHub magazzino.

  • esbuild non esegue controlli di tipo. Per controllare i tipi, utilizza il compilatore tsc. Esegui tsc -noEmit oppure aggiungi un parametro "noEmit" al file tsconfig.json come mostrato nell'esempio seguente. Questo configura tsc non emettere JavaScript file. Dopo aver controllato i tipi, usa esbuild per convertire TypeScript file in JavaScript.

Esempio tsconfig.json
{ "compilerOptions": { "target": "es2020", "strict": true, "preserveConstEnums": true, "noEmit": true, "sourceMap": false, "module":"commonjs", "moduleResolution":"node", "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, "isolatedModules": true, }, "exclude": ["node_modules", "**/*.test.ts"] }

Definizioni dei tipi per Lambda

Il @types/aws-lambda il pacchetto fornisce definizioni di tipo per Lambda Event Functions. Installa questo pacchetto quando la tua funzione utilizza uno dei seguenti elementi:

Per aggiungere le definizioni dei tipi Lambda alla tua funzione, installa @types/aws-lambda come dipendenza di sviluppo:

npm install -D @types/aws-lambda

Quindi, importa i tipi da aws-lambda:

import { Context, S3Event, APIGatewayProxyEvent } from 'aws-lambda'; export const handler = async (event: S3Event, context: Context) => { // Function code };

L'istruzione import ... from 'aws-lambda' importa le definizioni dei tipi. Non importa il pacchetto npm aws-lambda, che è uno strumento di terzi non correlato. Per ulteriori informazioni, vedere aws-lambda nel DefinitelyTyped GitHub deposito.

Nota

Non è necessario @types/aws-lambda quando si utilizzano definizioni di tipo personalizzate. Per una funzione di esempio che definisce il proprio tipo per un oggetto evento, vedi Esempio di codice della TypeScript funzione Lambda Event.