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:

  1. Erstellen Sie eine Benachrichtigungsintegration.

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

  3. Erteilen Sie die Berechtigung zur Verwendung der Benachrichtigungsintegration.

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

Erstellen einer Benachrichtigungsintegration

Zum Erstellen einer E-Mail-Benachrichtigungsintegration verwenden Sie den Befehl CREATE NOTIFICATION INTEGRATION mit TYPE=EMAIL:

CREATE [ OR REPLACE ] NOTIFICATION INTEGRATION [IF NOT EXISTS]
    <integration_name>
    TYPE=EMAIL
    ENABLED={TRUE|FALSE}
    ALLOWED_RECIPIENTS=('<email_address_1>' [, ... '<email_address_N>'])
    [ COMMENT = '<string_literal>' ]
;

Wobei:

  • integration_name ist der Name der neuen Integration.

  • 'email_address_1' [, ... 'email_address_N'] ist eine durch Kommas getrennte Liste von E-Mail-Adressen (jede in Anführungszeichen eingeschlossen), die E-Mail-Benachrichtigungen von dieser Integration erhalten können.

    Diese E-Mail-Adressen müssen Benutzern des aktuellen Kontos zugeordnet sein. Die E-Mail-Adressen müssen verifiziert sein.

    Die maximale Anzahl von E-Mail-Adressen, die Sie angeben können, ist 50.

  • 'string_literal' gibt einen optionalen Kommentar zu der Integration an.

Beispiel:

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.

Verifizieren der E-Mail-Adressen von Benachrichtigungsempfängern

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:

Vergewissern Sie sich bei jeder E-Mail-Adresse, die im Parameter ALLOWED_RECIPIENTS der E-Mail-Benachrichtigungsintegration angegeben ist, dass der entsprechende Snowflake-Benutzer diese E-Mail-Adresse verifiziert hat.

Erteilen der Berechtigung zum Verwenden der Benachrichtigungsintegration

Beim Aufruf von SYSTEM$SEND_EMAIL() geben Sie eine E-Mail-Benachrichtigungsintegration an, die zum Versenden der E-Mail verwendet wird. 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 SYSTEM$SEND_EMAIL() wie folgt aufrufen, um eine E-Mail-Benachrichtigung zu senden:

CALL SYSTEM$SEND_EMAIL(
    '<integration_name>',
    '<email_address_1> [, ... <email_address_N>]',
    '<email_subject>',
    '<email_content>'
);

Wobei:

  • integration_name ist der Name der Benachrichtigungsintegration.

  • email_address_1 [, ... email_address_N] ist eine durch Kommas getrennte Zeichenfolge von einer oder mehreren E-Mail-Adressen (nicht in Anführungszeichen eingeschlossen), die E-Mail-Benachrichtigungen von dieser Integration empfangen können.

    Die E-Mail-Adressen in dieser Liste müssen zu den ALLOWED_RECIPIENTS (zugelassene Empfänger) gehören, die in der Benachrichtigungsintegration angegeben sind.

  • email_subject ist die Betreffzeile der E-Mail-Benachrichtigung. Sie können keine leere Zeichenfolge angeben.

  • email_content ist der Textkörper/Body der E-Mail. Sie können keine leere Zeichenfolge angeben.

    Snowflake unterstützt derzeit nur reine Text-E-Mails.

Beispiel:

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 E-Mail-Adresse der Empfängerliste nicht im Parameter ALLOWED_RECIPIENTS der Benachrichtigungsintegration enthalten ist, werden keine E-Mails gesendet.

In der E-Mail-Benachrichtigungsmeldung lautet die From:-Adresse: no-reply@snowflake.net.

Zurück zum Anfang