Konfigurieren einer Aufgabe zum Senden von Erfolgsbenachrichtigungen¶
Snowflake kann Erfolgsbenachrichtigungen an einen Cloud-Messaging-Dienst senden, wenn ein Aufgabendiagramm erfolgreich abgeschlossen wurde. Dieses Thema enthält Anweisungen zur Konfiguration der Unterstützung von Erfolgsbenachrichtigungen für Aufgaben, die Cloud Messaging verwenden.
Die Integration der Erfolgsbenachrichtigung wird nur für eine Stammaufgabe eines Aufgabendiagramms angegeben. Snowflake sendet nur dann Erfolgsbenachrichtigungen, wenn das gesamte Aufgabendiagramm erfolgreich ausgeführt wurde, und sendet keine Benachrichtigungen für erfolgreich ausgeführte Einzelaufgaben, was sich von der Integration von Fehlerbenachrichtigungen unterscheidet.
Bemerkung
Das Feature zur Benachrichtigung über den Erfolg einer Aufgabe wird sowohl für serverlose Aufgaben als auch für benutzerverwaltete Aufgaben unterstützt (d. h. Aufgaben, die auf ein virtuelles Warehouse angewiesen sind, um die Computeressourcen bereitzustellen).
Um eine Aufgabe zum Senden von Erfolgsbenachrichtigungen zu aktivieren, müssen Sie die Aufgabe mit einer Benachrichtigungsintegration für Meldungen verknüpfen. Folgen Sie der Aufgabendokumentation, um eine Benachrichtigungsintegration mit Amazon Web Services Simple Notification Service (AWS SNS), Microsoft Azure Event Grid, oder Google Pub/Sub zu erstellen.
Erstellen einer neuen Aufgabe oder Ändern einer bestehenden Aufgabe zum Senden von Erfolgsbenachrichtigungen¶
Sie können die Aufgabe mit einer Benachrichtigungsintegration verknüpfen, wenn Sie den Befehl CREATE TASK ausführen, um eine neue Aufgabe zu erstellen, oder den Befehl ALTER TASK ausführen, um eine bestehende Aufgabe zu ändern.
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. Außerdem muss die Rolle entweder die CREATE TASK-Berechtigung für das Schema oder die OWNERSHIP-Berechtigung für die Aufgabe haben.
CREATE [ OR REPLACE ] TASK [ IF NOT EXISTS ] <name>
WAREHOUSE = <string>
[...]
SUCCESS_INTEGRATION = <integration_name>
ALTER TASK <name> SET SUCCESS_INTEGRATION = <integration_name>;
Wobei:
SUCCESS_INTEGRATION = integration_name
Name der Benachrichtigungsintegration, die in einer AWS SNS, Microsoft Azure Event Grid oder Google Pub/Sub-Plattformbenachrichtigungen erstellt wurde.
Erfolgsbenachrichtigungen anzeigen¶
Sie können SHOW TASKS oder DESCRIBE TASK ausführen, um Erfolgsbenachrichtigungen für Aufgaben zu erhalten. Snowflake fügt der Ausgabe von SHOW TASKS und DESCRIBE TASK eine neue Spalte, success_integration, hinzu. Dieses Feld zeigt für alle untergeordneten Aufgaben null an. In diesem Feld wird der Name der Erfolgsintegration auf Diagrammebene angezeigt, wenn die Benachrichtigungsintegration in einer Stammaufgabe angegeben ist, und andernfalls null.
Nutzlast¶
Der Body der Erfolgsmeldungen enthält Informationen, die das Aufgabendiagramm identifizieren, wie rootTaskName, rootTaskID, queryID und attemptNumber. Nachfolgend finden Sie ein Beispiel für die Meldungsnutzlast einer Erfolgsbenachrichtigung für ein Aufgabendiagramm.
{"version":"1.0",
"messageId":"3ff1eff0-7ad7-493c-9552-c0307087e0c6",
"messageType":"USER_TASK_GRAPH_SUCCEEDED",
"timestamp":"2021-11-11T19:46:39.648Z",
"accountName":"AWS_UTEN_DPO_ACC",
"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",
"graphCompletedTime":"2021-11-11T19:54:24.5591",
"queryId":"01a03962-0300-0002-0000-0000000034d8",
"attemptNumber":5
}]}
Beachten Sie, dass Sie die Zeichenfolge in ein JSON-Objekt parsen müssen, um die Werte in der Nutzlast zu verarbeiten.