

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Création de fonctions Lambda avec TypeScript
<a name="lambda-typescript"></a>

Vous pouvez utiliser le moteur d'exécution Node.js pour exécuter TypeScript du code dans AWS Lambda. Étant donné que Node.js n'exécute pas TypeScript le code de manière native, vous devez d'abord le transpiler dans TypeScript . JavaScript Utilisez ensuite les JavaScript fichiers pour déployer votre code de fonction sur Lambda. Votre code s'exécute dans un environnement qui inclut le AWS SDK pour JavaScript, avec les informations d'identification d'un rôle Gestion des identités et des accès AWS (IAM) que vous gérez. Pour en savoir plus sur les versions du kit SDK incluses dans les environnements d’exécution Node.js, consultez [Versions du SDK incluses dans l’environnement d’exécution](lambda-nodejs.md#nodejs-sdk-included).

Lambda prend en charge les environnements d’exécution Node.js suivants.


| Nom | Identifiant | Système d’exploitation | Date d’obsolescence | Créer la fonction de blocage | Mettre à jour la fonction de blocage | 
| --- | --- | --- | --- | --- | --- | 
| Node.js 24 | `nodejs24.x` | Amazon Linux 2023 |  30 avril 2028  |  1 juin 2028  |  1 juillet 2028  | 
| Node.js 22 | `nodejs22.x` | Amazon Linux 2023 |  30 avril 2027  |  1 juin 2027  |  1 juillet 2027  | 
| Node.js 20 | `nodejs20.x` | Amazon Linux 2023 |  30 avril 2026  |  31 août 2026  |  30 sept. 2026  | 

**Topics**
+ [Configuration d'un environnement TypeScript de développement](#typescript-dev)
+ [Définitions de type pour Lambda](#typescript-type-definitions)
+ [Définissez le gestionnaire de fonctions Lambda dans TypeScript](typescript-handler.md)
+ [Déployez TypeScript du code transpilé dans Lambda avec des archives de fichiers .zip](typescript-package.md)
+ [Déployez TypeScript du code transpilé dans Lambda avec des images de conteneur](typescript-image.md)
+ [Utilisation de l'objet de contexte Lambda pour récupérer les informations relatives aux fonctions TypeScript](typescript-context.md)
+ [Enregistrez et surveillez les fonctions TypeScript Lambda](typescript-logging.md)
+ [TypeScript Code de suivi dans AWS Lambda](typescript-tracing.md)

## Configuration d'un environnement TypeScript de développement
<a name="typescript-dev"></a>

Utilisez un environnement de développement intégré (IDE) local ou un éditeur de texte pour écrire votre code de TypeScript fonction. Vous ne pouvez pas créer de TypeScript code sur la console Lambda.

Vous pouvez utiliser [esbuild](https://esbuild.github.io/) ou le TypeScript compilateur (`tsc`) de Microsoft pour transpiler votre TypeScript code dans. JavaScript [AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started.html) et [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html) utilisent tous deux esbuild.

Tenez compte des éléments suivants lorsque vous utilisez esbuild :
+ Il y a plusieurs [TypeScript mises en garde](https://esbuild.github.io/content-types/#typescript-caveats).
+ Vous devez configurer vos paramètres de TypeScript transpilation pour qu'ils correspondent à l'environnement d'exécution Node.js que vous prévoyez d'utiliser. Pour plus d’informations, consultez [Cible](https://esbuild.github.io/api/#target) dans la documentation d’esbuild. [Pour un exemple de fichier **tsconfig.json** qui montre comment cibler une version spécifique de Node.js prise en charge par Lambda, reportez-vous au référentiel. TypeScript GitHub ](https://github.com/tsconfig/bases/blob/main/bases/node14.json)
+ esbuild n’effectue pas de vérifications du type. Pour vérifier les types, utilisez le compilateur `tsc`. Exécutez `tsc -noEmit` ou ajoutez un paramètre `"noEmit"` dans votre fichier **tsconfig.json** comme illustré dans l’exemple suivant. Cela permet de ne pas `tsc` émettre de JavaScript fichiers. Après avoir vérifié les types, utilisez esbuild pour convertir les TypeScript fichiers en 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"]
}
```

## Définitions de type pour Lambda
<a name="typescript-type-definitions"></a>

Le package [@types/aws-lambda](https://www.npmjs.com/package/@types/aws-lambda) contient les définitions de type pour les fonctions Lambda. Installez ce package lorsque votre fonction utilise l’un des éléments suivants :
+ Sources AWS d'événements courantes, telles que :
  + `APIGatewayProxyEvent` : pour les [intégrations de proxy Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html) 
  + `SNSEvent` : pour les [notifications Amazon Simple Notification Service](with-sns.md)
  + `SQSEvent` : pour les [messages Amazon Simple Queue Service](with-sqs.md)
  + `S3Event` : pour les [événements de déclencheur S3](with-s3.md)
  + `DynamoDBStreamEvent` : pour [Amazon DynamoDB Streams](with-ddb.md)
+ L’objet [Contexte](typescript-context.md) Lambda
+ Le modèle du gestionnaire de [rappels](typescript-handler.md#typescript-handler-callback)

Pour ajouter les définitions de type Lambda à votre fonction, installez `@types/aws-lambda` en tant que dépendance de développement :

```
npm install -D @types/aws-lambda
```

Importez ensuite les types depuis `aws-lambda` :

```
import { Context, S3Event, APIGatewayProxyEvent } from 'aws-lambda';

export const handler = async (event: S3Event, context: Context) => {
    // Function code
};
```

L’instruction `import ... from 'aws-lambda'` importe les définitions de type. Elle n’importe pas le package npm `aws-lambda`, qui est un outil tiers indépendant. Pour plus d'informations, consultez [aws-lambda](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/aws-lambda) dans le référentiel. DefinitelyTyped GitHub 

**Note**  
Vous n’avez pas besoin de [@types/aws-lambda](https://www.npmjs.com/package/@types/aws-lambda) lorsque vous utilisez vos propres définitions de type personnalisées. Pour un exemple de fonction qui définit son propre type pour un objet d’événement, consultez [Exemple de code de TypeScript fonction Lambda](typescript-handler.md#typescript-example-code).