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 |
|
Amazon Linux 2023 |
30 avril 2028 |
1 juin 2028 |
1 juillet 2028 |
|
Node.js 22 |
|
Amazon Linux 2023 |
30 avril 2027 |
1 juin 2027 |
1 juillet 2027 |
Rubriques
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 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écuteztsc -noEmitou ajoutez un paramètre"noEmit"dans votre fichier tsconfig.json comme illustré dans l’exemple suivant. Cela permet de ne pastscé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
-
Sources AWS d'événements courantes, telles que :
-
APIGatewayProxyEvent: pour les intégrations de proxy Amazon API Gateway -
SNSEvent: pour les notifications Amazon Simple Notification Service -
SQSEvent: pour les messages Amazon Simple Queue Service -
S3Event: pour les événements de déclencheur S3 -
DynamoDBStreamEvent: pour Amazon DynamoDB Streams
-
-
L’objet Contexte Lambda
-
Le modèle du gestionnaire de rappels
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
Note
Vous n'avez pas besoin de @ types/aws -lambda