

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Creazione di funzioni.NET Lambda con la compilazione AOT nativa in AWS SAM
<a name="build-dotnet7"></a>

Crea e impacchetta le tue AWS Lambda funzioni.NET 8 con AWS Serverless Application Model (AWS SAM), utilizzando la compilazione Native Ahead-of-Time (AOT) per migliorare i tempi di avvio a freddo. AWS Lambda 

**Topics**
+ [Panoramica su AOT nativo.NET 8](#build-dotnet7-overview)
+ [Utilizzo AWS SAM con le funzioni Lambda di.NET 8](#build-dotnet7-sam)
+ [Prerequisiti di installazione](#build-dotnet7-prerequisites)
+ [Definisci le funzioni.NET 8 Lambda nel tuo modello AWS SAM](#build-dotnet7-sam-define)
+ [Crea la tua applicazione con AWS SAMCLI](#build-dotnet7-sam-build)
+ [Ulteriori informazioni](#build-dotnet7-learn-more)

## Panoramica su AOT nativo.NET 8
<a name="build-dotnet7-overview"></a>

Storicamente, le funzioni.NET Lambda hanno tempi di avvio a freddo che influiscono sull'esperienza utente, sulla latenza del sistema e sui costi di utilizzo delle applicazioni serverless. Con la compilazione AOT nativa.NET, puoi migliorare i tempi di avvio a freddo delle tue funzioni Lambda. *Per ulteriori informazioni su Native AOT for .NET 8, consulta Using [Native AOT nel repository Dotnet](https://github.com/dotnet/runtime/tree/main/src/coreclr/nativeaot#readme). GitHub *

## Utilizzo AWS SAM con le funzioni Lambda di.NET 8
<a name="build-dotnet7-sam"></a>

Effettua le seguenti operazioni per configurare le funzioni Lambda di.NET 8 con AWS Serverless Application Model ()AWS SAM:
+ Installa i prerequisiti sulla tua macchina di sviluppo.
+ Definisci le funzioni.NET 8 Lambda nel tuo AWS SAM modello.
+ Crea la tua applicazione con. AWS SAMCLI

## Prerequisiti di installazione
<a name="build-dotnet7-prerequisites"></a>

I seguenti sono i prerequisiti obbligatori:
+ Il AWS SAMCLI
+ La CLI.NET Core
+ Lo strumento globale.NET Core di Amazon.Lambda.Tools
+ Docker

**Installa il AWS SAMCLI**

1. Per verificare se è già AWS SAMCLI installato, esegui quanto segue:

   ```
   sam --version
   ```

1. Per installare AWS SAMCLI, vedere[Installa il AWS SAMCLI](install-sam-cli.md).

1. Per aggiornare una versione installata di AWS SAMCLI, vedere[Aggiornamento del AWS SAMCLI](manage-sam-cli-versions.md#manage-sam-cli-versions-upgrade).

**Installazione di.NET Core CLI**

1. Per scaricare e installare il.NET Core CLI, vedi [Scaricare.NET dal sito](https://dotnet.microsoft.com/download) Web di Microsoft.

1. *Per ulteriori informazioni su .NET Core CLI, [consulta.NET Core CLI](https://docs.aws.amazon.com/lambda/latest/dg/csharp-package-cli.html) nella Developer Guide.AWS Lambda *

**Installa lo strumento globale Amazon.Lambda.Tools .NET Core**

1. Esegui il comando seguente:

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

1. Se lo strumento è già stato installato, è possibile verificare di avere in uso la versione più recente con il comando seguente:

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

1. Per ulteriori informazioni sullo strumento globale Amazon.Lambda.Tools .NET Core, consulta l'archivio Extensions [AWS for](https://github.com/aws/aws-extensions-for-dotnet-cli) .NET CLI su. GitHub

**Installazione di Docker**
+ La creazione con Native AOT richiede l'installazione. Docker Per le istruzioni di installazione, consulta [Installazione di Docker da utilizzare con AWS SAMCLI](install-docker.md).

## Definisci le funzioni.NET 8 Lambda nel tuo modello AWS SAM
<a name="build-dotnet7-sam-define"></a>

Per definire un. NET8 Funzione Lambda nel AWS SAM modello, procedi come segue:

1. Esegui il comando seguente da una directory iniziale a tua scelta:

   ```
   sam init
   ```

1. Seleziona `AWS Quick Start Templates` per scegliere un modello di partenza.

1. Scegli il `Hello World Example` modello.

1. Scegli di non utilizzare il runtime e il tipo di pacchetto più diffusi inserendo`n`.

1. Per il runtime, scegliete`dotnet8`.

1. Per il tipo di pacchetto, scegli`Zip`.

1. Per il tuo modello iniziale, scegli`Hello World Example using native AOT`.

**Installazione di Docker**
+ La creazione con Native AOT richiede Docker l'installazione. Per le istruzioni di installazione, consulta [Installazione di Docker da utilizzare con 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
```

**Nota**  
Quando la `Event` proprietà di an `AWS::Serverless::Function` è impostata su`Api`, ma la `RestApiId` proprietà non è specificata, AWS SAM genera la `AWS::ApiGateway::RestApi` CloudFormation risorsa.

## Crea la tua applicazione con AWS SAMCLI
<a name="build-dotnet7-sam-build"></a>

 Dalla directory principale del progetto, esegui il `sam build` comando per iniziare a creare l'applicazione. Se la `PublishAot` proprietà è stata definita nel file di progetto.NET 8, AWS SAMCLI verrà creata con la compilazione AOT nativa. *Per ulteriori informazioni sulla `PublishAot` proprietà, consulta [Native AOT Deployment nella documentazione .NET](https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/) di Microsoft.*

Per creare la tua funzione, AWS SAMCLI richiama la CLI.NET Core che utilizza lo strumento globale Amazon.Lambda.Tools .NET Core.

**Nota**  
Durante la creazione, se un `.sln` file esiste nella stessa directory o nella directory principale del progetto, la directory contenente il file verrà montata nel contenitore. `.sln` Se non viene trovato un `.sln` file, viene montata solo la cartella del progetto. Pertanto, se state creando un'applicazione multiprogetto, assicuratevi che il `.sln` file sia posizionato correttamente.

## Ulteriori informazioni
<a name="build-dotnet7-learn-more"></a>

Per ulteriori informazioni sulla creazione di funzioni.NET 8 Lambda, vedere [Introduzione al runtime di.NET 8](https://aws.amazon.com/blogs/compute/introducing-the-net-8-runtime-for-aws-lambda/) per. AWS Lambda

Per un riferimento al **sam build** comando, vedere[sam build](sam-cli-command-reference-sam-build.md).