

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.

# Aufbau von Lambda-Funktionen mit TypeScript
<a name="lambda-typescript"></a>

Sie können die Laufzeit von Node.js verwenden, um TypeScript Code darin AWS Lambda auszuführen. Da Node.js TypeScript Code nicht nativ ausführt, müssen Sie Ihren TypeScript Code zuerst in das Format transpilieren. JavaScript Verwenden Sie dann die JavaScript Dateien, um Ihren Funktionscode für Lambda bereitzustellen. Ihr Code wird in einer Umgebung ausgeführt, die das AWS SDK für enthält JavaScript, mit Anmeldeinformationen aus einer AWS Identity and Access Management (IAM-) Rolle, die Sie verwalten. Weitere Informationen zu den SDK-Versionen, die in den Laufzeiten von Node.js enthalten sind, finden Sie unter [SDK-Versionen, die zur Laufzeit enthalten sind](lambda-nodejs.md#nodejs-sdk-included).

Lambda unterstützt die folgenden Node.js-Laufzeiten.


| Name | ID | Betriebssystem | Datum der Veraltung | Blockfunktion erstellen | Blockfunktion aktualisieren | 
| --- | --- | --- | --- | --- | --- | 
| 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  |  1. Juni 2027  |  1. Juli 2027  | 
| Node.js 20 | `nodejs20.x` | Amazon Linux 2023 |  30. April 2026  |  31. August 2026  |  30. September 2026  | 

**Topics**
+ [Einrichtung einer TypeScript Entwicklungsumgebung](#typescript-dev)
+ [Typdefinitionen für Lambda](#typescript-type-definitions)
+ [Definieren Sie den Lambda-Funktionshandler in TypeScript](typescript-handler.md)
+ [Stellen Sie transpilierten TypeScript Code in Lambda mit ZIP-Dateiarchiven bereit](typescript-package.md)
+ [Stellen Sie transpilierten TypeScript Code in Lambda mit Container-Images bereit](typescript-image.md)
+ [Verwenden des Lambda-Kontextobjekts zum Abrufen von TypeScript Funktionsinformationen](typescript-context.md)
+ [TypeScript Lambda-Funktionen protokollieren und überwachen](typescript-logging.md)
+ [TypeScript Code nachverfolgen in AWS Lambda](typescript-tracing.md)

## Einrichtung einer TypeScript Entwicklungsumgebung
<a name="typescript-dev"></a>

Verwenden Sie eine lokale integrierte Entwicklungsumgebung (IDE) oder einen Texteditor, um Ihren TypeScript Funktionscode zu schreiben. Sie können auf der Lambda-Konsole keinen TypeScript Code erstellen.

Sie können entweder [esbuild](https://esbuild.github.io/) oder den TypeScript Compiler (`tsc`) von Microsoft verwenden, um Ihren Code in zu transpilieren. TypeScript JavaScript [AWS Serverless Application Model (AWS SAM)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-getting-started.html) und [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html) verwenden beide „esbuild“.

Wenn Sie esbuild verwenden, beachten Sie Folgendes:
+ [Es gibt mehrere Vorbehalte. TypeScript ](https://esbuild.github.io/content-types/#typescript-caveats)
+ Sie müssen Ihre TypeScript Transpilationseinstellungen so konfigurieren, dass sie der Laufzeit von Node.js entsprechen, die Sie verwenden möchten. Weitere Informationen finden Sie unter [Ziel](https://esbuild.github.io/api/#target) in der esbuild-Dokumentation. [Ein Beispiel für eine **tsconfig.json-Datei**, die zeigt, wie Sie auf eine bestimmte, von Lambda unterstützte Version von Node.js abzielen, finden Sie im Repository. TypeScript GitHub ](https://github.com/tsconfig/bases/blob/main/bases/node14.json)
+ esbuild führt keine Typ-Überprü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. Dies ist so konfiguriert`tsc`, dass keine Dateien ausgegeben werden. JavaScript Verwenden Sie nach der Überprüfung der Typen Esbuild, um die TypeScript Dateien in zu konvertieren. 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"]
}
```

## Typdefinitionen für Lambda
<a name="typescript-type-definitions"></a>

Das Paket [@types/aws-lambda](https://www.npmjs.com/package/@types/aws-lambda) enthält Typdefinitionen für Lambda-Funktionen. Installieren Sie dieses Paket, wenn Ihre Funktion eines der folgenden Elemente verwendet:
+ Allgemeine AWS Ereignisquellen, wie zum Beispiel:
  + `APIGatewayProxyEvent`: Für [Für Proxy-Integrationen in Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html) 
  + `SNSEvent`: Für [Amazon-Simple-Notification-Service-Benachrichtigungen](with-sns.md)
  + `SQSEvent`: Für [Amazon-Simple-Queue-Service-Nachrichten](with-sqs.md)
  + `S3Event`: Für [S3-Auslöserereignisse](with-s3.md)
  + `DynamoDBStreamEvent`: Für [Amazon DynamoDB Streams](with-ddb.md)
+ Das Lambda-[Kontext](typescript-context.md)-Objekt
+ Das [Callback](typescript-handler.md#typescript-handler-callback)-Handler-Muster

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 im Repository](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/aws-lambda). DefinitelyTyped GitHub 

**Anmerkung**  
Sie benötigen [@types/aws-lambda](https://www.npmjs.com/package/@types/aws-lambda) nicht, 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-Funktionscode](typescript-handler.md#typescript-example-code).