Lambda ランタイム
Lambda は、ランタイムの使用により複数の言語をサポートします。ランタイムは、Lambda と関数の間の呼び出しイベント、コンテキスト情報、レスポンスを中継する言語固有の環境を提供します。Lambda が提供するランタイムを使用することも、独自に構築することもできます。
プログラミング言語のメジャーリリースにはそれぞれ別個のランタイムがあり、固有のランタイム識別子 (nodejs20.x
または python3.12
など) を持っています。新しいメジャー言語バージョンを使用するように関数を設定するには、ランタイム識別子を変更する必要があります。AWS Lambda はメジャーバージョン間の下位互換性を保証できないため、これは顧客が主導権を持つ操作です。
コンテナーイメージとして定義された関数の場合は、そのコンテナーイメージを作成する際に、ランタイムと Linux ディストリビューションを選択します。ランタイムを変更するには、新しいコンテナーイメージを作成します。
デプロイパッケージに .zip ファイルアーカイブを使用する場合は、関数の作成時にランタイムを選択します。このランタイムは、関数の設定を更新することで変更できます。ランタイムは、Amazon Linux ディストリビューションの 1 つとペアを構成しています。基盤となる実行環境は、関数コードからアクセスできる追加のライブラリと環境変数を提供します。
Lambda は、実行環境で関数を呼び出します。実行環境では、関数の実行に必要なリソースを管理するセキュアで分離されたランタイム環境が提供されます。Lambda は以前の呼び出し (使用可能な場合) から実行環境を再利用しますが、新しい実行環境を作成することもできます。
Lambda で Go や Rust などの他の言語を使用するには、OS 専用ランタイムを使用してください。Lambda 実行環境には、呼び出しイベントの取得とレスポンスの送信を行うためのランタイムインターフェイスが搭載されています。カスタムランタイムを関数コードと共に実装するか、レイヤーに実装することで、他の言語をデプロイできます。
ランタイムのサポート
サポートされている Lambda ランタイムと廃止予定日リストを以下の表に示します。ランタイムが廃止された後も、一定期間中は関数の作成と更新が可能です。詳細については、「非推奨化後のランタイムの使用について」を参照してください。この表は、現在予定されているランタイム廃止予定日を示しています。これらの日付は計画上の目的で提供されており、変更されることがあります。
ランタイムのサポート | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
名前 | 識別子 | オペレーティングシステム | 廃止日 | 関数の作成をブロックする | 関数の更新をブロックする | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Node.js 20 |
|
Amazon Linux 2023 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Node.js 18 |
|
Amazon Linux 2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.12 |
|
Amazon Linux 2023 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.11 |
|
Amazon Linux 2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.10 |
|
Amazon Linux 2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.9 |
|
Amazon Linux 2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Python 3.8 |
|
Amazon Linux 2 |
2024 年 10 月 14 日 |
2025 年 2 月 28 日 |
2025 年 3 月 31 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Java 21 |
|
Amazon Linux 2023 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Java 17 |
|
Amazon Linux 2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Java 11 |
|
Amazon Linux 2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Java 8 |
|
Amazon Linux 2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.NET 8 |
|
Amazon Linux 2023 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.NET 6 |
|
Amazon Linux 2 |
2024 年 12 月 20 日 |
2025 年 2 月 28 日 |
2025 年 3 月 31 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ruby 3.3 |
|
Amazon Linux 2023 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ruby 3.2 |
|
Amazon Linux 2 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OS 専用ランタイム |
|
Amazon Linux 2023 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OS 専用ランタイム |
|
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 のリリースサイクル
リリースは長期サポート段階に達するまでは開発段階にあり、重大な変更が加えられる可能性があります。Lambda はデフォルトでランタイム更新を自動的に適用するため、ランタイムバージョンに重大な変更があった場合、関数が期待どおりに動作しなくなる可能性があります。
Lambda は、LTS リリースが予定されていない言語バージョン用のマネージドランタイムを提供していません。
次のリストは、今後の Lambda ランタイムのリリース開始予定月を示しています。リストの日程は参考であり、変更される可能性があります。
-
Python 3.13 - 2024 年 11 月
-
Node.js 22 - 2024 年 11 月
ランタイムの非推奨化に関するポリシー
Lambda ランタイム .zip ファイルアーカイブは、メンテナンスとセキュリティの更新の対象となるオペレーティングシステム、プログラミング言語、およびソフトウェアライブラリの組み合わせを中心に構築されています。Lambda の標準的な非推奨化に関するポリシーは、ランタイムの主要コンポーネントのいずれかに対するコミュニティ長期サポート (LTS) 期間が満了し、セキュリティアップデートが利用できなくなった時点でランタイムを非推奨にするというものです。たいていの場合、これは言語ランタイムが対象ですが、オペレーティングシステム (OS) で LTS の満了を迎えることでランタイムが非推奨化される場合もあります。
ランタイムが非推奨になると、AWS はご使用のランタイムにセキュリティパッチを適用しなくなります。これにより、そのランタイムを使用する関数はテクニカルサポートの対象ではなくなります。このような非推奨のランタイムは、「現状のまま」の保証なしで提供されるため、バグ、エラー、欠陥、またはその他の脆弱性が含まれている可能性があります。
ランタイムのアップグレードと廃止の管理について詳しくは、以下のセクションおよび、「AWS コンピュートブログ」の「Managing AWS Lambda runtime upgrades
重要
Lambda では、ランタイムがサポートする言語バージョンのサポート期間満了後も Lambda ランタイムの非推奨化を一定期間延長することがあります。この期間中、Lambda ではランタイム OS にのみセキュリティパッチを適用します。Lambda では、サポート期間を満了したプログラミング言語ランタイムにセキュリティパッチを適用しません。
責任共有モデル
Lambda は、サポートされているすべてのマネージドランタイムとコンテナベースイメージに関するセキュリティ更新のキュレーションと発行に対する責任を担います。デフォルトでは、Lambda はマネージドランタイムを使用してこれらの更新を関数に自動的に適用します。デフォルトの自動ランタイム更新設定が変更されている場合は、「責任共有モデル」を参照してください。コンテナー イメージを使用してデプロイされた関数の場合、最新のベースイメージから関数のコンテナイメージを再構築し、コンテナイメージを再デプロイする責任はお客様が担います。
ランタイムが非推奨になると、 Lambda のマネージドランタイムとコンテナベースイメージの更新はサポートされなくなります。サポートされているランタイムまたはベースイメージの使用における関数のアップグレードは、お客様の責任で行ってください。
いずれの場合も、依存関係を含め、関数コードへの更新の適用について、お客様が責任を持ちます。責任共有モデルに基づくお客様の責任は、次の表にまとめられています。
ランタイムライフサイクルフェーズ | Lambda の責任 | お客様の責任 |
---|---|---|
サポートされているマネージドランタイム |
セキュリティパッチやその他の更新プログラムを使用して、ランタイムを定期的に更新します。 ランタイム更新をデフォルトで自動的に適用します (デフォルト以外の動作については、「ランタイム更新モード」を参照してください)。 |
依存関係を含む関数コードを更新して、セキュリティの脆弱性に対処します。 |
サポートされているコンテナイメージ | セキュリティパッチやその他の更新プログラムを使用して、コンテナベースイメージを定期的に更新します。 |
依存関係を含む関数コードを更新して、セキュリティの脆弱性に対処します。 最新のベースイメージを使用して、コンテナイメージを定期的に再構築して再デプロイします。 |
マネージドランタイムが非推奨になる予定日に近づいています |
ドキュメント、AWS Health Dashboard、E メール、および Trusted Advisor を使用して、ランタイムが非推奨になる前にお客様に通知します。 非推奨になると、弊社はランタイムを更新する責任を負いません。 |
ランタイムの非推奨情報に関する Lambda ドキュメント、AWS Health Dashboard、E メール、または Trusted Advisor をモニタリングします。 以前のランタイムが非奨励になる前に、サポートされているランタイムバージョンに関数をアップグレードします。 |
コンテナイメージが非推奨になる予定日に近づいています |
コンテナイメージを使用する関数では、非推奨に関する通知はありません。 コンテナベースイメージの更新は、非推奨時に終了します。 |
イメージの非推奨に伴い、非推奨に関するスケジュールの確認と、ベースイメージのサポートされるバージョンへのアップグレードを行ってください。 |
非推奨化後のランタイムの使用について
ランタイムが非推奨になると、AWS はご使用のランタイムにセキュリティパッチを適用しなくなります。これにより、そのランタイムを使用する関数はテクニカルサポートの対象ではなくなります。このような非推奨のランタイムは、「現状のまま」の保証なしで提供されるため、バグ、エラー、欠陥、またはその他の脆弱性が含まれている可能性があります。非推奨のランタイムを使用する関数は、パフォーマンスが低下したり、証明書の有効期限切れなどの問題が発生したりして、正しく動作しなくなる可能性があります。
ランタイムが廃止されてから少なくとも 30 日間は、そのランタイムを使用して新しい Lambda 関数を作成できます。廃止の 30 日後から、Lambda によって新しい関数の作成がブロックされます。
ランタイムが非奨励になってから少なくとも 60 日間は、既存の関数の関数コードを更新できます。非推奨になってから 60 日経過後は、Lambda によって既存の関数の関数コードと設定の更新がブロックされます。
注記
一部のランタイムでは、AWS は block-function-create および block-function-update の日付が非推奨になってから通常の 30 日および 60 日を超えて延期しています。AWS は顧客のフィードバックに応えてこの変更を行い、関数をアップグレードする時間を増やしました。ランタイムのサポート および 非推奨のランタイム の表を参照し、ランタイムの日付を確認してください。
ランタイムが非奨励になった後も、関数を更新すると、サポートされている新しいランタイムバージョンを使用できます。60 日が経過すると非推奨のランタイムに戻すことができないため、本番環境にランタイムの変更を適用する前に、関数が新しいランタイムバージョンで動作することをテストする必要があります。ロールバックによる安全なデプロイを有効にするには、関数のバージョンとエイリアスを使用することをお勧めします。
関数の作成と更新を継続できる正確な期間は決まっていないことに注意してください。この期間は、廃止日および AWS リージョン ごとに異なる場合があります。関数の作成と更新がブロックされる具体的な日付は、このページの最初のセクションにあるサポートされるランタイムの表に記載されています。Lambda は、この表に記載されている日付より前に関数の作成や更新のブロックを行うことはありません。
ランタイムが廃止された後も、関数を無期限に呼び出すことができます。ただし、AWS は、引き続き関数がセキュリティパッチを受け取り、テクニカルサポートの利用資格を維持するためにも、サポートされているランタイムへの関数の移行を強くお勧めします。
ランタイムの廃止通知を受け取る
ランタイムが廃止日に近づくと、AWS アカウント 内にそのランタイムを使用している関数があると、Lambda からメールアラートが送信されます。通知は AWS Health Dashboard と AWS Trusted Advisor にも表示されます。
-
メール通知の受信:
Lambda は、ランタイムが廃止される少なくとも 180 日前にメールアラートを送信します。メールには、そのランタイムを使用するすべての関数の $LATEST バージョンが記載されています。影響を受ける関数バージョンの全リストを確認するには、Trusted Advisor を使用するか、非推奨のランタイムを使用する Lambda 関数に関するデータを取得する をご覧ください。
Lambda は、AWS アカウント の主要アカウント連絡先にメール通知を送信します。アカウントのメールアドレスの表示または更新については、AWS 全般のリファレンスの「連絡先情報の更新」を参照してください。
-
AWS Health Dashboard で通知を受信する:
AWS Health Dashboard は、ランタイムが廃止される少なくとも 180 日前に通知を表示します。通知は [アカウントの状態] ページの [その他の通知]
に表示されます。通知の [影響を受けるリソース] タブには、ランタイムを使用するすべての関数の $LATEST バージョンが一覧表示されます。 注記
影響を受ける関数バージョンの、最新の全リストを確認するには、Trusted Advisor を使用するか、非推奨のランタイムを使用する Lambda 関数に関するデータを取得する をご覧ください。
AWS Health Dashboard 通知は、影響を受けるランタイムが廃止されてから 90 日後に表示されなくなります。
-
AWS Trusted Advisor の使用
Trusted Advisor は、ランタイムが廃止される 180 日前に通知を表示します。通知は [セキュリティ]
ページに表示されます。影響を受ける関数のリストは、[非推奨のランタイムを使用する AWS Lambda 関数] に表示されます。この関数リストには $LATEST バージョンと公開済みバージョンの両方が表示され、関数の現在の状態を反映して自動的に更新されます。 Trusted Advisor コンソールの [設定]
ページから、Trusted Advisor の毎週のメール通知を有効にできます。
非推奨のランタイム
次のランタイムは、サポート終了に達しています。
非推奨のランタイム | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
名前 | 識別子 | オペレーティングシステム | 廃止日 | 関数の作成をブロックする | 関数の更新をブロックする | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Node.js 16 |
nodejs16.x
|
Amazon Linux 2 |
2024 年 6 月 12 日 |
2025 年 2 月 28 日 |
2025 年 3 月 31 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.NET 7 (コンテナのみ) |
dotnet7
|
Amazon Linux 2 |
2024 年 5 月 14 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Java 8 |
java8
|
Amazon Linux |
2024 年 1 月 8 日 |
2024 年 2 月 8 日 |
2025 年 2 月 28 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Go 1.x |
go1.x
|
Amazon Linux |
2024 年 1 月 8 日 |
2024 年 2 月 8 日 |
2025 年 2 月 28 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OS 専用ランタイム |
provided
|
Amazon Linux |
2024 年 1 月 8 日 |
2024 年 2 月 8 日 |
2025 年 2 月 28 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ruby 2.7 |
ruby2.7
|
Amazon Linux 2 |
2023 年 12 月 7 日 |
2024 年 1 月 9 日 |
2025 年 2 月 28 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Node.js 14 |
nodejs14.x
|
Amazon Linux 2 |
2023 年 12 月 4 日 |
2024 年 1 月 9 日 |
2025 年 2 月 28 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
「Python 3.7」 |
python3.7
|
Amazon Linux |
2023 年 12 月 4 日 |
2024 年 1 月 9 日 |
2025 年 2 月 28 日 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
.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 がマネージドランタイムとしてサポートする各言語のサポート終了スケジュールが記載されています。
言語およびフレームワークのサポートポリシー
-
Node.js – github.com
-
Python – devguide.python.org
-
Ruby – www.ruby-lang.org
-
Java – www.oracle.com
と Corretto のよくある質問 -
Go – golang.org
-
.NET — dotnet.microsoft.com