【EOLに対処せよ】Lambdaのランタイムやバージョンをお手軽に検索できるツール発見【lamver】

どもども、ゲーミングPCの購入を無限に悩んでいる僕です。


AWS屈指の最強サーバレスサービス「AWS Lambda(以下Lambda)」は皆さん利用されているでしょうか。僕はヘビーユーザーです。


サーバーをプロビジョニング、管理せずにコードを実行できる手軽さは誰もがやみつきになることでしょう。しかし、長く使用していく上で当然困ったことも発生してきます。

・ランタイムに使用しているバージョンがEOLとなり、Lambdaのサポート対象からも除外される
・手軽さゆえに大量に作成してしまい、いざ整理するときにコンソールでは視認性が悪く作業が困難


この辺りはLambaを運用していく上での宿命ともいえるでしょう。この辺りの解決をサポートしてくれる便利ツールを見つけましたので紹介したいと思います。

lamver

その名もlamver!Go製Lambdaランタイム/バージョン検索ツールです。Githubリポジトリは以下です(こっそりスターつけました)。
https://github.com/go-to-k/lamver

製作者様のブログは以下です。
https://go-to-k.hatenablog.com/entry/lamver

上記ブログにあるとおり、リージョン、ランタイム、バージョン、関数名の一部でフィルタリングしてLambdaの一覧を出力できるツールです。リージョンを横断して検索できるのは大変ありがたいですね。

また、このツールのいいところはなんといってもシンプルに利用できるところだと思います。早速試してみましょう。

インストールと使用方法

製作者様のブログにもあるとおり、このツールは1コマンド+対話式で利用します。


まずはインストールしましょう。インストールコマンドは各環境に合わせて実行してください。

Homebrew(MacOSの場合)

$ brew install go-to-k/tap/lamver

ソースビルド(Go環境が必要)

$ git clone https://github.com/go-to-k/lamver.git
$ cd lamver
$ make install


コマンド入力方法は以下です。

$ lamver [-p <profile>] [-r <default region>] [-o <output file path>] [-k <keyword for function name>]


オプションについて軽く説明します。詳細は製作者様ブログを参照ください。

・-p 使用するAWSプロファイルを指定できる
・-r デフォルトリージョンの決定、コマンド実行過程で対話形式で指定可能
・-o CSV出力先ファイルパスの指定
・-k キーワード指定による関数のフィルタリング

何はともあれ早速利用してみましょう!

試してみる

早速以下のようなコマンドを実行してみましょう。

$ lamver -p <プロファイル名(指定しなくてもよい)>

すると対話が開始され、まずは検索対象とするリージョンを聞かれます。上下でカーソルを移動し対象とするリージョンをスペースキーで選択してください。選択が完了したらエンターキーを押しましょう。

? Select regions you want to search.
  [Use arrows to move, space to select, <right> to all, <left> to none, type to filter]
> [x]  ap-northeast-1
  [ ]  ap-northeast-2
  [ ]  ap-northeast-3
  [ ]  ap-south-1
  [ ]  ap-southeast-1
  [ ]  ap-southeast-2
...

OK? (Y/n) y

次に調査対象とするランタイムを選択します。今回は今年EOLとなったPython3.7をランタイムとする関数があるか調べてみます。

...
  [ ]  python2.7
  [ ]  python3.6
> [x]  python3.7
  [ ]  python3.8
  [ ]  python3.9
  [ ]  python3.10
  [ ]  python3.11
...

OK? (Y/n) y

最後にフィルタリングするキーワードの指定ができます。今回は特に指定しないので何も入力せずエンターキーを押します。

Filter a keyword of function names(case-insensitive):

すると以下のように条件に該当する関数が表示されます。

+-----------+----------------+-----------------------------------------------------------------+------------------------------+
|  RUNTIME  |     REGION     |                          FUNCTIONNAME                           |         LASTMODIFIED         |
+-----------+----------------+-----------------------------------------------------------------+------------------------------+
| python3.7 | ap-northeast-1 | sample-function | xxxx-xx-xxTxx:xx:xx.xxx+0000 |
+-----------+----------------+-----------------------------------------------------------------+------------------------------+
INF 1 counts hit!

どうでしょう、非常に扱いやすく有用なツールであることがわかります!

まとめ

今回はGo製Lambdaランタイム/バージョン検索ツールlamverを紹介させていただきました。


もちろんこのツールで出来ることはAWS CLIでも実行可能ですが、コマンドを用意する手間が省けることと初学者でも扱えるシンプルさからこちらのツールを積極的に利用しても良さそうに思います。


AWS LambdaのランタイムサポートはランタイムのEOLと同時に新規作成ができなくなり、その後1~2ヵ月で更新もできなくなります。また、気軽に作成した関数は雪だるま式に膨れ上がり、気づけば簡単に整理できなくなっているという状況になることもよくあります。


lamverを利用して快適なLambdaライフを過ごしてみてはいかがでしょうか。


最後まで読んでいただきありがとうございました。

AWS

Posted by CY