CLI出力結果をJMESPathでできるだけ見やすくするAWS特集AWS-CLI2016年07月26日にしざわ(129)11この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。CLIでは、--queryオプション(JMESPath)を利用して、様々な出力制御を行うことができます。CLIでやるべきか、という議論は一旦置いておいて、今回試してみたことの一部を簡単にご紹介したいと思います。JMESPath関連の記事も充実して来ているので、ぜひ他の記事も合わせてご覧ください。CLIの出力結果を見やすくする(基本編)そのままjsonで出力まずはそのままjsonで出力します。これを順番に整形していきます。]}任意のKeyのみを取り出して表示この辺りは既にご存知の方が多いと思いますが、一部のKeyのValueのみを取り出して表示することができます。Hashで連想配列にすることができます。CLIの出力結果を見やすくする(中級編)そのままjsonで出力まずはそのままjsonで出力します。これを順番に整形していきます。]}出力結果をソートするsort_by関数を使って結果をソートしたい場合があります。"us-west-2"]単一のValueのみなら、sort関数も使えます。Hashで出力した結果をソートすることも可能です。出力したいValueの階層が深い場合等ではこの方法が有効です。"us-west-2"]パイプで渡した連想配列をソートすることも可能です。前から順番にJMESPathを作って行く場合が多いので、この方が読みやすく、書きやすい場合が多いかもしれません。"us-west-2"]出力結果を逆順ソートするreverseを使えば、出力結果をそっくり逆順に並べ替えることもできます。CLIの出力結果を見やすくする(上級編)任意の文字列を出力結果に含めるエスケープ処理が面倒なのですが、バックスラッシュ("\")を使えば任意の文字列を出力結果に含めることができます。これをjoin関数を利用することで、こんな形にしてみるのはどうでしょうか?区切り文字を空文字にして、joinしたい文字列を配列で並べればOKです。textus-west-2で利用できるAZはus-west-2aですus-west-2で利用できるAZはus-west-2bですus-west-2で利用できるAZはus-west-2cですAWSアカウントIDをこんな形でそのまま環境変数に入れられるようにしてみるのも良いかもしれません。応用例は色々と考えられそうです。AWSID=123456789012CSV出力するこのjoin関数では区切り文字と配列を指定できますので、CSV出力することもできます。下記例ではRegioNameでソートした結果を、CSVで出力しています。textap-northeast-1,ec2.ap-northeast-1.amazonaws.comap-northeast-2,ec2.ap-northeast-2.amazonaws.comap-south-1,ec2.ap-south-1.amazonaws.comap-southeast-1,ec2.ap-southeast-1.amazonaws.comap-southeast-2,ec2.ap-southeast-2.amazonaws.comeu-central-1,ec2.eu-central-1.amazonaws.comeu-west-1,ec2.eu-west-1.amazonaws.comsa-east-1,ec2.sa-east-1.amazonaws.comus-east-1,ec2.us-east-1.amazonaws.comus-west-1,ec2.us-west-1.amazonaws.comus-west-2,ec2.us-west-2.amazonaws.comjqの方が簡単というご指摘はもっともです。無理が出てきている気もします。表形式で出力するjoinする配列の先頭と最後に空文字をつけてパイプを区切り文字にすれば、こんな出力もできました。CLIだけでどこまで出力結果を整形できるか、色々と試してみました。無理している感も否めませんが、何度も実行して結果を残したいような情報収集の為のスクリプトでは活用できる場面もあるのではないでしょうか?今回は説明をわかりやすくする為に、シンプルなjsonの結果を対象にしていますが、jsonが複雑で階層が深くなっていくと、苦戦が強いられます。その辺りのTipsも時間があるときに改めてまとめたいと思っています。どこかの誰かのお役に立てば嬉しいです。ELBでできるようになりました。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。本が出ていたので読んでみたところよかったので紹介させていただきます。使いたいときの注意点を書きました。新井成一64最近Sphinxつかってドキュメントを書いてるのですがなかなかイケています。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介255SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健232こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。カフェ店長のオカノです。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。