

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criação de funções do.NET Lambda com compilação AOT nativa no AWS SAM
<a name="build-dotnet7"></a>

Crie e empacote suas AWS Lambda funções do.NET 8 com o AWS Serverless Application Model (AWS SAM), utilizando a compilação nativa Ahead-of-Time (AOT) para melhorar AWS Lambda os tempos de inicialização a frio.

**Topics**
+ [Visão geral da AOT nativa do .NET 8](#build-dotnet7-overview)
+ [Usando AWS SAM com suas funções Lambda do.NET 8](#build-dotnet7-sam)
+ [Pré-requisitos de instalação](#build-dotnet7-prerequisites)
+ [Defina as funções Lambda do.NET 8 em seu modelo AWS SAM](#build-dotnet7-sam-define)
+ [Crie seu aplicativo com o AWS SAMCLI](#build-dotnet7-sam-build)
+ [Saiba mais](#build-dotnet7-learn-more)

## Visão geral da AOT nativa do .NET 8
<a name="build-dotnet7-overview"></a>

Historicamente, as funções .NET Lambda têm tempos de inicialização a frio que afetam a experiência do usuário, a latência do sistema e os custos de uso de seus aplicativos sem servidor. Com a compilação AOT nativa do.NET, você pode melhorar os tempos de inicialização a frio das suas funções do Lambda. Para saber mais sobre o AOT nativo para.NET 8, consulte [Usando o AOT nativo no repositório GitHub ](https://github.com/dotnet/runtime/tree/main/src/coreclr/nativeaot#readme) *Dotnet*.

## Usando AWS SAM com suas funções Lambda do.NET 8
<a name="build-dotnet7-sam"></a>

Faça o seguinte para configurar as funções do Lambda com .NET 8 com o AWS Serverless Application Model (AWS SAM):
+ Instale os pré-requisitos em sua máquina de desenvolvimento.
+ Defina as funções Lambda do.NET 8 em seu AWS SAM modelo.
+ Crie seu aplicativo com AWS SAMCLI o.

## Pré-requisitos de instalação
<a name="build-dotnet7-prerequisites"></a>

Os seguintes pré-requisitos são exigidos:
+ O AWS SAMCLI
+ .NET Core CLI
+ Amazon.Lambda.Tools .NET Core Global Tool
+ Docker

**Instale o AWS SAM CLI**

1. Para verificar se você já tem AWS SAMCLI instalado, execute o seguinte:

   ```
   sam --version
   ```

1. Para instalar o AWS SAMCLI, consulte[Instale o AWS SAM CLI](install-sam-cli.md).

1. Para atualizar uma versão instalada do AWS SAMCLI, consulte[Atualizar o AWS SAM CLI](manage-sam-cli-versions.md#manage-sam-cli-versions-upgrade).

**Instalado o .NET Core CLI**

1. Para fazer download e instalar a .NET Core CLI, consulte [Download .NET](https://dotnet.microsoft.com/download) do website da Microsoft.

1. *Para obter mais informações sobre a CLI do.NET Core, consulte [.NET Core CLI](https://docs.aws.amazon.com/lambda/latest/dg/csharp-package-cli.html) no AWS Lambda Guia do Desenvolvedor*.

**Instale o Amazon.Lambda.Tools .NET Core Global Tool**

1. Execute este comando: .

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

1. Se você já tiver a ferramenta instalada, certifique-se de que esteja usando a versão mais recente com o seguinte comando:

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

1. Para obter mais informações sobre a ferramenta global Amazon.Lambda.Tools .NET Core, consulte o repositório Extensions [AWS for](https://github.com/aws/aws-extensions-for-dotnet-cli) .NET CLI em. GitHub

**Instalar o Docker**
+ Construir com AOT nativo, precisa que Docker seja instalado. Para obter instruções de instalação, consulte [Instalando o Docker para usar com o AWS SAMCLI](install-docker.md).

## Defina as funções Lambda do.NET 8 em seu modelo AWS SAM
<a name="build-dotnet7-sam-define"></a>

Para definir um. NET8 Função Lambda em seu AWS SAM modelo, faça o seguinte:

1. Execute o seguinte comando em um diretório inicial de sua escolha:

   ```
   sam init
   ```

1. Selecione `AWS Quick Start Templates` para escolher um modelo inicial.

1. Escolha o modelo `Hello World Example`.

1. Escolha não usar o runtime e o tipo de pacote mais populares inserindo `n`.

1. Em runtime, escolha `dotnet8`.

1. Em tipo de pacote, escolha `Zip`.

1. Em modelo inicial, escolha `Hello World Example using native AOT`.

**Instalar o Docker**
+ Construir com AOT nativo, precisa que Docker seja instalado. Para obter instruções de instalação, consulte [Instalando o Docker para usar com o 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 a `Event` propriedade de um `AWS::Serverless::Function` é definida como`Api`, mas a `RestApiId` propriedade não é especificada, AWS SAM gera o `AWS::ApiGateway::RestApi` CloudFormation recurso.

## Crie seu aplicativo com o AWS SAMCLI
<a name="build-dotnet7-sam-build"></a>

 No diretório raiz do seu projeto, execute o comando `sam build` para começar a criar sua aplicação. Se a propriedade `PublishAot` tiver sido definida no arquivo de projeto do .NET 8, a CLI do AWS SAM será criada com a compilação AOT nativa. Para saber mais sobre a propriedade `PublishAot`, consulte [Implantação nativa de AOT](https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/) na documentação *.NET* da Microsoft.

Para criar a sua função, AWS SAM CLI invoca a CLI do .NET Core CLI, que usa a ferramenta Amazon.Lambda.Lambda.Tools .NET Core Global.

**nota**  
Ao criar, se um arquivo `.sln` existir no mesmo diretório ou no diretório principal do seu projeto, o diretório que contém o arquivo `.sln` será montado no contêiner. Se um arquivo `.sln` não for encontrado, somente a pasta do projeto será montada. Portanto, se você estiver criando um aplicativo de vários projetos, verifique se o arquivo `.sln` está localizado na propriedade.

## Saiba mais
<a name="build-dotnet7-learn-more"></a>

Para obter mais informações sobre a criação de funções do Lambda com .NET 8, consulte [Introdução ao runtime do .NET 8 para o AWS Lambda](https://aws.amazon.com/blogs/compute/introducing-the-net-8-runtime-for-aws-lambda/).

Para obter uma referência do comando **sam build**, consulte [sam build](sam-cli-command-reference-sam-build.md).