Glue Jobが失敗したらメール通知する超簡単な方法

おつかれさまです。

Glue Jobの場合、成功/失敗のステータスがCloudWatchの標準メトリクスで取得できないため、多少工夫してやる必要があります。

今回はもっともシンプル(主観ですが)な方法を紹介します。

構成

設定

※ Glue Jobはすでに作成されているものとして進めていきます。

SNSの設定

トピックの作成

サブスクリプションの作成

CloudWatch Eventsの設定

ルールの作成

ステップ1

イベントソースターゲットを設定します。

ポイントはカスタムイベントパターンを選択する部分です。また、ターゲットにはさきほど作成したSNS Topicを選択します。

  • イベントパターンの入力例
{
  "source": [
    "aws.glue"
  ],
  "detail-type": [
    "Glue Job State Change"
  ],
  "detail": {
    "jobName": [
      "glue-job-for-err-notification"
    ],
    "state": [
      "FAILED"
    ]
  }
}

ステップ2

動作確認

Glue Jobを実行

意図的に失敗するJobを実行します。

メール通知確認

こんなかんじの内容のメールが送られてきます。

{
...省略
  "source": "aws.glue",
  "detail-type": "Glue Job State Change",
  "time": "2020-01-09T09:33:40Z",
  "region": "ap-northeast-1",
  "resources": [],
  "detail": {
    "jobName": "glue-job-for-err-notification",
    "severity": "ERROR",
    "state": "FAILED",
    "jobRunId": "jr_a56a071553c6038a20f1578f74a0136c94e1ea946a3e9516322b4b2bd2e3a5f4",
    "message": "Command failed with exit code 1"
  }
}

まとめ

いかがだったでしょうか。

意外と情報が少なかったので、備忘録として残しておきます。

どなたかの役にたてば幸いです。