[新機能]AWS CLIにhistoryコマンドが追加されたので試してみた #reinvent
こんにちは。サービスグループの武田です。
re:Inventのキーノートでは怒涛の新サービスラッシュにより、現地に送り込んだ弊社の精鋭もさすがにノックダウン寸前です。
その中で新サービスの影に隠れそうな新機能、AWS CLIのcli_historyというものが目に入ったので、さっそく試してみました。
公開直前に先を越されていたことに気がつきましたが、気にせず公開します。
一緒にこちらもどうぞ。
AWS CLIのバージョン
aws history
は1.13.0
からサポートされました。
先ほどpip
でアップデートしたところ1.14.0
がインストールされたので、最新版にしておけば大丈夫です。
aws-cli/CHANGELOG.rst at 1.13.0 · aws/aws-cli · GitHub
cli_historyの有効化
デフォルトではcli_history
は使えません。
次のコマンドを実行して有効化しましょう。
1 2 3 4 5 6 7 | $ aws configure set cli_history enabled $ cat ~/.aws /config [default] output = json region = ap-northeast-1 cli_history = enabled |
configファイルにcli_history = enabled
が追加されていればOKです。もちろん直接ファイルを修正しても大丈夫です。
試してみる
実際に履歴として記録されるのは、cli_historyを有効化して以降のコマンドとなります。そのため、有効化前に実行していたコマンドは履歴にはありません。
また現在cli_historyに有効なコマンドは次の2つです。
- list
- show
というわけで、適当にコマンドを実行して、履歴を増やしてみます。
1 2 3 4 | $ aws iam list-account-aliases $ aws iam list-access-keys $ aws history list |
そうすると次のように、履歴がペーシャで表示されました。
1 2 | d1cb919a-0ee6-4201-903e-0f462b4e1bc1 2017-11-30 11:48:50 AM iam list-access-keys 93a68531-3582-4987-9ed9-3bc545cb4dcf 2017-11-30 11:48:41 AM iam list-account-aliases |
コマンドID、日時、実行したコマンド、となっています。
続いてshow
コマンドも試してみます。show
コマンドはコマンドIDを指定しないと最後のコマンドの情報、指定すると指定したコマンドの情報が得られます。
1 | $ aws history show |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | AWS CLI command entered at time: 2017-11-30 11:48:50.570 with AWS CLI version: aws-cli/1.14.0 Python/3.6.3 Darwin/16.7.0 botocore/1.8.4 with arguments: ['iam', 'list-access-keys'] [0] API call made at time: 2017-11-30 11:48:50.613 to service: iam using operation: ListAccessKeys with parameters: {} [0] HTTP request sent at time: 2017-11-30 11:48:50.615 to URL: https://iam.amazonaws.com/ with method: POST with headers: { "Authorization": "AWS4-HMAC-SHA256 Credential=********************/20171130/us-east-1/iam/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=****************************************************************", "Content-Length": "40", "Content-Type": "application/x-www-form-urlencoded; charset=utf-8", "User-Agent": "aws-cli/1.14.0 Python/3.6.3 Darwin/16.7.0 botocore/1.8.4", "X-Amz-Date": "20171130T024850Z" } with body: Action=ListAccessKeys&Version=2010-05-08 [0] HTTP response received at time: 2017-11-30 11:48:51.394 with status code: 200 with headers: { "content-length": "565", "content-type": "text/xml", "date": "Thu, 30 Nov 2017 02:48:50 GMT", "x-amzn-requestid": "ff38e5dd-d578-11e7-92f7-b3ed884c3a04" } with body: <?xml version="1.0" ?> <ListAccessKeysResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/"> <ListAccessKeysResult> <IsTruncated>false</IsTruncated> <AccessKeyMetadata> <member> <AccessKeyId>********************</AccessKeyId> <UserName>cm-takeda.takashi</UserName> <Status>Active</Status> <CreateDate>2017-10-03T09:59:36Z</CreateDate> </member> </AccessKeyMetadata> </ListAccessKeysResult> <ResponseMetadata> <RequestId>ff38e5dd-d578-11e7-92f7-b3ed884c3a04</RequestId> </ResponseMetadata> </ListAccessKeysResponse> [0] HTTP response parsed at time: 2017-11-30 11:48:51.396 parsed to: { "AccessKeyMetadata": [ { "AccessKeyId": "********************", "CreateDate": "2017-10-03T09:59:36Z", "Status": "Active", "UserName": "cm-takeda.takashi" } ], "IsTruncated": false, "ResponseMetadata": { "HTTPHeaders": { "content-length": "565", "content-type": "text/xml", "date": "Thu, 30 Nov 2017 02:48:50 GMT", "x-amzn-requestid": "ff38e5dd-d578-11e7-92f7-b3ed884c3a04" }, "HTTPStatusCode": 200, "RequestId": "ff38e5dd-d578-11e7-92f7-b3ed884c3a04" } } AWS CLI command exited at time: 2017-11-30 11:48:51.400 with return code: 0 |
なんか思ってた以上に情報が取得できました(笑)。
コマンドIDを指定する場合は、show
に続いてIDを指定すればOKです。
1 | $ aws history show 93a68531-3582-4987-9ed9-3bc545cb4dcf |
まとめ
地味ながら、コマンドが裏でやっているHTTPの情報などが見れるのがおもしろいと思いました!
事前の有効化は忘れずにやっておきましょう!!