[アップデート] AWS CLI 経由で AWS Lambda で Python 3.15 と Node.js 26 のランタイムサポートが追加されていたので使ってみた

[アップデート] AWS CLI 経由で AWS Lambda で Python 3.15 と Node.js 26 のランタイムサポートが追加されていたので使ってみた

AWS Lambda に Python 3.15 と Node.js 26 のランタイムサポートが追加されました。実際にデプロイして動作確認した結果を紹介します。
2026.08.02

いわさです。

AWS Lambda ではマネージドランタイムとして各言語の新しいバージョンが定期的にサポートされます。
これまで Python は 3.14、Node.js は 24.x が最新のマネージドランタイムでした。

https://dev.classmethod.jp/articles/sam-deploy-python314/

先日、AWS CLI v2 の 2.36.12 で Python 3.15 (python3.15) と Node.js 26 (nodejs26.x) のランタイムサポートが Lambda に追加されました。

https://github.com/aws/aws-cli/commit/2d20b5c88bc4a1bc8d6ef5cd98483ebc553acdb0

今回こちらを確認してみたので紹介します。

実際に確認してみる

では早速 AWS CLI から新しいランタイムを使って Lambda 関数をデプロイし、動作確認してみましょう。

Python 3.15

以下のサンプル関数を用意しました。

lambda_function.py
import json
import sys

def lambda_handler(event, context):
    response = {
        "statusCode": 200,
        "body": json.dumps(
            {
                "message": "Hello from Lambda with Python 3.15!",
                "python_version": sys.version,
                "platform": sys.platform,
            },
            ensure_ascii=False,
        ),
    }
    return response

python3.15 ランタイムを指定して関数を作成します。

$ aws lambda create-function \
  --function-name hoge-python315-test \
  --runtime python3.15 \
  --role "arn:aws:iam::123456789012:role/lambda-execution-role" \
  --handler lambda_function.lambda_handler \
  --zip-file fileb://function.zip \
  --region ap-northeast-1

{
    "FunctionName": "hoge-python315-test",
    "FunctionArn": "arn:aws:lambda:ap-northeast-1:123456789012:function:hoge-python315-test",
    "Runtime": "python3.15",
    "Role": "arn:aws:iam::123456789012:role/lambda-execution-role",
    "Handler": "lambda_function.lambda_handler",
    "CodeSize": 400,
    "State": "Pending",
    "StateReason": "The function is being created.",
    "Architectures": ["x86_64"],
    "RuntimeVersionConfig": {
        "RuntimeVersionArn": "arn:aws:lambda:ap-northeast-1::runtime:2e14c5085f4fe2ecbd647bd1d7cb48e2bbbf1f3c1c7c6fe9690ef8326e6aa041"
    }
}

東京リージョンで問題なく作成できました。
少し待ってから invoke してみます。

$ aws lambda invoke \
  --function-name hoge-python315-test \
  --region ap-northeast-1 \
  --cli-binary-format raw-in-base64-out \
  --payload '{}' \
  response.json

{
    "StatusCode": 200,
    "ExecutedVersion": "$LATEST"
}

レスポンスの中身を確認してみます。

$ cat response.json | python3 -m json.tool
{
    "statusCode": 200,
    "body": "{\"message\": \"Hello from Lambda with Python 3.15!\", \"python_version\": \"3.15.0a8 (main, Jul 10 2026, 15:56:44) [GCC 11.5.0 20240719 (Red Hat 11.5.0-5)]\", \"platform\": \"linux\"}"
}

Python 3.15.0a8(アルファ版)が動いていることが確認できます。
なるほど、現時点ではまだアルファリリースのバージョンが使われているようですね。

コンソールのテスト画面からも実行してみました。

3B56CA28-D39E-4231-B19E-AFC2415D8DD8.png

Node.js 26

Node.js 26 の関数も同様にデプロイしてみます。

index.mjs
export const handler = async (event) => {
  const response = {
    statusCode: 200,
    body: JSON.stringify({
      message: "Hello from Lambda with Node.js 26!",
      nodeVersion: process.version,
      platform: process.platform,
    }),
  };
  return response;
};
$ aws lambda create-function \
  --function-name hoge-nodejs26-test \
  --runtime nodejs26.x \
  --role "arn:aws:iam::123456789012:role/lambda-execution-role" \
  --handler index.handler \
  --zip-file fileb://function.zip \
  --region ap-northeast-1

{
    "FunctionName": "hoge-nodejs26-test",
    "FunctionArn": "arn:aws:lambda:ap-northeast-1:123456789012:function:hoge-nodejs26-test",
    "Runtime": "nodejs26.x",
    "Role": "arn:aws:iam::123456789012:role/lambda-execution-role",
    "Handler": "index.handler",
    "CodeSize": 352,
    "State": "Pending",
    "StateReason": "The function is being created.",
    "Architectures": ["x86_64"],
    "RuntimeVersionConfig": {
        "RuntimeVersionArn": "arn:aws:lambda:ap-northeast-1::runtime:fe18f09ebd9c2809304015fce927adfc9407a9e562c4846b6e088428a1563f83"
    }
}

こちらも東京リージョンで作成できました。invoke してみます。

$ aws lambda invoke \
  --function-name hoge-nodejs26-test \
  --region ap-northeast-1 \
  --cli-binary-format raw-in-base64-out \
  --payload '{}' \
  response.json

{
    "StatusCode": 200,
    "ExecutedVersion": "$LATEST"
}

$ cat response.json | python3 -m json.tool
{
    "statusCode": 200,
    "body": "{\"message\":\"Hello from Lambda with Node.js 26!\",\"nodeVersion\":\"v26.1.0\",\"platform\":\"linux\"}"
}

Node.js v26.1.0 で動作していることが確認できます。

コンソールのテスト画面からも実行してみました。

DDBDF035-9C40-4436-9532-008C81F3E38C.png

こちらはログ出力に WARNING: This is a preview runtime version and should not be used for production workloads. という警告が出ていますね。
プレビューランタイムであることが明示されており、本番利用は推奨されていないことがわかります。

マネジメントコンソールでの表示

なお、マネジメントコンソールの関数作成画面では、本日時点ではランタイム選択のドロップダウンに Python 3.15 や Node.js 26 は表示されませんでした。

9F5A9C4B-1EB2-4BE8-ABA5-76CB2ECF4DE0.png

ただし、AWS CLI でデプロイした関数は関数一覧画面で「Python 3.15 (Preview)」「Node.js 26.x (Preview)」と Preview 表記で認識されています。

AC2B2CF1-1C95-4951-8EC5-47DE3F9418C0_4_5005_c.jpeg

コンソールの新規作成 UI からは選択できないものの、API 経由でデプロイした関数はちゃんとランタイムが認識されており、Preview ステータスとして扱われているみたいですね。

さいごに

本日は AWS Lambda に Python 3.15 と Node.js 26 のランタイムサポートが追加されたので確認してみました。

AWS CLI 経由では東京リージョンで問題なくデプロイ・実行できることが確認できました。
Python 3.15 は現時点でアルファ版(3.15.0a8)、Node.js 26 は v26.1.0 が使われています。
コンソール上では Preview 表記で、Node.js 26 側ではログに本番利用を推奨しない旨の WARNING も出力されます。
Lambda の新しいランタイムはだいたい API 側が先行して利用可能になり、コンソールの UI に反映されるまで少しリードタイムがある印象です。少し待てばコンソールからも選択できるようになると思います。正式な GA アナウンスが出た段階でまた確認してみたいと思います。

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事