Konfigurieren einer Aufgabe zum Senden von Fehlerbenachrichtigungen

Um eine Aufgabe zum Senden von Fehlerbenachrichtigungen zu aktivieren, müssen Sie die Aufgabe mit einer Benachrichtigungsintegration verknüpfen. Dies können Sie tun, wenn Sie den Befehl CREATE TASK ausführen, um eine neue Aufgabe zu erstellen, oder den Befehl ALTER TASK, um eine bestehende Aufgabe zu ändern. Wenn Sie diese Befehle ausführen, setzen Sie ERROR_INTEGRATION auf den Namen der Benachrichtigungsintegration.

Sie geben die Integrationen für die Fehlerbenachrichtigung nur für eine Stammaufgabe eines Aufgabendiagramms an. Jede fehlgeschlagene untergeordnete Aufgabe sendet Fehlerbenachrichtigungen an die angegebene Integration der Stammaufgabe.

Aufgaben, bei denen TASK_AUTO_RETRY_ATTEMPTS auf einen Wert größer als 0 eingestellt ist, senden bei jeder fehlgeschlagenen Aufgabenausführung Fehlerbenachrichtigungen.

Bemerkung

Zum Erstellen oder Ändern einer Aufgabe, die auf eine Benachrichtigungsintegration verweist, ist eine Rolle erforderlich, die über die Berechtigung USAGE für die Benachrichtigungsintegration verfügt. Darüber hinaus muss die Rolle entweder die Berechtigung CREATE TASK für das Schema oder die Berechtigung OWNERSHIP für den Task haben.

Unter diesem Thema:

Erstellen einer neuen Aufgabe, die Fehlerbenachrichtigungen sendet

Erstellen Sie eine neue Aufgabe mit CREATE TASK. Eine Beschreibung aller verfügbaren Aufgabenparameter finden Sie unter dem Thema zum SQL-Befehl:

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

Wobei:

ERROR_INTEGRATION = integration_name

Gibt den Namen einer mit CREATE NOTIFICATION INTEGRATION erstellten Benachrichtigungsintegration an. Weitere Informationen finden Sie unter AWS SNS, Google Pub/Sub, oder Azure Event Grid.

Im folgenden Beispiel wird eine serverlose Aufgabe erstellt, die Fehlerbenachrichtigungen unterstützt. Die Aufgabe fügt alle 5 Minuten den aktuellen Zeitstempel in eine Tabellenspalte ein:

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

Aktualisieren einer vorhandenen Aufgabe zum Senden von Fehlerbenachrichtigungen

Ändern Sie eine bestehende Aufgabe mit ALTER TASK:

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

Wobei integration_name der Name der Benachrichtigungsintegration ist, die in einer der AWS SNS-, Google Pub/Sub- oder Azure Event Grid-Plattformbenachrichtigungen erstellt wurde.

Beispiel:

ALTER TASK mytask SET ERROR_INTEGRATION = my_notification_int;
Copy

Meldungsnutzlast von Aufgabenfehlerbenachrichtigungen

Im Hauptteil der Fehlermeldungen werden die Aufgabe und die während des Ladevorgangs aufgetretenen Fehler angegeben.

Nachfolgend finden Sie ein Beispiel für eine Meldungsnutzlast, die einen Aufgabenfehler beschreibt. Die Nutzlast kann eine oder mehrere Fehlermeldungen enthalten.

{\"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

Beachten Sie, dass Sie die Zeichenfolge in ein JSON-Objekt parsen müssen, um die Werte in der Nutzlast zu verarbeiten.