AWS Lambda ランタイムバージョンについて詳しく知りたいです。Lambda ランタイムとの違いについても詳しく知りたいです。これらの値を特定する方法および、値が Lambda 関数に対してどのような効果を持つかも知りたいです。
簡単な説明
Lambda 関数は、Python 3.12 や Node.js 14.x などの特定のランタイムで実行されます。これらのランタイムは、必要に応じて所有者によって更新されます。Lambda は、各マネージドランタイムが最新のセキュリティアップデート、バグ修正、新機能、パフォーマンス強化、マイナーバージョンリリースのサポートで更新されていることを確認します。その後、これらのランタイムアップデートがランタイムバージョンとして公開されます。Lambda は、これらのランタイム更新を古いランタイムバージョンを使用している Lambda 関数にも適用するため、そのような関数は新しいランタイムバージョンを使用するようになります。
解決策
Lambda ランタイム識別子とLambda ランタイムバージョンの比較
Lambda ランタイム識別子は、Lambda ランタイムバージョンとは別のものです。ランタイム識別子は、nodejs18.x、nodejs20.x、python3.11、python3.12 など、プログラミング言語の明確なメジャーリリースを表します。ランタイムバージョンとは、関数の起動環境用のマイナーランタイムおよびセキュリティパッチを指します。ランタイムバージョンは、個々のランタイムのパッチバージョンを表します。詳細については、「AWS Lambda ランタイム管理コントロールについて」を参照してください。
Lambda ランタイムマイナーバージョン
Lambda ランタイムマイナーバージョンは、Lambda ランタイムバージョンとは別のものです。ランタイムバージョン の ARN を特定するには、次の手順を実行します。
- AWS Lambda コンソールを開きます。
- 関数名を選択します。
- [ランタイム設定] セクションで、[ランタイム管理設定] を選択します。
または、
関数ログでランタイムバージョンの ARN を確認します。
Lambda が関数の新しい起動環境を作成するたびに、次のログが表示されます。
INIT_START Runtime Version: python:3.9.v14 Runtime Version ARN: arn:aws:lambda:eu-south-1::runtime:7b620fc2e66107a1046b140b9d320295811af3ad5d4c6a011fad1fa65127e9e6I
Node.js ベースの Lambda 関数用のランタイムマイナーバージョンを確認するには、次の例のように process.version を使用してバージョンをログに記録します。
console.log('NODE_VERSION', process.version)
Python ベースの Lambda 関数用のランタイムマイナーバージョンを確認するには、次の例のように sys.version を使用してバージョンをログに記録します。
import sys
print (sys.version)
Python の出力例:
3.12: 3.12.5 (main, Sep 9 2024, 14:55:57) [GCC 11.4.1 20230605 (Red Hat 11.4.1-2)]
関連情報
ランタイムバージョンエラーが原因の Lambda 関数エラーをトラブルシューティングする方法を教えてください
ランタイムの更新モード