Lambda の OS 専用ランタイムを使用する状況 - AWS Lambda

Lambda の OS 専用ランタイムを使用する状況

Lambda は Java、Python、Node.js、.NET、Ruby のマネージドランタイムを提供しています。マネージドランタイムとして使用できないプログラミング言語で Lambda 関数を作成するには、OS 専用ランタイム (provided ランタイムファミリー) を使用します。OS 専用ランタイムの主な使用例は次の 3 つです。

  • ネイティブアヘッドオブタイム (AOT) コンパイル: Go、Rust、C++ などの言語は、実行可能なバイナリにネイティブにコンパイルされるため、専用の言語ランタイムは必要ありません。これらの言語に必要なのは、コンパイルされたバイナリを実行できる OS 環境だけです。Lambda OS 専用ランタイムを使用して、.NET ネイティブ AOT と Java GraalVM ネイティブでコンパイルされたバイナリをデプロイすることもできます。

    バイナリには、ランタイムインターフェイスクライアントを含める必要があります。ランタイムインターフェイスクライアントは カスタムランタイムに Lambda ランタイム API を使用する を呼び出して関数呼び出しを取得し、次に関数ハンドラーを呼び出します。Lambda は Go.NET Native AOTC++Rust (実験的) 用のランタイムインターフェイスクライアントを提供しています。

    バイナリは Linux 環境用に、関数に使用する予定のものと同じ命令セットアーキテクチャ (x86_64 または arm64) でコンパイルする必要があります。

  • サードパーティランタイム: PHP 用の Bref や Swift 用の Swift AWS Lambda ランタイムなどの既製のランタイムを使用して Lambda 関数を実行できます。

  • カスタムランタイム: Lambda がマネージドランタイムを提供していない言語または言語バージョン (Node.js 19 など) 用に独自のランタイムを構築できます。詳細については、「AWS Lambda 用カスタムランタイムの構築」を参照してください。これは OS 専用ランタイムでは最も稀なユースケースです。

Lambda は以下の OS 専用 ランタイムをサポートします。

名前 識別子 オペレーティングシステム 廃止日 関数の作成をブロックする 関数の更新をブロックする

OS 専用ランタイム

provided.al2023

Amazon Linux 2023

スケジュールされていません

スケジュールされていません

スケジュールされていません

OS 専用ランタイム

provided.al2

Amazon Linux 2

スケジュールされていません

スケジュールされていません

スケジュールされていません

Amazon Linux 2023 (provided.al2023) ランタイムには、デプロイのフットプリントが小さいことや、glibc などのライブラリのバージョンが更新されていることなど、Amazon Linux 2 に比べていくつかの利点があります。

provided.al2023 ランタイムは、Amazon Linux 2 のデフォルトのパッケージマネージャーである yum ではなく、dnf をパッケージマネージャーとして使用します。provided.al2023provided.al2 の違いの詳細については、AWS コンピューティングブログの「Introducing the Amazon Linux 2023 runtime for AWS Lambda」を参照してください。