AWS CLI の 出力形式は JSON, TEXT, TABLE (v2 は YAMLも)
AWS CLI v2 リリース関連を読んでたら、出力形式に YAML も追加とありました。
あれ、出力形式ってJSONだけじゃないのかと気づいて調べてみた。
デフォルト JSON の他、TEXT と TABLEもあり、個人の好みに合わせた選択が可能とわかりました。
出力形式 --output
こちらのエントリーに紹介されていた Lambda 関数一覧を取得するコマンドを、出力形式をかけて試してみます。
TEXT
- --output text
shell 使いの方には、このオプションでは?
# aws lambda list-functions --region ap-northeast-1 --query "Functions[].[FunctionName]" --output text based-s3-get-object get_pet_by_id register_pet register_pet_nodejs register_pet2 register_pet3
TABLE
- --output table
コンソールで全体像を把握するときに便利?
MySQLクライアント の デフォルト出力形式は、こいつですね。
# aws lambda list-functions --region ap-northeast-1 --query "Functions[].[FunctionName]" --output table ------------------------- | ListFunctions | +-----------------------+ | based-s3-get-object | | get_pet_by_id | | register_pet | | register_pet_nodejs | | register_pet2 | | register_pet3 | +-----------------------+
色もついて見やすいですね。
JSON
- --output json
jq と組み合わせて、色々できる。そんなイメージの出力形式。
# aws lambda list-functions --region ap-northeast-1 --query "Functions[].[FunctionName]" --output json [ [ "based-s3-get-object" ], [ "get_pet_by_id" ], [ "register_pet" ], [ "register_pet_nodejs" ], [ "register_pet2" ], [ "register_pet3" ] ]
こちらのエントリーとか参考に、ポチポチ使ってます。
まだ便利に使えてるとは言えないけど、なれると好きな事できそう(とゴールをおいて使ってる)
ちなみに --query オプションで使う構文も JSON 扱う JMESPath になるようです。
OPTIONS
...
--query (string)A JMESPath query to use in filtering the response data.
でも jq とは構文一緒じゃないらしいので、ちょっと学習は必要そうですね (JSON に慣れろってことと理解w)
YAML (v2 から)
- --output yaml
僕の中だと、JSONよりも全体像が把握しやすい。というぐらいのイメージ。
あ、Ansibleやるときに初めて使ったなぁ。
$ aws --version aws-cli/2.0.8 Python/3.7.3 Linux/4.19.76-linuxkit botocore/2.0.0dev12 $ aws lambda list-functions --region ap-northeast-1 --query "Functions[].[FunctionName]" --output yaml - - based-s3-get-object - - get_pet_by_id - - register_pet - - register_pet_nodejs - - register_pet2 - - register_pet3
あと yaml-stream というのもあるとのことです。