たくさんのAWS Glue Jobを実行している環境で実行履歴をまとめて見るワンライナー
AWSのマネジメントコンソールでGlue Jobの実行履歴を見るには、見たいGlue Jobを選択します。選択したJobの実行履歴が画面の下半分に表示されます。cliで確認するには aws glue get-job-runs
というコマンドにJobを指定します。
しかしこれでは、Glue JobがたくさんあるAWS環境で全体の実行履歴を見るのはめんどうです。
ので、コマンドを組み合わせてワンライナーを書きました。
$ for j in $(aws --output json glue get-jobs | jq ".Jobs[] | .Name" -r); do aws --output json glue get-job-runs --job-name $j | jq ".JobRuns[] | [.JobName, .StartedOn, .LastModifedOn, .CompletedOn, .JobRunState] | @csv" -r; done | sort -t, -k 2n,2
説明
aws glue get-jobs
コマンドで登録されているJob一覧をJSONフォーマットで取得し、jqコマンドでJob名のみを抽出- Jobでループ:
aws glue get-job-runs
コマンドでJob名から実行履歴をJSONフォーマットで取得し、jqコマンドで必要な情報をCSV形式で抽出 - 全ジョブの実行履歴のCSVをマージしてJob開始時刻でソート
時刻はUnixタイムスタンプです。
awscliとjqコマンドの相性はいいです。
2020/08/17 追記
時刻表示がイケてないので、やっぱりPythonスクリプトにしました。
たくさんのAWS Glue Jobを実行している環境で実行履歴を一覧表示するPythonスクリプト - Qiita
関連