Lambda ランタイム - AWS Lambda

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

Lambda ランタイム

Lambda は、ランタイムの使用により複数の言語をサポートします。ランタイムは、Lambda と関数の間の呼び出しイベント、コンテキスト情報、レスポンスを中継する言語固有の環境を提供します。Lambda が提供するランタイムを使用することも、独自に構築することもできます。

プログラミング言語のメジャーリリースにはそれぞれ別個のランタイムがあり、固有のランタイム識別子 (nodejs20.x または python3.12 など) を持っています。新しいメジャー言語バージョンを使用するように関数を設定するには、ランタイム識別子を変更する必要があります。AWS Lambda はメジャーバージョン間の下位互換性を保証できないため、これは顧客が主導権を持つ操作です。

コンテナーイメージとして定義された関数の場合は、そのコンテナーイメージを作成する際に、ランタイムと Linux ディストリビューションを選択します。ランタイムを変更するには、新しいコンテナーイメージを作成します。

デプロイパッケージに .zip ファイルアーカイブを使用する場合は、関数の作成時にランタイムを選択します。このランタイムは、関数の設定を更新することで変更できます。ランタイムは、Amazon Linux ディストリビューションの 1 つとペアを構成しています。基盤となる実行環境は、関数コードからアクセスできる追加のライブラリと環境変数を提供します。

Lambda は、実行環境で関数を呼び出します。実行環境では、関数の実行に必要なリソースを管理するセキュアで分離されたランタイム環境が提供されます。Lambda は以前の呼び出し (使用可能な場合) から実行環境を再利用しますが、新しい実行環境を作成することもできます。

Lambda で GoRust などの他の言語を使用するには、OS 専用ランタイムを使用してください。Lambda 実行環境には、呼び出しイベントの取得とレスポンスの送信を行うためのランタイムインターフェイスが搭載されています。カスタムランタイムを関数コードと共に実装するか、レイヤーに実装することで、他の言語をデプロイできます。

サポートされている Lambda ランタイムと廃止予定日リストを以下の表に示します。ランタイムが廃止された後も、一定期間中は関数の作成と更新が可能です。詳細については、「非推奨化後のランタイムサポート」を参照してください。この表は、現在予定されているランタイム廃止予定日を示しています。これらの日付は計画上の目的で提供されており、変更されることがあります。

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

Node.js 20

nodejs20.x

3.362.0

Amazon Linux 2023

Node.js 18

nodejs18.x

3.362.0

Amazon Linux 2

Node.js 16

nodejs16.x

2.1374.0

Amazon Linux 2

2024 年 6 月 12 日

2024 年 7 月 15 日

2024 年 8 月 15 日

Python 3.12

python3.12

boto3-1.28.72 botocore-1.31.72

Amazon Linux 2023

「Python 3.11」

python3.11

boto3-1.27.1 botocore-1.30.1

Amazon Linux 2

「Python 3.10」

python3.10

boto3-1.26.90 botocore-1.29.90

Amazon Linux 2

Python 3.9

python3.9

boto3-1.26.90 botocore-1.29.90

Amazon Linux 2

Python 3.8

python3.8

boto3-1.26.90 botocore-1.29.90

Amazon Linux 2

2024 年 10 月 14 日

2024 年 11 月 13 日

2025 年 1 月 7 日

Java 21

java21

Amazon Linux 2023

Java 17

java17

Amazon Linux 2

Java 11

java11

Amazon Linux 2

Java 8

java8.al2

Amazon Linux 2

.NET 8

dotnet8

Amazon Linux 2023

.NET 7 (コンテナのみ)

dotnet7

Amazon Linux 2

2024 年 5 月 14 日

.NET 6

dotnet6

Amazon Linux 2

2024 年 11 月 12 日

2025 年 1 月 11 日

2025 年 2 月 11 日

Ruby 3.2

ruby3.2

3.1.0

Amazon Linux 2

OS 専用ランタイム

provided.al2023

Amazon Linux 2023

OS 専用ランタイム

provided.al2

Amazon Linux 2

