本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用原生 AOT 编译功能构建.NET Lambda 函数 AWS SAM
使用 AWS Serverless Application Model (AWS SAM) 构建和打包您的.NET 8 AWS Lambda 函数,利用原生 Ahead-of-Time (AOT) 编译来缩短 AWS Lambda 冷启动时间。
主题
.NET 8 本机 AOT 概览
过去,.NET Lambda 函数的冷启动时间会影响无服务器应用程序的用户体验、系统延迟和使用成本。凭借 .NET 本机 AOT 编译,您可以缩短 Lambda 函数的冷启动时间。要了解有关.NET 8 原生 AOT 的更多信息,请参阅在 D otnet 存储库中使用原生 A
AWS SAM 与您的.NET 8 Lambda 函数一起使用
执行以下操作,使用 AWS Serverless Application Model (AWS SAM)配置 .NET 8 Lambda 函数:
-
在开发计算机上安装必备组件。
-
在模板中定义.NET 8 Lambda 函数。 AWS SAM
-
使用构建您的应用程序 AWS SAMCLI。
安装必备组件
以下是所需的先决条件:
-
的 AWS SAMCLI
-
.NET Core CLI
-
Amazon.Lambda.Tools .NET Core Global Tool
-
Docker
安装 AWS SAM CLI
-
要检查是否已安装 AWS SAM CLI,请运行以下命令:
sam --version
-
要安装 AWS SAMCLI,请参阅安装 AWS SAM CLI。
-
要升级的已安装版本 AWS SAMCLI,请参阅正在升级 AWS SAM CLI。
安装 .NET Core CLI
-
要下载和安装 .NET Core CLI,请参阅从 Microsoft 网站下载 .NET
。 -
有关 .NET Core CLI 的更多信息,请参阅《AWS Lambda 开发人员指南》中的 .NET Core CLI。
安装 Amazon.Lambda.Tools .NET Core Global Tool
-
运行以下命令:
dotnet tool install -g Amazon.Lambda.Tools
-
如果您已安装该工具,请确保该工具是使用以下命令的最新版本:
dotnet tool update -g Amazon.Lambda.Tools
-
有关 Amazon.Lambda.Tools .NET 核心全球工具的更多信息,请参阅上的.NE T CLI 存储AWS 库
扩展。 GitHub
安装 Docker
-
使用本机 AOT 进行构建需要安装 Docker。有关安装说明,请参阅安装 Docker 以与 AWS SAM CLI。
在 AWS SAM 模板中定义 .NET 8 Lambda 函数
定义一个. NET8 在您的 AWS SAM 模板中使用 Lambda 函数,请执行以下操作:
-
从您选择的起始目录运行以下命令:
sam init
选择
AWS Quick Start Templates
以选择起始模板。选择
Hello World Example
模板。通过输入
n
,选择不使用最流行的运行时和包类型。对于运行时,选择
dotnet8
。对于包类型,选择
Zip
。对于您的入门模板,选择
Hello World Example using native AOT
。
安装 Docker
-
使用本机 AOT 进行构建需要安装 Docker。有关安装说明,请参阅安装 Docker 以与 AWS SAM CLI。
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
注意
如果的Event
属性设置AWS::Serverless::Function
为Api
,但未指定该RestApiId
属性,则 AWS SAM 生成AWS::ApiGateway::RestApi
AWS CloudFormation 资源。
使用 AWS SAM CLI 构建应用程序
在项目的根目录中,运行sam build
命令以开始构建应用程序。如果 PublishAot
属性已在 .NET 8 项目文件中定义,则 AWS SAM CLI 将使用本机 AOT 编译进行构建。要了解有关 PublishAot
属性的更多信息,请参阅 Microsoft .NET 文档中的本机 AOT 部署
要构建您的函数, AWS SAM CLI 会调用使用 Amazon.Lambda.Tools .NET Core Global Tool 的 .NET Core CLI。
注意
构建时,如果项目所在目录或父目录中存在 .sln
文件,则包含该 .sln
文件的目录将挂载到容器中。如果找不到 .sln
文件,则只会挂载项目文件夹。因此,如果您要构建多项目应用程序,请确保 .sln
文件位于属性中。
了解更多
有关构建 .NET 8 Lambda 函数的更多信息,请参阅 Introducing the .NET 8 runtime for AWS Lambda
有关 sam build 命令的参考,请参阅 sam build。