Criando funções do.NET Lambda com compilação AOT nativa no AWS SAM - AWS Serverless Application Model

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á.

Criando funções do.NET Lambda com compilação AOT nativa no AWS SAM

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.

Visão geral da AOT nativa do .NET 8

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 a AOT nativa para .NET 8, consulte Usando a AOT nativa no repositório GitHub Dotnet.

Usando AWS SAM com suas funções Lambda do.NET 8

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

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
  2. Para instalar o AWS SAMCLI, consulteInstale o AWS SAM CLI.

  3. Para atualizar uma versão instalada do AWS SAMCLI, consulteAtualizando o AWS SAM CLI.

Instalado o .NET Core CLI
  1. Para fazer download e instalar a .NET Core CLI, consulte Download .NET do website da Microsoft.

  2. Para obter mais informações sobre a CLI do.NET Core, consulte .NET Core CLI no AWS Lambda Guia do Desenvolvedor.

Instale o Amazon.Lambda.Tools .NET Core Global Tool
  1. Execute o seguinte comando:

    dotnet tool install -g Amazon.Lambda.Tools
  2. 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
  3. Para obter mais informações sobre a ferramenta global Amazon.Lambda.Tools .NET Core, consulte o repositório Extensions AWS for .NET CLI em. GitHub

Instalar o Docker

Defina as funções do Lambda com .NET 8 no modelo do AWS SAM

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
  2. Selecione AWS Quick Start Templates para escolher um modelo inicial.

  3. Escolha o modelo Hello World Example.

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

  5. Em runtime, escolha dotnet8.

  6. Em tipo de pacote, escolha Zip.

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

Instalar o Docker
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 comoApi, mas a RestApiId propriedade não é especificada, AWS SAM gera o AWS::ApiGateway::RestApi AWS CloudFormation recurso.

Crie seu aplicativo com o AWS SAMCLI

No diretório raiz do seu projeto, execute o sam build comando para começar a criar seu aplicativo. 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 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

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.

Para obter uma referência do comando sam build, consulte sam build.