[アップデート] AWS LambdaがRuby 2.7をサポートしました!

AWS LambdaがランタイムとしてRuby 2.7をサポートしましたので、さっそく試してみました。
2020.02.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。サービスグループの武田です。

AWS LambdaがランタイムとしてRuby 2.7をサポートしました!

AWS Lambda now supports Ruby 2.7

さっそく試してみました。

Ruby 2.7のこと

Ruby 2.7は昨年(2019年)の12月25日にリリースされました。表面的な変更としてはパターンマッチの導入とキーワード引数の変更でしょうか。REPLがめっちゃ強くなったので、興味がある方は試してみてください。

Ruby 2.7.0 リリース

Lambdaで動かしてみた

それではマネジメントコンソールでLambdaのページを開き、新しい関数を作成します。作成時のウィザードでランタイムを選択しますが、プルダウンにRuby 2.7が見つかりますね。

実行するプログラムですが、せっかくなのでパターンマッチングを試してみましょう。次のコードを貼り付けます。

lambda_function.rb

require 'json'

def lambda_handler(event:, context:)
    json = <<END
    {
      "name": "Alice",
      "age": 30,
      "children": [{ "name": "Bob", "age": 2 }]
    }
END
    
    case JSON.parse(json, symbolize_names: true)
    in {name: "Alice", children: [{name: "Bob", age: age}]}
      return { statusCode: 200, body: JSON.generate(age) }
    end
    { statusCode: 200, body: JSON.generate('Hello from Lambda!') }
end

準備ができたら適当なテストイベントを設定してテストを実行してみます。

ちゃんと実行されました!

まとめ

Lambdaがサポートしているひとつ前のバージョンはRuby 2.5です。2.5のEOL(End of Life)はまだ未定ですが、早ければ2021年3月になると思われます。直前になって慌てるようなことのないようにしたいですね。