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>
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);
Aktualisieren einer vorhandenen Aufgabe zum Senden von Fehlerbenachrichtigungen¶
Ändern Sie eine bestehende Aufgabe mit ALTER TASK:
ALTER TASK <name> SET ERROR_INTEGRATION = <integration_name>;
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;
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.\"}]}
Beachten Sie, dass Sie die Zeichenfolge in ein JSON-Objekt parsen müssen, um die Werte in der Nutzlast zu verarbeiten.