注記

新しいリージョンでは、Lambda は今後 6 か月以内に廃止される予定のランタイムをサポートしません。

Lambda は、パッチの適用とマイナーバージョンリリースのサポートにより、マネージドランタイムと対応するコンテナベースイメージを最新の状態に保ちます。詳細については、「Lambda ランタイムの更新」を参照してください。

Lambda は Go 1.x ランタイムが廃止された後も Go プログラミング言語を引き続きサポートします。詳細については、「AWS コンピュートブログ」の「Migrating AWS Lambda functions from the Go1.x runtime to the custom runtime on Amazon Linux 2」を参照してください。

サポートされているすべての Lambda ランタイムは、x86_64 アーキテクチャと arm64 アーキテクチャの両方をサポートします。

新しいランタイムリリース

リリースが、言語のリリースサイクルの長期サポート (LTS) フェーズに達したときにのみ Lambda でその言語の新バージョン用マネージドランタイムが提供されます。例えば、Node.js のリリースサイクルでは、リリースが Active LTS フェーズに達したときです。

リリースは長期サポート段階に達するまでは開発段階にあり、重大な変更が加えられる可能性があります。Lambda はデフォルトでランタイム更新を自動的に適用するため、ランタイムバージョンに重大な変更があった場合、関数が期待どおりに動作しなくなる可能性があります。

Lambda は、LTS リリースが予定されていない言語バージョン用のマネージドランタイムを提供していません。

今後のランタイムリリース予定

次のリストは、今後の Lambda ランタイムのリリース開始予定月を示しています。リストの日程は参考であり、変更される可能性があります。

  • Ruby 3.3 - 2024 年 3 月

  • Python 3.13 - 2024 年 11 月

  • Node.js 22 - 2024 年 11 月

ランタイムの非推奨化に関するポリシー

Lambda ランタイム .zip ファイルアーカイブは、メンテナンスとセキュリティの更新の対象となるオペレーティングシステム、プログラミング言語、およびソフトウェアライブラリの組み合わせを中心に構築されています。Lambda の標準的な非推奨化に関するポリシーは、ランタイムの主要コンポーネントのいずれかに対するコミュニティ長期サポート (LTS) 期間が満了し、セキュリティアップデートが利用できなくなった時点でランタイムを非推奨にするというものです。たいていの場合、これは言語ランタイムが対象ですが、オペレーティングシステム (OS) で LTS の満了を迎えることでランタイムが非推奨化される場合もあります。

ランタイムが非推奨化されると、Lambda はそのランタイムにセキュリティパッチを適用しなくなり、そのランタイムを使用する関数はテクニカルサポートの対象ではなくなります。

ランタイムのアップグレードと廃止の管理について詳しくは、以下のセクションおよび、「AWS コンピュートブログ」の「Managing AWS Lambda runtime upgrades」を参照してください。

重要

Lambda では、ランタイムがサポートする言語バージョンのサポート期間満了後も Lambda ランタイムの非推奨化を一定期間延長することがあります。この期間中、Lambda ではランタイム OS にのみセキュリティパッチを適用します。Lambda では、サポート期間を満了したプログラミング言語ランタイムにセキュリティパッチを適用しません。

Node.js 16 ランタイムの非推奨化

お客様からのフィードバックにお応えし、AWS では Node.js 16 ランタイムの非推奨化をコミュニティ LTS の終了から 6 か月後まで延期しています。Node.js 16 ランタイムは、「サポート対象ランタイム」の表に記載されている日付に非推奨化される予定です。前の注記で述べたように、2023 年 9 月 11 日の LTS 終了から非推奨化実施までの期間については、Lambda はランタイム OS にのみパッチを適用します。この期間中は、言語ランタイムに対してセキュリティパッチが適用されることはありません。

Node.js 16 の非推奨化を遅らせることで、このランタイムを使用するお客様は Node.js 18 をスキップし、関数を Node.js 20 に直接移行できるようになります。

非推奨化後のランタイムサポート

