ネイティブ AOT コンパイルを使用した .NET Lambda 関数の構築 - AWS Serverless Application Model

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ネイティブ AOT コンパイルを使用した .NET Lambda 関数の構築

コール AWS Lambda ドスタート時間を短縮するために、ネイティブ先行 (AOT AWS SAM) コンパイルを利用して、 AWS Serverless Application Model () を使用して .NET 8 AWS Lambda 関数を構築してパッケージ化します。

.NET 8 ネイティブ AOT の概要

従来の .NET Lambda 関数にはコールドスタート時間があり、それがユーザーエクスペリエンスを損ね、システムのレイテンシーやサーバーレスアプリケーションの使用コストに影響を及ぼしていました。.NET ネイティブ AOT コンパイルを使用すると、Lambda 関数のコールドスタート時間を短縮できます。.NET 8 のネイティブ AOT の詳細については、Dotnet GitHub リポジトリ の「ネイティブ AOT の使用」を参照してください。

.NET 8 Lambda 関数 AWS SAM での の使用

(AWS SAM) を使用して .NET 8 Lambda 関数を設定するには、 AWS Serverless Application Model 次の手順を実行します。

  • 開発マシンに前提条件をインストールする。

  • AWS SAM テンプレートで .NET 8 Lambda 関数を定義します。

  • を使用してアプリケーションを構築します AWS SAMCLI。

インストール条件

以下がインストールの前提条件となります。

  • の AWS SAMCLI

  • .NET Core CLI

  • Amazon.Lambda.Tools .NET Core Global Tool

  • Docker

AWS SAM CLI のインストール
  1. AWS SAM CLI がインストールされているかを確認するには、次のコマンドを実行します。

    sam --version
  2. をインストールするには、 AWS SAMCLI「」を参照してくださいAWS SAM CLI のインストール

  3. インストールされている のバージョンをアップグレードするにはCLI、 AWS SAM「」を参照してくださいAWS SAM CLI のアップグレード

.NET Core CLI をインストールする
  1. .NET Core CLI をダウンロードしてインストールするには、Microsoft の Web サイトで「.NET のダウンロード」を参照してください。

  2. NET Core CLI の詳細については、「AWS Lambda 開発者ガイド」の「.NET Core CLI」を参照してください。

Amazon.Lambda.Tools .NET Core Global Tool をインストールする
  1. 次のコマンドを実行します。

    dotnet tool install -g Amazon.Lambda.Tools
  2. ツールがすでにインストールされている場合には、次のコマンドを実行し、最新バージョンを使用していることを確認します。

    dotnet tool update -g Amazon.Lambda.Tools
  3. Amazon.Lambda.Tools .NET Core Global Tool の詳細については、「」の「.AWS NET CLI リポジトリの拡張機能」を参照してください GitHub。

Docker をインストールする

テンプレートで AWS SAM .NET 8 Lambda 関数を定義する

AWS SAM テンプレートで .NET8 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 プロパティが .NET 8 プロジェクトファイルで定義されている場合、 AWS SAMCLIはネイティブ 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 関数の構築の詳細については、「 の .NET 8 ランタイムの紹介 AWS Lambda」を参照してください。

sam build コマンドのリファレンスについては、「sam build」を参照してください。