

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.NET-Lambda-Funktionen mit nativer AOT-Kompilierung in AWS SAM
<a name="build-dotnet7"></a>

Erstellen und verpacken Sie Ihre .NET AWS Lambda 8-Funktionen mit AWS Serverless Application Model (AWS SAM). Verwenden Sie dabei die native Kompilierung Ahead-of-Time (AOT), um die AWS Lambda Kaltstartzeiten zu verbessern.

**Topics**
+ [Überblick über .NET 8 Native AOT](#build-dotnet7-overview)
+ [Verwendung AWS SAM mit Ihren.NET-8-Lambda-Funktionen](#build-dotnet7-sam)
+ [Voraussetzungen für die Installation](#build-dotnet7-prerequisites)
+ [Definieren Sie.NET 8 Lambda-Funktionen in Ihrer Vorlage AWS SAM](#build-dotnet7-sam-define)
+ [Erstellen Sie Ihre Anwendung mit AWS SAMCLI](#build-dotnet7-sam-build)
+ [Weitere Informationen](#build-dotnet7-learn-more)

## Überblick über .NET 8 Native AOT
<a name="build-dotnet7-overview"></a>

In der Vergangenheit hatten die.NET-Lambda-Funktionen Kaltstartzeiten, die sich auf die Benutzererfahrung, die Systemlatenz und die Nutzungskosten Ihrer serverlosen Anwendungen auswirken. Mit.NET Native AOT-Kompilierung können Sie die Kaltstartzeiten Ihrer Lambda-Funktionen verbessern. *Weitere Informationen zu Native AOT für .NET 8 finden Sie unter [Verwenden von Native AOT](https://github.com/dotnet/runtime/tree/main/src/coreclr/nativeaot#readme) im Dotnet-Repository. GitHub *

## Verwendung AWS SAM mit Ihren.NET-8-Lambda-Funktionen
<a name="build-dotnet7-sam"></a>

Gehen Sie wie folgt vor, um Ihre .NET 8-Lambda-Funktionen mit der AWS Serverless Application Model (AWS SAM) zu konfigurieren:
+ Installieren Sie die erforderlichen Komponenten auf Ihrem Entwicklungscomputer.
+ Definieren Sie .NET 8 Lambda-Funktionen in Ihrer AWS SAM Vorlage.
+ Erstellen Sie Ihre Anwendung mit dem AWS SAMCLI.

## Voraussetzungen für die Installation
<a name="build-dotnet7-prerequisites"></a>

Die folgenden Voraussetzungen sind erforderlich:
+ Die AWS SAMCLI
+ Die.NET Core CLI
+ Das globale .NET Core-Tool von Amazon.Lambda.Tools
+ Docker

**Installieren Sie das AWS SAMCLI**

1. Um zu überprüfen, ob Sie das bereits AWS SAMCLI installiert haben, führen Sie Folgendes aus:

   ```
   sam --version
   ```

1. Informationen zur Installation von AWS SAMCLI finden Sie unter[Installieren Sie das AWS SAMCLI](install-sam-cli.md).

1. Informationen zum Upgrade einer installierten Version von finden Sie unter[Aktualisierung des AWS SAMCLI](manage-sam-cli-versions.md#manage-sam-cli-versions-upgrade). AWS SAMCLI

**Installieren Sie das.NET Core CLI**

1. Informationen zum Herunterladen und Installieren von.NET Core-CLI finden [Sie unter .NET von der Microsoft-Website herunterladen](https://dotnet.microsoft.com/download).

1. Weitere Informationen zur.NET Core CLI finden Sie [unter.NET Core CLI](https://docs.aws.amazon.com/lambda/latest/dg/csharp-package-cli.html) im *AWS Lambda Developer Guide*.

**Installieren Sie das Amazon.Lambda.Tools .NET Core Global Tool**

1. Führen Sie den folgenden Befehl aus:

   ```
   dotnet tool install -g Amazon.Lambda.Tools
   ```

1. Wenn Sie das Tool bereits installiert haben, können Sie sich mit dem folgenden Befehl vergewissern, dass Sie die neueste Version verwenden:

   ```
   dotnet tool update -g Amazon.Lambda.Tools
   ```

1. Weitere Informationen zum Amazon.Lambda.Tools .NET Core Global Tool finden Sie im [AWS Extensions](https://github.com/aws/aws-extensions-for-dotnet-cli) for .NET CLI Repository unter. GitHub

**Installieren Docker**
+ Das Erstellen mit nativem AOT muss installiert werden. Docker Installationsanweisungen finden Sie unter [Installation von Docker zur Verwendung mit dem AWS SAMCLI](install-docker.md).

## Definieren Sie.NET 8 Lambda-Funktionen in Ihrer Vorlage AWS SAM
<a name="build-dotnet7-sam-define"></a>

Um eine zu definieren. NET8 Gehen Sie in der Lambda-Funktion in Ihrer AWS SAM Vorlage wie folgt vor:

1. Führen Sie den folgenden Befehl in einem Startverzeichnis Ihrer Wahl aus:

   ```
   sam init
   ```

1. Wählen Sie `AWS Quick Start Templates` diese Option, um eine Startvorlage auszuwählen.

1. Wählen Sie als Vorlage `Hello World Example` aus.

1. Geben Sie ein, dass Sie nicht den gängigsten Laufzeit- und Pakettyp verwenden möchten`n`.

1. Wählen Sie für Runtime`dotnet8`.

1. Wählen Sie als Pakettyp`Zip`.

1. Wählen Sie für Ihre Starter-Vorlage`Hello World Example using native AOT`.

**Installieren Docker**
+ Building with Native AOT, Docker muss installiert sein. Installationsanweisungen finden Sie unter [Installation von Docker zur Verwendung mit dem AWS SAMCLI](install-docker.md).

```
Resources:
HelloWorldFunction:
  Type: AWS::Serverless::Function
  Properties:
    CodeUri: ./src/HelloWorldAot/
    Handler: bootstrap
    Runtime: dotnet8
    Architectures:
      - x86_64
    Events:
      HelloWorldAot:
        Type: Api 
        Properties:
          Path: /hello
          Method: get
```

**Anmerkung**  
Wenn die `Event` Eigenschaft von auf gesetzt `AWS::Serverless::Function` ist`Api`, die `RestApiId` Eigenschaft aber nicht angegeben ist, wird die `AWS::ApiGateway::RestApi` CloudFormation Ressource AWS SAM generiert.

## Erstellen Sie Ihre Anwendung mit AWS SAMCLI
<a name="build-dotnet7-sam-build"></a>

 Führen Sie im Stammverzeichnis Ihres Projekts den `sam build` Befehl aus, um mit der Erstellung Ihrer Anwendung zu beginnen. Wenn die `PublishAot` Eigenschaft in Ihrer .NET 8-Projektdatei definiert wurde, AWS SAMCLI wird sie mit der systemeigenen AOT-Kompilierung erstellt. Weitere Informationen zu dieser `PublishAot` Eigenschaft finden Sie unter [Native AOT Deployment](https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/) in der *.NET-Dokumentation* von Microsoft.

Um Ihre Funktion zu erstellen, AWS SAMCLI ruft die .NET Core CLI auf, die das Amazon.Lambda.Tools .NET Core Global Tool verwendet.

**Anmerkung**  
Wenn beim Erstellen eine `.sln` Datei im selben oder einem übergeordneten Verzeichnis Ihres Projekts vorhanden ist, wird das Verzeichnis, das die `.sln` Datei enthält, in den Container gemountet. Wenn eine `.sln` Datei nicht gefunden wird, wird nur der Projektordner bereitgestellt. Wenn Sie eine Multiprojektanwendung erstellen, stellen Sie daher sicher, dass sich die `.sln` Datei im richtigen Verzeichnis befindet.

## Weitere Informationen
<a name="build-dotnet7-learn-more"></a>

Weitere Informationen zum Erstellen von.NET 8-Lambda-Funktionen finden Sie unter [Einführung in die .NET 8-Laufzeit für AWS Lambda](https://aws.amazon.com/blogs/compute/introducing-the-net-8-runtime-for-aws-lambda/).

Eine Referenz zu dem **sam build** Befehl finden Sie unter[sam build](sam-cli-command-reference-sam-build.md).