Senden von E-Mail-Benachrichtigungen

Bemerkung

Alle Snowflake-Kunden können mit diesem Feature E-Mail-Nachrichten versenden. E-Mail-Nachrichten, die von der Notifications System Stored Procedure gesendet werden, werden über die Snowflake-Bereitstellung für Amazon Web Services (AWS) und unter Verwendung des AWS Simple Email Service (SES) verarbeitet. Der Inhalt einer mit AWS gesendeten E-Mail-Nachricht kann von Snowflake bis zu dreißig Tage lang aufbewahrt werden, um die Zustellung der Nachricht zu verwalten. Nach Ablauf dieser Frist wird der Inhalt der Nachricht gelöscht.

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:

  1. Stellen Sie sicher, dass die E-Mail-Adressen der für die E-Mail-Benachrichtigung vorgesehenen Empfänger verifiziert sind.

  2. Erstellen Sie eine Benachrichtigungsintegration.

  3. Erteilen Sie die Berechtigung zur Verwendung der Benachrichtigungsintegration.

  4. Rufen Sie die gespeicherte Prozedur SYSTEM$SEND_EMAIL() auf, um eine E-Mail-Benachrichtigung zu senden.

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.

Wenn Sie die Liste der E-Mail-Adressen, die über diese Integration Benachrichtigungen erhalten können, einschränken möchten, setzen Sie ALLOWED_RECIPIENTS auf die Liste dieser E-Mail-Adressen. Wenn Sie ALLOWED_RECIPIENTS nicht einstellen, kann die Integration genutzt werden, um Benachrichtigungen an jeden Benutzer des Kontos zu senden, vorausgesetzt, der Benutzer hat eine verifizierte E-Mail-Adresse.

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 erstellen, führen Sie die folgende Anweisung aus:

CREATE NOTIFICATION INTEGRATION my_email_int
  TYPE=EMAIL
  ENABLED=TRUE;
Copy

Um die Benachrichtigungsintegration einzuschränken, sodass E-Mail-Nachrichten nur an first.last@example.com und first2.last2@example.com gesendet werden können, setzen Sie ALLOWED_RECIPIENTS auf die Liste dieser Adressen:

CREATE NOTIFICATION INTEGRATION my_email_int
  TYPE=EMAIL
  ENABLED=TRUE
  ALLOWED_RECIPIENTS=('first.last@example.com','first2.last2@example.com');
Copy

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;
Copy

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 first.last@example.com und first2.last2@example.com zu senden, führen Sie die folgende Anweisung aus:

CALL SYSTEM$SEND_EMAIL(
    'my_email_int',
    'first.last@example.com, first2.last2@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'
);
Copy

Bemerkung

Wenn Sie die Eigenschaft ALLOWED_RECIPIENTS auf die Benachrichtigungsintegration einstellen und keine E-Mail-Adresse der Empfängerliste in dieser Liste enthalten ist, werden keine E-Mail-Benachrichtigungen gesendet.

Wenn Sie die Cloudplattform Amazon Web Services (AWS) nutzen, wird die E-Mail-Benachrichtigung von no-reply@snowflake.net gesendet. Wenn Sie die Cloudplattform Google Cloud Platform (GCP) oder Microsoft Azure (Azure) nutzen, wird die E-Mail-Benachrichtigung von do-not-reply@snowflake.net gesendet.