View a markdown version of this page

Erstellen von Lambda-Eventfunktionen mit TypeScript - AWS Lambda

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen von Lambda-Eventfunktionen mit TypeScript

Sie können die verwenden Node.js Laufzeit, die ausgeführt werden soll TypeScript einprogrammieren AWS Lambda Event-Funktionen. Weil Node.js läuft nicht TypeScript Code nativ, Sie müssen zuerst Ihren transpilieren TypeScript codieren in JavaScript. Dann benutze den JavaScript Dateien, um Ihren Funktionscode auf Lambda bereitzustellen. Ihr Code läuft in einer Umgebung, die Folgendes umfasst AWS SDK für JavaScript, mit Anmeldeinformationen von einem AWS Identity and Access Management (IAM) -Rolle, die Sie verwalten. Um mehr über die SDK-Versionen zu erfahren, die im Lieferumfang des enthalten sind Node.js Laufzeiten finden Sie unter Runtime-included SDK-Versionen.

Für Informationen zur Rückverfolgung TypeScript funktioniert mit, siehe TypeScript Code nachverfolgen in AWS Lambda.

Lambda unterstützt Folgendes Node.js Laufzeiten.

Name ID Betriebssystem Datum der Veraltung Blockfunktion erstellen Blockfunktion aktualisieren

Node.js 26

nodejs26.x

Amazon Linux 2023

Nicht geplant

Nicht geplant

Nicht geplant

Node.js 24

nodejs24.x

Amazon Linux 2023

30. April 2028

1. Juni 2028

1. Juli 2028

Node.js 22

nodejs22.x

Amazon Linux 2023

30. April 2027

29. Juli 2027

31. August 2027

Einrichtung eines TypeScript Entwicklungsumgebung

Verwenden Sie eine lokale integrierte Entwicklungsumgebung (IDE) oder einen Texteditor, um Ihre zu schreiben TypeScript Funktionscode. Du kannst nicht erstellen TypeScript Code auf der Lambda-Konsole.

Sie können beides verwenden esbuild oder Microsofts TypeScript Compiler (tsc) um deine zu transpilieren TypeScript kodieren in JavaScript. AWS Serverless Application Model (AWS SAM) und AWS Cloud Development Kit (AWS CDK) verwenden beide „esbuild“.

Wenn Sie esbuild verwenden, beachten Sie Folgendes:

  • Es gibt mehrere TypeScript Vorbehalte.

  • Sie müssen Ihre konfigurieren TypeScript Transpilationseinstellungen, die den entsprechen Node.js Laufzeit, die Sie verwenden möchten. Weitere Informationen finden Sie unter Ziel in der esbuild-Dokumentation. Für ein Beispiel für eine tsconfig.json Datei, die zeigt, wie man auf ein bestimmtes Ziel abzielt Node.js Version, die von Lambda unterstützt wird, finden Sie in der TypeScript GitHub Endlager.

  • esbuild führt keine Typprüfungen durch. Um Typen zu überprüfen, verwenden Sie den tsc-Compiler. Führen Sie tsc -noEmit aus oder fügen Sie einen "noEmit"-Parameter zu Ihrer tsconfig.json-Datei hinzu, wie im folgenden Beispiel gezeigt. Das konfiguriert tsc nicht emittieren JavaScript Dateien. Verwenden Sie nach der Überprüfung der Typen esbuild, um die zu konvertieren TypeScript Dateien in JavaScript.

Beispiel 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"] }

Typdefinitionen für Lambda

Das @types/aws-Lambda Das Paket stellt Typdefinitionen für Lambda-Ereignisfunktionen bereit. Installieren Sie dieses Paket, wenn Ihre Funktion eines der folgenden Elemente verwendet:

Um die Lambda-Typdefinitionen zu Ihrer Funktion hinzuzufügen, installieren Sie @types/aws-lambda als eine Entwicklungsabhängigkeit:

npm install -D @types/aws-lambda

Importieren Sie dann die Typen aus aws-lambda:

import { Context, S3Event, APIGatewayProxyEvent } from 'aws-lambda'; export const handler = async (event: S3Event, context: Context) => { // Function code };

Die import ... from 'aws-lambda'-Anweisung importiert die Typdefinitionen. Das aws-lambda-NPM-Paket wird nicht importiert, da es sich um ein unabhängiges Tool eines Drittanbieters handelt. Weitere Informationen finden Sie unter aws-lambda in der DefinitelyTyped GitHub Endlager.

Anmerkung

Du brauchst nicht @types/aws-Lambda wenn Sie Ihre eigenen benutzerdefinierten Typdefinitionen verwenden. Eine Beispielfunktion, die ihren eigenen Typ für ein Ereignisobjekt definiert, finden Sie unter Beispiel für einen TypeScript Lambda-Ereignisfunktionscode.