lamdaってお手軽にガンガン作れるので、気がつくとめっちゃ数が増えてませんか?
そうするとだんだんと管理がめんどくさくなって、いざ棚卸しってタイミングでGUIからポチポチ一覧を出すのはしんどいですよね。
なので、もしそんな状況になったら、このワンライナーで幸せになれるかも知れません。
aws cli
と jq
で実現しています。手元の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などの棚卸し用の資料も簡単に作れるので、ぜひご活用ください