ランタイムが廃止されてから少なくとも 30 日間は、そのランタイムを使用して新しい Lambda 関数を作成できます。廃止の 30 日後から、Lambda によって新しい関数の作成がブロックされます。

ランタイムが廃止されてから少なくとも 60 日間は、既存の関数の関数コードを更新できます。廃止の 60 日後から、Lambda によって既存の関数の関数コードの更新がブロックされます。

関数の作成と更新を継続できる正確な期間は決まっていないことに注意してください。この期間は、廃止日および AWS リージョン ごとに異なる場合があります。関数の作成と更新がブロックされる具体的な日付は、このページの最初のセクションにあるサポートされるランタイムの表に記載されています。Lambda は、この表に記載されている日付より前に関数の作成や更新のブロックを行うことはありません。

ランタイムが廃止された後も、関数を無期限に呼び出すことができます。ただし、AWS は、引き続き関数がセキュリティパッチを受け取り、テクニカルサポートの利用資格を維持するためにも、サポートされているランタイムへの関数の移行を強くお勧めします。ランタイムが廃止された後も、関数の設定を更新すると、サポートされている新しいランタイムバージョンを使用できます。

ランタイムの廃止通知を受け取る

ランタイムが廃止日に近づくと、AWS アカウント 内にそのランタイムを使用している関数があると、Lambda からメールアラートが送信されます。通知は AWS Health Dashboard と AWS Trusted Advisor にも表示されます。

  • メール通知の受信:

    Lambda は、ランタイムが廃止される少なくとも 180 日前にメールアラートを送信します。メールには、そのランタイムを使用するすべての関数の $LATEST バージョンが記載されています。影響を受ける関数バージョンの全リストを確認するには、Trusted Advisor を使用するか、AWS CLI を使用して、影響を受ける機能を一覧表示します。 をご覧ください。

    Lambda は、AWS アカウント の主要アカウント連絡先にメール通知を送信します。アカウントのメールアドレスの表示または更新については、AWS 全般のリファレンスの「連絡先情報の更新」を参照してください。

  • AWS Health Dashboard で通知を受信する:

    AWS Health Dashboard は、ランタイムが廃止される少なくとも 180 日前に通知を表示します。通知は [アカウントの状態] ページの [その他の通知] に表示されます。通知の [影響を受けるリソース] タブには、ランタイムを使用するすべての関数の $LATEST バージョンが一覧表示されます。

    注記

    影響を受ける関数バージョンの、最新の全リストを確認するには、Trusted Advisor を使用するか、AWS CLI を使用して、影響を受ける機能を一覧表示します。 をご覧ください。

    AWS Health Dashboard 通知は、影響を受けるランタイムが廃止されてから 90 日後に表示されなくなります。

  • AWS Trusted Advisor を使用する

    Trusted Advisor は、ランタイムが廃止される 180 日前に通知を表示します。通知は [セキュリティ] ページに表示されます。影響を受ける関数のリストは、[非推奨のランタイムを使用する AWS Lambda 関数] に表示されます。この関数リストには $LATEST バージョンと公開済みバージョンの両方が表示され、関数の現在の状態を反映して自動的に更新されます。

    Trusted Advisor コンソールの [設定] ページから、Trusted Advisor の毎週のメール通知を有効にできます。

AWS CLI を使用して、影響を受ける機能を一覧表示します。

Trusted Advisor を使用すると、予定されているランタイム廃止の影響を受ける関数のライブリストを確認できるほか、AWS Command Line Interface (AWS CLI) を使用して特定のランタイムを使用するすべての関数バージョンを一覧表示することもできます。このリストを生成するには、次のコマンドを実行します。RUNTIME_IDENTIFIER を廃止予定のランタイムの名前に置き換えて、お使いの AWS リージョン を選択してください。関数の $LATEST バージョンだけを一覧表示するには、--function-version ALL をコマンドから省略します。

aws lambda list-functions --function-version ALL --region us-east-1 --output text --query "Functions[?Runtime=='RUNTIME_IDENTIFIER'].FunctionArn"
ヒント

