本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用原生 AOT 編譯來建置 .NET Lambda 函數
使用 AWS Serverless Application Model (AWS SAM) 構建和打包您的 .NET 8 AWS Lambda 函數,利用本機提前時間(AOT)編譯來改善冷啟動時間。 AWS Lambda
主題
.NET 8 原生 AOT 概述
從過去看,.NET Lambda 函數具有冷啟動時間,這會影響無伺服器應用程式的使用者體驗、系統延遲和使用成本。使用 .NET 原生 AOT 編譯,您可以改善 Lambda 函數的冷啟動時間。若要深入瞭解 .NET 8 的原生 AOT,請參閱在 Dot GitHub net 儲存庫中使用原生 AOT
搭 AWS SAM 配 .NET 8 Lambda 函數使用
請執行下列動作,以使用 AWS Serverless Application Model (AWS SAM) 設定 .NET 8 Lambda 函數:
-
在您的開發電腦上安裝必要條件。
-
在 AWS SAM 範本中定義 .NET 8 Lambda 函數。
-
使用建置您的應用程式 AWS SAMCLI。
安裝先決條
以下是必要的先決條件:
-
該 AWS SAMCLI
-
網路核 CLI
-
亞馬遜. Lambda. 工具. NET 核心全球工具
-
Docker
安裝 AWS SAMCLI
-
若要檢查您是否已 AWS SAMCLI安裝,請執行下列命令:
sam --version
-
若要安裝 AWS SAMCLI,請參閱安裝 AWS SAMCLI。
-
若要升級已安裝的版本 AWS SAMCLI,請參閱升級 AWS SAMCLI。
安裝. NET 核心 CLI
-
若要下載並安裝 .NET 核心 CLI,請參閱從微軟的網站下載 .NET
。 -
如需有關 .NET 核心 CLI 的詳細資訊,請參閱AWS Lambda 開發人員指南中的 .NET 核心 CLI。
安裝亞馬遜. Lambda. 工具. NET 核心全球工具
-
執行以下命令:
dotnet tool install -g Amazon.Lambda.Tools
-
如果您已安裝此工具,您可以使用以下命令,確保使用的是最新版本。
dotnet tool update -g Amazon.Lambda.Tools
-
如需有關亞馬遜網路核心全域工具的詳細資訊,請參閱上的 .NET CLI 存放庫的AWS 擴充功能
。 GitHub
安裝 Docker
-
使用本機 AOT 構建,需Docker要安裝。如需安裝指示,請參閱安裝泊塢視窗以搭配使用 AWS SAMCLI。
在 AWS SAM 範本中定義 .NET 8 個 Lambda 函數
若要在 AWS SAM 範本中定義 .NET8 Lambda 函數,請執行下列動作:
-
從您選擇的起始目錄執行下列命令:
sam init
選取
AWS Quick Start Templates
此選項可選擇起始範本。選擇
Hello World Example
範本。輸入以選擇不使用最常用的執行階段和套件類型
n
。對於執行階段,請選擇
dotnet8
。針對封裝類型,請選擇
Zip
。對於您的初學者範本,請選擇
Hello World Example using native AOT
。
安裝 Docker
-
使用本機 AOT 構建,需Docker要安裝。如需安裝指示,請參閱安裝泊塢視窗以搭配使用 AWS SAMCLI。
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 SAMCLI
從項目的根目錄中運行sam build
以開始構建應用程序。如果PublishAot
屬性已在 .NET 8 項目文件中定義,則 AWS SAMCLI將使用本機 AOT 編譯構建。若要深入了解PublishAot
屬性,請參閱 Microsoft 的 .NET 文件中的原生 AOT 部署
為了構建你的函數, AWS SAMCLI調用 .NET 核心 CLI 它使用亞馬遜. Lambda. 工具. NET 核心全局工具。
注意
構建時,如果.sln
文件存在於項目的同一目錄或父目錄中,則包含該.sln
文件的目錄將被掛載到容器中。如果找不到.sln
檔案,則僅會裝載專案資料夾。因此,如果您要建置多專案應用程式,請確定.sln
檔案所在的屬性。
進一步了解
如需有關建置 .NET 8 Lambda 函數的詳細資訊,請參
如需指sam build令的參考,請參閱sam build。