LoginSignup
0

More than 1 year has passed since last update.

posted at

AWS CLIでGlueJobのruns-statusとcloudwatchのログを良い感じでゲットするシェルを作ってみた

はじめに

どうも、肉と糖質が大好きなおじさんです。
仕事でAWSを使ってますが、マネコンからログを取得するのに
限界を感じたので良い感じのシェルを作りました。
しっかり解説入れようと下書きしていたけど
うっかり消しちゃったのでサクッとシェルだけ投稿します。
あーうっかりうっかり(泣)

・実行ID、ゲットだぜ!

JOBIDを指定して、良い感じの実行状態を取得するシェルです。
JSONを加工してCSVにしてます。
時間もUTCからJSTに変換します。

引数には、JOBIDを指定してください。

statusget.sh
#!/bin/bash
#--- 引数チェック
if [ $# -gt 1 ]; then
    echo "エラー:引数が多すぎます。"
    exit 1;
fi

#--- tittle print
echo "AWS GlueJobs Run Status Check"
echo ""

#--- 引数がなしなら入力プロンプト
if [ $# -eq 1 ]; then
    INPUT_JOBID=$1;
else
    echo "取得するJOBIDを入力してください。"
    read -p ":" INPUT_JOBID
fi

if test -z $INPUT_JOBID; then
    echo "エラー:JOBIDを入力してください。"
    exit 1;
fi

filename=$INPUT_JOBID"_result.csv"

echo "JobName,JobId,Status,StartedOn,CompetedOn,ExecutionTime" > $filename

aws glue get-job-runs --job-name $INPUT_JOBID | jq -r '.JobRuns[] | [.JobName, .Id, .JobRunState, (.StartedOn |tonumber|.+32400|todate), (.CompletedOn |tonumber|.+32400|todate), (.ExecutionTime|tonumber)]| @csv' >> $filename

echo "Finish. output --> " $filename
exit 0;

・ログストリーム、ゲットだぜ!

「行けぇ、ピ※ち※※!!aws cli get-log-events!!
「ぴかぁ…。

引数には上記シェルで取得した、実行IDを指定してください。

logget.sh
#!/bin/bash

#---- ロググループは環境に応じて変更してください!!
LOG_GROUP=/aws-glue/jobs/#########

#--- 引数チェック
if [ $# -gt 1 ]; then
    echo "エラー:引数が多すぎます。"
    exit 1;
fi

#--- tittle print
echo "AWS GlueJobs Log Getter Ver1.0"
echo ""

#--- 引数がなしなら入力プロンプト
if [ $# -eq 1 ]; then
    INPUT_RUNID=$1;
else
    echo "取得する実行IDを入力してください。"
    read -p ":" INPUT_RUNID
fi

if test -z $INPUT_RUNID; then
    echo "エラー:実行IDを入力してください。"
    exit 1;
fi

filename=`date "+%Y%m%d_%H%M%S_"`$INPUT_RUNID".log"

aws logs get-log-events --log-group-name $LOG_GROUP --log-stream-name $INPUT_RUNID --query "events[].[message]" --output text > $filename

echo "Finish. output --> " $filename
exit 0;

出力されるファイル名は、タイムスタンプ+実行ID.log です。

・おしまいに

シェルの改変などは、ご自由にどうぞ。
AWSのマネコンがもっと使い易くてレスポンスも速くなったら
こんなツールは必要ないんですが、まぁ当分先かなぁ…。

「チラ裏」
M1のMBA最近、買いました。
スッゲー速くて良い感じ。
サイコーです。
あははははは!
ではまた。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0