Posted at

【AWS】lambda のめんどくさい棚卸しを楽にするワンライナー

lamdaってお手軽にガンガン作れるので、気がつくとめっちゃ数が増えてませんか?

そうするとだんだんと管理がめんどくさくなって、いざ棚卸しってタイミングでGUIからポチポチ一覧を出すのはしんどいですよね。

なので、もしそんな状況になったら、このワンライナーで幸せになれるかも知れません。

aws clijq で実現しています。手元のMacBookで検証しました。

今回は、"関数名, ランタイム, 最終更新日時, 説明" を抜いて表示していますが、お好みで修正して欲しい情報だけ出力していただければと思います。


ワンライナー

# CSV形式で標準出力するパターン

$ aws lambda list-functions --region ap-northeast-1 | jq '.Functions[] | { "関数名": .FunctionName , "ランタイム": .Runtime, "最終更新日時": .LastModified, "説明": .Description }' | jq -rs '(.[0]|keys_unsorted),map([.[]])[]|@csv'
"関数名","ランタイム","最終更新日時","説明"
"MyFunction-110M4HMNJGFGE","nodejs8.10","2018-11-21T11:22:37.400+0000","This is lambda function"
"AwesomeFunction-XWRELL62AGVT","nodejs8.10","2017-11-17T06:26:50.152+0000","This is awesome function"

# TSV形式でクリップボードに出力するパターン
$ aws lambda list-functions --region ap-northeast-1 | jq '.Functions[] | { "関数名": .FunctionName , "ランタイム": .Runtime, "最終更新日時": .LastModified, "説明": .Description }' | jq -rs '(.[0]|keys_unsorted),map([.[]])[]|@tsv' | pbcopy


あとはファイルにリダイレクトしたり、Google Spread Sheetにコピペするだけで、簡単に一覧表にできます。

補足として上記ではjqコマンドで表示項目を絞ってますが、aws cliのqueryオプションを使っても同様のことができます。必要最低限の情報でよいのであれば、こちらのほうがおすすめです。


queryパラメータを使ったワンライナー

$ aws lambda list-functions --query 'Functions[].[ FunctionName, Runtime, LastModified, Description ]' --region ap-northeast-1 --output table > lambda-list.txt


応用すればEC2などの棚卸し用の資料も簡単に作れるので、ぜひご活用ください:smiley: