エラー通知を送信するタスクの構成

タスクがエラー通知を送信できるようにするには、タスクを通知統合に関連付ける必要があります。これは、 CREATE TASK コマンドを実行して新しいタスクを作成するか、 ALTER TASK コマンドを実行して既存のタスクを変更するときに実行できます。これらのコマンドを実行するときは、 ERROR_INTEGRATION を通知統合の名前に設定します。

エラー通知の統合は、タスクグラフのルートタスクにのみ指定できます。失敗した子タスクは、ルートタスクの指定した統合にエラー通知を送信します。

TASK_AUTO_RETRY_ATTEMPTS0 より大きい値に設定されたタスクは、失敗したタスクの実行ごとにエラー通知を送信します。

注釈

通知統合を参照するタスクを作成または変更するには、通知統合に対する USAGE 権限を持つロールが必要です。さらに、ロールはスキーマの CREATE TASK 権限か、タスクの OWNERSHIP 権限を持っていなければなりません。

このトピックの内容:

エラー通知を送信する新しいタスクの作成

CREATE TASK を使用して、新しいタスクを作成します。使用可能なすべてのタスクパラメーターの説明については、 SQL コマンドのトピックをご参照ください。

CREATE TASK <name>
  [...]
  ERROR_INTEGRATION = <integration_name>
  AS <sql>
Copy

条件:

ERROR_INTEGRATION = integration_name

CREATENOTIFICATION INTEGRATION を使用して作成された通知統合の名前を指定します。詳細情報については、 AWS SNSGoogle Pub/SubAzure Event Grid をご参照ください。

次の例では、エラー通知をサポートするサーバーレスタスクを作成します。タスクは、現在のタイムスタンプを5分ごとにテーブル列に挿入します。

CREATE TASK mytask
  SCHEDULE = '5 MINUTE'
  ERROR_INTEGRATION = my_notification_int
  AS
  INSERT INTO mytable(ts) VALUES(CURRENT_TIMESTAMP);
Copy

エラー通知を送信するための既存タスクの更新

ALTER TASK を使用して、既存のタスクを変更します。

ALTER TASK <name> SET ERROR_INTEGRATION = <integration_name>;
Copy

integration_name は、 AWS SNSGoogle Pub/Sub、または Azure Event Grid プラットフォームレベルの通知のいずれかで作成された通知統合の名前です。

例:

ALTER TASK mytask SET ERROR_INTEGRATION = my_notification_int;
Copy

タスクエラー通知のメッセージペイロード

エラーメッセージの本文は、タスクとタスク実行中に発生したエラーを識別します。

以下は、タスクエラーを説明するサンプルのメッセージペイロードです。ペイロードには、1つ以上のエラーメッセージを含めることができます。

{\"version\":\"1.0\",\"messageId\":\"3ff1eff0-7ad7-493c-9552-c0307087e0c6\",\"messageType\":\"USER_TASK_FAILED\",\"timestamp\":\"2021-11-11T19:46:39.648Z\",\"accountName\":\"AWS_UTEN_DPO_ACC\",\"taskName\":\"AWS_UTEN_DPO_DB.AWS_UTEN_SC.UTEN_AWS_TK1\",\"taskId\":\"01a03962-2b57-889e-0000-000000000001\",\"rootTaskName\":\"AWS_UTEN_DPO_DB.AWS_UTEN_SC.UTEN_AWS_TK1\",\"rootTaskId\":\"01a03962-2b57-889e-0000-000000000001\",\"messages\":[{\"runId\":\"2021-11-11T19:46:23.826Z\",\"scheduledTime\":\"2021-11-11T19:46:23.826Z\",\"queryStartTime\":\"2021-11-11T19:46:24.879Z\",\"completedTime\":\"null\",\"queryId\":\"01a03962-0300-0002-0000-0000000034d8\",\"errorCode\":\"000630\",\"errorMessage\":\"Statement reached its statement or warehouse timeout of 10 second(s) and was canceled.\"}]}
Copy

ペイロードの値を処理するには、文字列を JSON オブジェクトに解析する必要があることに注意してください。