

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 TypeScript
<a name="lambda-typescript"></a>

È possibile utilizzare il runtime Node.js per eseguire il TypeScript codice. AWS Lambda Poiché Node.js non esegue il TypeScript codice in modo nativo, è necessario prima traspilare il TypeScript codice in. JavaScript Quindi, usa i JavaScript file per distribuire il codice della funzione in Lambda. Il codice viene eseguito in un ambiente che include l' AWS SDK for JavaScript, con le credenziali di un ruolo AWS Identity and Access Management (IAM) che gestisci. Per ulteriori informazioni sulle versioni SDK incluse nei runtime di Node.js, consulta [Versioni SDK incluse nel runtime](lambda-nodejs.md#nodejs-sdk-included).

Lambda supporta i seguenti runtime di Node.js.


| Name | 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  | 
| Node.js 20 | `nodejs20.x` | Amazon Linux 2023 |  30 aprile 2026  |  31 agosto 2026  |  30 settembre 2026  | 

**Topics**
+ [Configurazione di un TypeScript ambiente di sviluppo](#typescript-dev)
+ [Definizioni dei tipi per Lambda](#typescript-type-definitions)
+ [Definisci il gestore di funzioni Lambda in TypeScript](typescript-handler.md)
+ [Implementa codice trascritto TypeScript in Lambda con archivi di file.zip](typescript-package.md)
+ [Implementa codice trascritto TypeScript in Lambda con immagini di container](typescript-image.md)
+ [Utilizzo dell'oggetto contestuale Lambda per recuperare informazioni TypeScript sulla funzione](typescript-context.md)
+ [Registra e monitora le funzioni TypeScript Lambda](typescript-logging.md)
+ [TypeScript Codice di tracciamento in AWS Lambda](typescript-tracing.md)

## Configurazione di un TypeScript ambiente di sviluppo
<a name="typescript-dev"></a>

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

Puoi usare [esbuild](https://esbuild.github.io/) o il TypeScript compiler (`tsc`) di Microsoft per trasporre il codice in. TypeScript JavaScript [AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started.html) e [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html) usano entrambi esbuild.

Durante l'utilizzo di esbuild, considera quanto segue:
+ [Ci sono diverse avvertenze. TypeScript ](https://esbuild.github.io/content-types/#typescript-caveats)
+ È necessario configurare le impostazioni di TypeScript traspilazione in modo che corrispondano al runtime di Node.js che si intende utilizzare. Per ulteriori informazioni, consulta [Target](https://esbuild.github.io/api/#target) nella documentazione esbuild. [Per un esempio di file **tsconfig.json** che dimostra come indirizzare una versione specifica di Node.js supportata da Lambda, fai riferimento al repository. TypeScript GitHub ](https://github.com/tsconfig/bases/blob/main/bases/node14.json)
+ 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 per non emettere file. `tsc` JavaScript Dopo aver controllato i tipi, usa esbuild per convertire i TypeScript file in. JavaScript

**Example 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
<a name="typescript-type-definitions"></a>

Il pacchetto [@types/aws-lambda](https://www.npmjs.com/package/@types/aws-lambda) fornisce definizioni dei tipi per le funzioni Lambda. Installa questo pacchetto quando la tua funzione utilizza uno dei seguenti elementi:
+ Fonti di AWS eventi comuni, come:
  + `APIGatewayProxyEvent`: per [integrazioni proxy Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html) 
  + `SNSEvent`: per [notifiche Amazon Simple Notification Service](with-sns.md)
  + `SQSEvent`: per [messaggi Amazon Simple Queue Service](with-sqs.md)
  + `S3Event`: per [eventi di trigger S3](with-s3.md)
  + `DynamoDBStreamEvent`: per [flussi Amazon DynamoDB](with-ddb.md)
+ L’oggetto [contestuale](typescript-context.md) Lambda
+ Il modello di gestore di [callback](typescript-handler.md#typescript-handler-callback)

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, consulta [aws-lambda nel repository](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/aws-lambda). DefinitelyTyped GitHub 

**Nota**  
Non è necessario [@types/aws-lambda](https://www.npmjs.com/package/@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](typescript-handler.md#typescript-example-code).