View a markdown version of this page

Création de fonctions événementielles 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 événementielles Lambda avec TypeScript

Vous pouvez utiliser Node.js temps d'exécution à exécuter TypeScript code dans AWS Lambda Fonctions événementielles. Parce que Node.js ne court pas TypeScript code en mode natif, vous devez d'abord transpiler votre TypeScript code dans JavaScript. Ensuite, utilisez JavaScript fichiers pour déployer le code de votre fonction sur Lambda. Votre code s'exécute dans un environnement qui inclut AWS SDK pour JavaScript, avec les informations d'identification d'un Gestion des identités et des accès AWS rôle (IAM) que vous gérez. Pour en savoir plus sur les versions du SDK incluses dans le Node.js temps d'exécution, voir Runtime-included Versions du SDK.

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

Lambda prend en charge les éléments suivants Node.js temps d'exécution.

Nom Identifiant Système d’exploitation Date d’obsolescence Créer la fonction de blocage Mettre à jour la fonction de blocage

Node.js 26

nodejs26.x

Amazon Linux 2023

Non planifié

Non planifié

Non planifié

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

29 juillet 2027

31 août 2027

Configuration d'un TypeScript environnement de développement

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

Vous pouvez utiliser soit esbuild ou celui de Microsoft TypeScript compilateur (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 existe plusieurs TypeScript avertissements.

  • Vous devez configurer votre TypeScript paramètres de transpilation pour correspondre à Node.js environnement d'exécution que vous prévoyez d'utiliser. Pour plus d’informations, consultez Cible dans la documentation d’esbuild. Pour un exemple de tsconfig.json fichier qui montre comment cibler une cible spécifique Node.js version prise en charge par Lambda, reportez-vous au TypeScript GitHub référentiel.

  • 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 configure tsc pour ne pas émettre JavaScript fichiers. Après avoir vérifié les types, utilisez esbuild pour convertir TypeScript fichiers dans JavaScript.

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 @types/aws-lambda Le package fournit des définitions de type pour les fonctions événementielles 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, voir aws-lambda dans le DefinitelyTyped GitHub référentiel.

Note

Vous n'avez pas besoin @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 d'événement TypeScript Lambda.