aws cliを自作しています。AWSの中身を理解するためにAPIを叩きまくろうと思ってです。Pythonのboto3を使っています。Pythonの練習でもあります。おかげでかはわかりませんが、前よりもずっとAWS触りやすくなりました。
自作ツールではAWSのリソースの閲覧に特化して、いちいちヘルプを見なくても使えることを目指しています。
aws cliで感じてること
aws cliは help を見れば使い方がわかりますが、サブコマンドごとにいちいちヘルプを見ないといけません。またパラメータが非常に多いサブコマンドもあり、ヘルプを見ながらコマンドを打っていくのがつらいです。こんな長いコマンドはなかなかすらすら打てるようにはならないです。
# とても長い覚えられないコマンドの例
$ aws cloudwatch get-metric-statistics --namespace AWS/Lambda --metric-name Duration \
--dimensions 'Name=FunctionName,Value=xxxx' --start-time ... ... ...
慣れたらすらすらできるようになるのだろうか。APIと直接対応しているので、APIを把握していればいいんでしょうけど。
この長いコマンドにたどり着くにはこんな道のり。
# cloudwatchのAPIを探す
$ aws cloudwatch help
# それっぽいのを見つけた。get-metric-statistics だな
$ aws cloudwatch get-metric-statistics help
# パラメータがいっぱいあってたいへんだ・・・
# 日時はどういうフォーマットだろう
# periodとかどう書くんだ
# いっぱいググる
$ aws cloudwatch get-metric-statistics --namespace AWS/Lambda --metric-name Duration --start-time xxxx --end-time xxxx --period xxxx
At least one of the parameters Statistics and ExtendedStatistics must be specified.
# え、必須パラメータがたりないのか・・・
# Statisticsってどう指定するのか、もう一度ヘルプを見る
$ aws cloudwatch get-metric-statistics help
$ aws cloudwatch get-metric-statistics --namespace AWS/Lambda --metric-name Duration --start-time xxxx --end-time xxxx --period xxxx --statistics xxxx
# やっとできた
# けど本当はdimensionも指定したい。どう書くのやら
自作ツールで目指しているもの
自作のツールではこうなります。
※boto3というコマンド名は仮称です。こういう名前のコマンドが一般に存在するわけではありません
# lambdaのメトリックスを見たいので、まずはlambdaと打つ
# (cloudwatchからでもたどれます)
$ boto3 lambda
functions
layers
# このように表示されたら、見たいものを選んで、パラメータに追加して再実行する
# 見たいメトリックスは関数に紐づくので今回はfunctionsを選ぶ
$ boto3 lambda functions
xxxx
yyyy
# 関数の一覧が出てくるので、この中から見たい関数を選ぶ
$ boto3 lambda functions xxxx
code
configuration
metrics
# この中から見たいものを選ぶ
$ boto3 lambda functions xxxx metrics
duration
errors
invocations
throttles
# この中から見たいものを選ぶ
$ boto3 lambda functions xxxx metrics duration
# see-also: aws cloudwatch get-metric-statistics --namespace AWS/Lambda --metric-name Duration --dimensions Name=FunctionName,Value=xxxx --start-time 2019-10-10T13:03:00 --end-time 2019-10-11T13:03:00 --period 60 --statistics Average --output text
2019-10-10T13:03:00+00:00 1713.59 Milliseconds
2019-10-10T13:04:00+00:00 1736.76 Milliseconds
...
# 見たいものが見れました。
細かいパラメータをいじって詳細を見たいのであれば、上の # see-also:
で表示される本家aws cliを叩けばよいです。本家aws cliの必要なパラメータが全部出ているので、これをいじるだけなら楽です。
以上。