AWS Lambda Ruby 2.7 の puts の返却値は nil ではなく文字数
メモ。
AWS Lambda でランタイムに Ruby 2.7 を選択する。そのとき puts を使うと返却値は nil ではなくて、出力した文字数が返る。
AWS Lambda
# lambda_handler.rb require 'json' def lambda_handler(event:, context:) ret_puts = puts "foo!!!!!" puts "ret_puts: #{ret_puts.inspect}" #=> 8 ("foo!!!!!".length) { statusCode: 200, body: JSON.generate('Hello from Lambda!') } end
ローカルで irb したとき
2.7.1 :001 > ret_puts = puts "foo!!!!!" foo!!!!! 2.7.1 :002 > puts "ret_puts: #{ret_puts.inspect}" ret_puts: nil => nil