aws ssm list-commands でコマンドの実行状況を確認する
aws ssm send-command でRun Commandを実行したあと、aws ssm list-commands で実行状況を確認できる。
$ aws ssm list-commands
出力が多い場合は --command-id で特定のコマンドに絞り込む。
$ aws ssm list-commands --command-id [コマンドID]
send-command 実行時に表示される CommandId を使う。
–query で必要なフィールドのみ取得する
--query オプションでフィールドを絞り込むと、実行状況をシンプルに確認できる。
$ aws ssm list-commands \
--command-id [コマンドID] \
--query "Commands[*].[Status, TargetCount, CompletedCount, ErrorCount]" \
--output table
実行結果の例:
--------------------------------
| ListCommands |
+----------+------+------+-----+
| Success | 135 | 135 | 0 |
+----------+------+------+-----+
各フィールドの意味:
| フィールド | 説明 |
|---|---|
| Status | コマンド全体のステータス(Success / Failed / InProgress など) |
| TargetCount | 対象インスタンス数 |
| CompletedCount | 完了済みインスタンス数 |
| ErrorCount | エラーが発生したインスタンス数 |
list-command-invocations でインスタンスごとの詳細を確認する
list-commands はコマンド全体のステータスを返すが、インスタンスごとの実行詳細を確認するには list-command-invocations を使う。
$ aws ssm list-command-invocations \
--command-id [コマンドID] \
--details \
--query "CommandInvocations[*].[InstanceId, Status, CommandPlugins[0].Output]" \
--output table
--details を付けることでコマンドの標準出力(Output)も取得できる。
エラーが発生したインスタンスのみ絞り込む場合は --filters を使う。
$ aws ssm list-command-invocations \
--command-id [コマンドID] \
--filters "key=Status,value=Failed" \
--details
\手を動かしながらTerraformを学びたい人にオススメ!/
