はじめに
AWS LambdaでLTSである.NET10がランタイムサポートされました。
https://aws.amazon.com/jp/about-aws/whats-new/2026/01/aws-lambda-dot-net-10/
AWS Lambdaでは.NETの以前のLTSである.NET8のランタイムサポートの予定を以下のようにしています。
| イベント | 予定日 |
|---|---|
| 廃止日 | 2026/11/10 |
| 関数の作成をブロック | 2026/12/10 |
| 関数の更新をブロック | 2027/1/11 |
このためAWS Lambdaで.NET8を利用しているユーザーは早期に.NET10に移行する必要があります。
やったこと
開発環境にVisual Studio 2026をインストール(※Visual Studioを使う場合)
.NET10がサポートされているVisual Studioのバージョンは18.0以降となり、18.0とはVisual Studio 2026を指します。Visual Studio 2022は正式サポートされないため、素直にVisual Studio 2026をインストールしました。軽量なアプリ開発であれば、VS Code + C# Dev Kit + .NET 10 SDKでも良いかと思います。
ターゲットフレームワークの変更
プロジェクトファイルのターゲットフレームワークを変更します。
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
aws-lambda-tools-defaults.jsonの修正
AWS Toolkit for Visual Studioのテンプレートを使っている場合は、こちらのファイルがあるはずなので修正。
- "framework": "net8.0",
+ "framework": "net10.0",
function-runtimeを指定している場合は以下も修正が必要です。
- "function-runtime": "dotnet8",
+ "function-runtime": "dotnet10",
SAMテンプレートの修正
SAMテンプレートを使っている場合は以下の通り修正します。
- "Runtime": "dotnet8",
+ "Runtime": "dotnet10",
buildspec.ymlの修正
以下で最新の.NET10 SDKのバージョンを確認します。
.NET 10.0 のダウンロード
https://dotnet.microsoft.com/ja-jp/download/dotnet/10.0
※2026/3/16時点では10.0.201だったので以降は10.0.201の前提で進めます。
buildspec.ymlのruntime-versionsで10.0.201を指定します。
version: 0.2
phases:
install:
runtime-versions:
- dotnet: 8.0
+ dotnet: 10.0.201
この対応は暫定対応となります。
現在はCodeBuildのAWS公式のDocker Imageでは.NET10対応が行われていませんので10.0のようなマイナーバージョンまでの指定はエラーとなります。
カスタムランタイムバージョン指定により10.0.201のような形でパッチバージョンまで指定することで、.NET10をインストールすることができます。ただしこの場合、内部のソースをみれば分かりますが、個別に指定バージョンのダウンロード、インストール等の処理が動くことになるため、少し時間がかかります。私が試したときはglobal.jsonの作成まで含め17秒程度かかりました。CodeBuild公式のDocker Imageが対応された場合は、そちらを使うようにした方が処理は速いかと思います。
CodeBuildでSPALの利用
.NET6から8に変更した際、同時にCodeBuildのベースOSがAmazonLinux2からAmazonLinux2023になった影響で、yumからdnfとなり、EPELが使えなくなりました。このため、私の場合、各種パッケージを個別にインストールしていました。2025/11/18に、EPELの代替となるSPALがリリースされ、こちらを適用することで、dnfでインストールできるパッケージを拡張することができます。
+ dnf install -y spal-release
AWS が Supplementary Packages for Amazon Linux を発表
https://aws.amazon.com/jp/about-aws/whats-new/2025/11/supplementary-packages-amazon-linux/
インストールできるパッケージは以下のリンク先にリストされています。
https://docs.aws.amazon.com/ja_jp/linux/al2023/release-notes/al-2023-spal-packages.html
Lambdaデプロイコマンドの修正
CodeBuildでlambdaのデプロイコマンドを使っている場合は、以下の通り修正します。コマンドがdeploy-functionの場合も同様です。
- dotnet lambda deploy-serverless --framework "net8.0"
+ dotnet lambda deploy-serverless --framework "net10.0"
NSwag関連の修正
NSwagを利用している場合は、以下の部分を修正。
- <Exec Command="$(NSwagExe_Net80) run nswag.json /variables:ProjectPath=$(MSBuildProjectFullPath)" />
+ <Exec Command="$(NSwagExe_Net100) run nswag.json /variables:ProjectPath=$(MSBuildProjectFullPath)" />
- "runtime": "Net80",
+ "runtime": "Net100",
NuGetパッケージの更新
.NET 10に対応していないバージョンがある場合は更新が必要です。
その他影響箇所の修正
以下のURLを参照し、該当箇所があれば修正。