📝

Lambda でランタイムのマイナーバージョンを確認する方法 (Node.js, Python, Java, Ruby)

2025/01/08に公開

Lambda ランタイムバージョンとランタイム識別子の違いについて | AWS re:Post
上記ナレッジセンターには Node.js と Python に関する例は記載されていましたが、Java と Ruby についても調べてみました。

結論

  • Node.js: process.version で確認可能
  • Python: sys.version で確認可能
  • Java: System.getProperty("java.version") で確認可能
  • Ruby: RUBY_VERSION で確認可能

Node.js

Process | Node.js v23.5.0 Documentation

The process.version property contains the Node.js version string.

index.js
export const handler = async (event) => {
  console.log(process.version)
};
出力結果
v22.11.0

Python

sys --- システム固有のパラメーターと関数 — Python 3.13.1 ドキュメント

sys.version
Python インタプリタのバージョン番号の他、ビルド番号や使用コンパイラなどの情報を示す文字列です。

lambda_function.py
import sys

def lambda_handler(event, context):
    print(sys.version)
出力結果
3.13.0 (main, Oct 11 2024, 11:01:08) [GCC 11.4.1 20230605 (Red Hat 11.4.1-2)]

Java

System (Java 2 プラットフォーム SE v1.4.0)

java.version Java Runtime Environment のバージョン

HelloWorld.java
package com.example;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;

import java.util.HashMap;
import java.util.Map;

public class HelloWorld implements RequestHandler<Map<String, Object>, Map<String, Object>> {

  @Override
  public Map<String, Object> handleRequest(Map<String, Object> input, Context context) {
    Map<String, Object> output = new HashMap<>();
    output.put("Java version", System.getProperty("java.version"));

    return output;
  }
}
出力結果
{
  "Java version": "21.0.5"
}

Ruby

Object::RUBY_VERSION (Ruby 3.4 リファレンスマニュアル)

RUBY_VERSION -> String[permalink][rdoc][edit]
Ruby のバージョンを表す文字列。

lambda_function.rb
def lambda_handler(event:, context:)
    puts RUBY_VERSION
end
出力結果
3.3.5

まとめ

Lambda でランタイムのマイナーバージョンを確認する方法について調べてみました。
どなたかの参考になれば幸いです。

参考資料

Discussion