Lambda のランタイムを変更する方法を教えてください
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
困っていた内容
AWS から 現在使用している Lambda のランタイムを更新するよう通知が来ました。
Lambda のランタイムを更新するために新しいランタイムに変更したいのですが、どのように変更すればよいのか教えてください。
どう対応すればいいの?
Lambda コンソールおよび Lambda の UpdateFunctionConfiguration API を使用して変更できます。
Lambda 関数の .zip ファイルアーカイブとしてのデプロイ - AWS Lambda
新しいランタイムを使用するように関数の設定を更新する場合は、新しいランタイムとの互換性を確保するために関数コードを更新する必要がある場合があります。
やってみた
以下の 5 つのパターンでランタイムを変更してみます。
- Lambda コンソール
- AWS CLI
- CloudFormation
- AWS SDK for JavaScript v3
- AWS SDK for Python (Boto3)
1. Lambda コンソール
検証のために Python 3.10 ランタイムを使用する関数を作成しました。

関数のランタイムを Python 3.13 に変更してみます。
ランタイム設定 > 編集をクリックします。

ランタイムのリストから Python 3.13 を選択します。

他の設定は変更せずに保存をクリックします。

画面上部に「関数 関数名 が正常に更新されました。」と表示され、ランタイムも Python 3.13 に変更されています。

2. AWS CLI
AWS CLI で変更する場合は update-function-configuration コマンドを使用します。
$ aws lambda update-function-configuration \
--function-name test \
--runtime python3.13
{
"FunctionName": "test",
"FunctionArn": "arn:aws:lambda:ap-northeast-1:012345678901:function:test",
"Runtime": "python3.13",
"Role": "arn:aws:iam::012345678901:role/LambdaBasicExecutionRole",
"Handler": "lambda_function.lambda_handler",
"CodeSize": 299,
"Description": "",
"Timeout": 3,
"MemorySize": 128,
"LastModified": "2025-10-22T23:51:34.000+0000",
"CodeSha256": "HAPq9EReJVEC5gLavtc/gyd5vZtd9eiUGF932t0jBxY=",
"Version": "$LATEST",
"TracingConfig": {
"Mode": "PassThrough"
},
"RevisionId": "1e10fc2c-1bb2-4988-a963-4a66a1a46215",
"State": "Active",
"LastUpdateStatus": "InProgress",
"LastUpdateStatusReason": "The function is being created.",
"LastUpdateStatusReasonCode": "Creating",
"PackageType": "Zip",
"Architectures": [
"x86_64"
],
"EphemeralStorage": {
"Size": 512
},
"SnapStart": {
"ApplyOn": "None",
"OptimizationStatus": "Off"
},
"RuntimeVersionConfig": {
"RuntimeVersionArn": "arn:aws:lambda:ap-northeast-1::runtime:fe7a78198cc1037d599c8e576c9b94c4d6b88f8067b86f7d3481b75d9fd76c24"
},
"LoggingConfig": {
"LogFormat": "Text",
"LogGroup": "/aws/lambda/test"
}
}
3. CloudFormation
CloudFormation の場合は AWS::Lambda::Function の Runtime を変更します。
まずは以下のテンプレートで変更前の Python 3.10 ランタイムの関数を作成します。
AWSTemplateFormatVersion: "2010-09-09"
Description: "Python 3.10 Lambda Function"
Resources:
LambdaFunction:
Type: AWS::Lambda::Function
Properties:
FunctionName: test
Runtime: python3.10
Role: arn:aws:iam::012345678901:role/LambdaBasicExecutionRole
Handler: index.lambda_handler
Code:
ZipFile: |
def lambda_handler(event, context):
return {
'statusCode': 200,
'body': 'Hello from Lambda!'
}
CloudFormation で関数を作成した後にランタイムを python3.13 に変更してスタックを更新します。
AWSTemplateFormatVersion: "2010-09-09"
Description: "Python 3.13 Lambda Function"
Resources:
LambdaFunction:
Type: AWS::Lambda::Function
Properties:
FunctionName: test
Runtime: python3.13
Role: arn:aws:iam::012345678901:role/LambdaBasicExecutionRole
Handler: index.lambda_handler
Code:
ZipFile: |
def lambda_handler(event, context):
return {
'statusCode': 200,
'body': 'Hello from Lambda!'
}
既存のテンプレートを置換で更新します。

スタックの更新が完了後にランタイムが変更されていることを Lambda コンソールなどで確認してください。
4. AWS SDK for JavaScript v3
AWS SDK for JavaScript v3 の場合は UpdateFunctionConfigurationCommand を使用します。
import { LambdaClient, UpdateFunctionConfigurationCommand } from "@aws-sdk/client-lambda";
const client = new LambdaClient({ region: "ap-northeast-1" });
export const handler = async (event) => {
const command = new UpdateFunctionConfigurationCommand({
FunctionName: "test",
Runtime: "python3.13",
});
const response = await client.send(command);
return {
statusCode: 200,
body: JSON.stringify({
message: "Function configuration updated",
functionName: response.FunctionName
})
};
};
5. AWS SDK for Python (Boto3)
AWS SDK for Python (Boto3) の場合は update_function_configuration を使用します。
import json
import boto3
client = boto3.client('lambda')
def lambda_handler(event, context):
response = client.update_function_configuration(
FunctionName='test',
Runtime='python3.13'
)
print(json.dumps(response))
return
注意点
Lambda のランタイムを変更する場合には変更後のランタイムとソースコードの互換性があるか開発環境などで十分検証してから変更することをお勧めします。






