大厦。 NET使用原生AOT编译的 Lambda 函数 AWS SAM - AWS Serverless Application Model

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

大厦。 NET使用原生AOT编译的 Lambda 函数 AWS SAM

构建并打包你的. NET AWS Serverless Application Model (AWS SAM) 有 8 个 AWS Lambda 函数,使用 Native Aheadof-Time (AOT) 编译来缩 AWS Lambda 短冷启动时间。

。 NET8 原生AOT概述

从历史上看,。 NETLambda 函数的冷启动时间会影响无服务器应用程序的用户体验、系统延迟和使用成本。用。 NET原生AOT编译,您可以缩短 Lambda 函数的冷启动时间。要了解有关 Native f AOT or 的更多信息。 NET8,请参阅在 Dotnet AOT GitHub 存储库中使用原生

AWS SAM 与你一起使用. NET8 个 Lambda 函数

执行以下操作来配置您的。 NET8 个带有 AWS Serverless Application Model ()AWS SAM的 Lambda 函数:

  • 在开发计算机上安装必备组件。

  • 定义。 NET您的 AWS SAM 模板中有 8 个 Lambda 函数。

  • 使用构建您的应用程序 AWS SAMCLI。

安装必备组件

以下是所需的先决条件:

  • 的 AWS SAMCLI

  • 的。 NET核心 CLI

  • Amazon.Lambda.Tools。 NET核心全球工具

  • Docker

安装 AWS SAM CLI
  1. 要检查是否已安装 AWS SAM CLI,请运行以下命令:

    sam --version
  2. 要安装 AWS SAMCLI,请参阅安装 AWS SAM CLI

  3. 要升级的已安装版本 AWS SAMCLI,请参阅升级 AWS SAM CLI

安装. NET核心 CLI
  1. 要下载并安装. NET核心CLI,参见下载。 NET来自微软的网站。

  2. 有关更多信息。 NET核心CLI,请参阅。 NETAWS Lambda 开发者指南CLI中的核心

安装 Amazon.Lambda.Tools。 NET核心全球工具
  1. 运行以下命令:

    dotnet tool install -g Amazon.Lambda.Tools
  2. 如果您已安装该工具,请确保该工具是使用以下命令的最新版本:

    dotnet tool update -g Amazon.Lambda.Tools
  3. 了解有关 Amazon.Lambda.Tools 的更多信息。 NETCore Global 工具,请参阅 “AWS 扩展”。 NETCLI存储库已打开 GitHub。

安装 Docker

定义。 NET您的模板中有 8 个 Lambda 函数 AWS SAM

要定义. NET8在您的 AWS SAM 模板中使用 Lambda 函数,请执行以下操作:

  1. 从您选择的起始目录运行以下命令::

    sam init
  2. 选择AWS Quick Start Templates以选择起始模板。

  3. 选择 Hello World Example模板。

  4. 通过输入,选择不使用最流行的运行时和软件包类型n

  5. 对于运行时间,请选择dotnet8

  6. 对于包裹类型,请选择Zip

  7. 对于您的入门模板,请选择Hello World Example using native AOT

安装 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

使用 AWS SAM CLI 构建应用程序

在项目根目录中,运行 sam build 以开始构建应用程序。如果PublishAot属性已在您的中定义。 NET8 项目文件, AWS SAMCLI将使用原生AOT编译进行构建。要了解有关该PublishAot属性的更多信息,请参阅 Microsoft 中的本机AOT部署。 NET文档。

要构建您的函数,会 AWS SAMCLI调用。 NET使用 Amazon.Lambda.Tools 的核心CLI。 NET核心全球工具。

注意

构建时,如果项目所在目录或父目录中存在 .sln 文件,则包含该 .sln 文件的目录将挂载到容器中。如果找不到 .sln 文件,则只会挂载项目文件夹。因此,如果您要构建多项目应用程序,请确保 .sln 文件位于属性中。

了解更多信息

有关建筑的更多信息。 NET8 个 Lambda 函数,请参阅简介。 NET8 的运行时间 AWS Lambda

有关 sam build 命令的参考,请参阅 sam build