コマンド例では、特定の AWS アカウント の us-east-1 リージョン内の関数を一覧表示します。このコマンドを、アカウントが機能している各リージョンと各 AWS アカウント で繰り返す必要があります。

AWS Config の高度なクエリ機能を使用して、影響を受けるランタイムを使用するすべての関数を一覧表示することもできます。このクエリは関数の $LATEST バージョンのみを返しますが、1 つのコマンドでクエリを集約して、すべてのリージョンの複数の AWS アカウント にある関数を一覧表示できます。詳細については、「AWS Config デベロッパーガイド」の「Querying the Current Configuration State of AWS Auto Scaling Resources」を参照してください。

非推奨のランタイム

次のランタイムは、サポート終了に達しています。

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

Java 8

java8

Amazon Linux

2024 年 1 月 8 日

2024 年 2 月 8 日

2024 年 3 月 12 日

Go 1.x

go1.x

Amazon Linux

2024 年 1 月 8 日

2024 年 2 月 8 日

2024 年 3 月 12 日

OS 専用ランタイム

provided

Amazon Linux

2024 年 1 月 8 日

2024 年 2 月 8 日

2024 年 3 月 12 日

Ruby 2.7

ruby2.7

Amazon Linux 2

2023 年 12 月 7 日

2024 年 1 月 9 日

2024 年 2 月 8 日

Node.js 14

nodejs14.x

Amazon Linux 2

2023 年 12 月 4 日

2024 年 1 月 9 日

2024 年 2 月 8 日

「Python 3.7」

python3.7

Amazon Linux

2023 年 12 月 4 日

2024 年 1 月 9 日

2024 年 2 月 8 日

.NET Core 3.1

dotnetcore3.1

Amazon Linux 2

2023 年 4 月 3 日

2023 年 4 月 3 日

2023 年 5 月 3 日

Node.js 12

nodejs12.x

Amazon Linux 2

2023 年 3 月 31 日

2023 年 3 月 31 日

2023 年 4 月 30 日

Python 3.6

python3.6

Amazon Linux

2022 年 7 月 18 日

2022 年 7 月 18 日

2022 年 8 月 29 日

.NET 5 (コンテナのみ)

dotnet5.0

Amazon Linux 2

2022 年 5 月 10 日

.NET Core 2.1

dotnetcore2.1

Amazon Linux

2022 年 1 月 5 日

2022 年 1 月 5 日

2022 年 4 月 13 日

Node.js 10

nodejs10.x

Amazon Linux 2

2021 年 7 月 30 日

2021 年 7 月 30 日

2022 年 2 月 14 日

Ruby 2.5

ruby2.5

Amazon Linux

2021 年 7 月 30 日

2021 年 7 月 30 日

2022 年 3 月 31 日

Python 2.7

python2.7

Amazon Linux

2021 年 7 月 15 日

2021 年 7 月 15 日

2022 年 5 月 30 日

Node.js 8.10

nodejs8.10

Amazon Linux

2020 年 3 月 6 日

2020 年 3 月 6 日

Node.js 4.3

nodejs4.3

Amazon Linux

2020 年 3 月 5 日

2020 年 3 月 5 日

Node.js 4.3 Edge

nodejs4.3-edge

Amazon Linux

2020 年 3 月 5 日

2019 年 4 月 30 日

Node.js 6.10

nodejs6.10

Amazon Linux

2019 年 8 月 12 日

2019 年 8 月 12 日

.NET Core 1.0

dotnetcore1.0

Amazon Linux

2019 年 6 月 27 日

2019 年 7 月 30 日

.NET Core 2.0

dotnetcore2.0

Amazon Linux

2019 年 5 月 30 日

2019 年 5 月 30 日

Node.js 0.10

nodejs

Amazon Linux

2016 年 10 月 31 日

ほとんどの場合、言語バージョンまたはオペレーティングシステムのサポート終了日は事前に通知されます。以下のリンク先には、Lambda がマネージドランタイムとしてサポートする各言語のサポート終了スケジュールが記載されています。

言語およびフレームワークのサポートポリシー