Senden von E-Mail-Benachrichtigungen¶
Bemerkung
Das Feature „Notification System Stored Procedure“ wird nur auf Amazon Web Services (AWS) gehostet. Wenn Sie dieses Feature verwenden möchten, ist der Hosting-Anbieter für dieses Feature AWS, und die verfügbaren Hosting-Standorte sind in der Tabelle unten aufgeführt. Der Inhalt einer mit AWS SES gesendeten Meldung kann von Snowflake bis zu dreißig Tage lang aufbewahrt werden, um die Zustellung der Meldung zu verwalten, und wird danach gelöscht.
Unterstützte AWS-Regionen |
---|
us-west-2 |
us-east-1 |
eu-west-1 |
Unter diesem Thema wird erklärt, wie Sie mit der integrierten gespeicherten Prozedur SYSTEM$SEND_EMAIL() E-Mail-Benachrichtigungen senden.
Unter diesem Thema:
Einführung¶
Dieses Feature verwendet das Snowflake-Objekt Benachrichtigungsintegration, das eine Schnittstelle zwischen Snowflake und Drittanbieterdiensten (z. B. Cloud-Meldungswarteschlangen, E-Mail) bereitstellt. Ein einzelnes Konto kann bis zu zehn E-Mail-Integrationen definieren und eine oder mehrere Integrationen gleichzeitig aktivieren.
So senden Sie eine E-Mail-Benachrichtigung:
Bemerkung
Mit der Tabellenfunktion NOTIFICATION_HISTORY können Sie den Verlauf der über Snowpipe gesendeten Benachrichtigungen abfragen. Weitere Informationen dazu finden Sie unter NOTIFICATION_HISTORY.
Verifizieren der E-Mail-Adressen der Benachrichtigungsempfänger¶
E-Mail-Benachrichtigungen können nur an Snowflake-Benutzer innerhalb desselben Kontos gesendet werden, und diese Benutzer müssen ihre E-Mail-Adressen über eine der folgenden Schnittstellen verifizieren:
Erstellen einer Benachrichtigungsintegration¶
Zum Erstellen einer E-Mail-Benachrichtigungsintegration verwenden Sie den Befehl CREATE NOTIFICATION INTEGRATION mit TYPE=EMAIL
: Stellen Sie ALLOWED_RECIPIENTS
auf die Liste der E-Mail-Adressen ein, die Benachrichtigungen erhalten sollen.
Bemerkung
Stellen Sie für jede E-Mail-Adresse in ALLOWED_RECIPIENTS
sicher, dass der Snowflake-Benutzer mit dieser E-Mail-Adresse seine E-Mail-Adresse verifiziert hat. Wenn Sie eine E-Mail-Adresse angeben, die nicht verifiziert wurde, schlägt der Befehl CREATE NOTIFICATION INTEGRATION mit einem Fehler fehl.
Um beispielsweise eine E-Mail-Benachrichtigungsintegration mit dem Namen my_email_int
für das Senden von E-Mail-Nachrichten an first.last@example.com
und first2.last2@example.com
zu erstellen, führen Sie die folgende Anweisung aus:
CREATE NOTIFICATION INTEGRATION my_email_int
TYPE=EMAIL
ENABLED=TRUE
ALLOWED_RECIPIENTS=('first.last@example.com','first2.last2@example.com');
Bemerkung
Sie können maximal zehn E-Mail-Benachrichtigungsintegrationen pro Konto definieren.
Weitere Informationen zur Syntax dieses Befehls finden Sie unter CREATE NOTIFICATION INTEGRATION.
Erteilen der Berechtigung zum Verwenden der Benachrichtigungsintegration¶
Beim Aufrufen von SYSTEM$SEND_EMAIL() geben Sie die E-Mail-Benachrichtigungsintegration an, die zum Versenden der E-Mail verwendet werden soll. Sie müssen eine Rolle verwenden, die die Berechtigung USAGE für diese E-Mail-Benachrichtigungsintegration hat.
Um diese Berechtigung der Rolle des Eigentümers oder des Aufrufers zu erteilen, führen Sie den Befehl GRANT <Berechtigungen> aus.
Um beispielsweise der Rolle my_sp_owner_role
die Berechtigung USAGE für die Benachrichtigungsintegration my_email_int
zu erteilen, führen Sie den folgenden Befehl aus:
GRANT USAGE ON INTEGRATION my_email_int TO ROLE my_sp_owner_role;
Senden einer E-Mail-Benachrichtigung¶
Nachdem Sie die E-Mail-Benachrichtigungsintegration erstellt haben, können Sie die gespeicherte Prozedur SYSTEM$SEND_EMAIL aufrufen, um eine E-Mail-Benachrichtigung zu senden.
Um beispielsweise die Benachrichtigungsintegration my_email_int
zu verwenden, um eine E-Mail-Meldung mit der Betreffzeile „E-Mail-Alert: Aufgabe A ist beendet.“ an person1@example.com
und person2@example.com
zu senden, führen Sie die folgende Anweisung aus:
CALL SYSTEM$SEND_EMAIL(
'my_email_int',
'person1@example.com, person2@example.com',
'Email Alert: Task A has finished.',
'Task A has successfully finished.\nStart Time: 10:10:32\nEnd Time: 12:15:45\nTotal Records Processed: 115678'
);
Bemerkung
Wenn eine der E-Mail-Adressen in der Empfängerliste nicht im Parameter ALLOWED_RECIPIENTS
der Benachrichtigungsintegration enthalten ist, werden keine E-Mails gesendet.
Die E-Mail-Benachrichtigung wird von no-reply@snowflake.net
gesendet.