View a markdown version of this page

Création de fonctions Lambda avec TypeScript - AWS Lambda

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

Vous pouvez utiliser le Node.js moteur d'exécution pour exécuter TypeScript du code dans AWS Lambda. Parce qu' Node.js il n'exécute pas de TypeScript code de manière native, vous devez d'abord transpiler votre TypeScript code dans. JavaScript Utilisez ensuite les JavaScript fichiers pour déployer le code de votre 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 SDK incluses dans les environnements d' Node.js exécution, consultez. Runtime-included Versions du SDK

Pour plus d'informations sur TypeScript les fonctions de traçage avec, consultezTypeScript Code de suivi dans AWS Lambda.

Lambda prend en charge les environnements d' Node.js exécution 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

Mise en place d'un environnement TypeScript de développement

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

Vous pouvez utiliser esbuild ou le TypeScript compilateur de Microsoft (tsc) pour transpiler votre TypeScript code dans. JavaScript AWS Serverless Application Model (AWS SAM) et Cloud Development Kit AWS (AWS CDK) utilisent tous deux esbuild.

Tenez compte des éléments suivants lorsque vous utilisez esbuild :

  • Il y a plusieurs TypeScript mises en garde.

  • Vous devez configurer vos paramètres de TypeScript transpilation pour qu'ils correspondent à l' Node.js environnement d'exécution que vous comptez utiliser. Pour plus d’informations, consultez Cible dans la documentation d’esbuild. Pour obtenir un exemple de fichier tsconfig.json qui montre comment cibler une Node.js version spécifique prise en charge par Lambda, consultez le référentiel. TypeScript GitHub

  • esbuild n'effectue pas de vérifications de 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 fichiers.

Exemple 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

Le package @ types/aws -lambda fournit des définitions de type pour les fonctions Lambda. Installez ce package lorsque votre fonction utilise l’un des éléments suivants :

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 dans le référentiel. DefinitelyTyped GitHub

Note

Vous n'avez pas besoin de @ 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 fonction TypeScript Lambda.