CREATE NOTIFICATION INTEGRATION (Webhooks)

Erstellt eine neue Benachrichtigungsintegration oder ersetzt eine bestehende Integration für einen Webhook.

Siehe auch:

ALTER NOTIFICATION INTEGRATION (Webhooks) , DESCRIBE INTEGRATION , DROP INTEGRATION , SHOW INTEGRATIONS

Syntax

CREATE [ OR REPLACE ] NOTIFICATION INTEGRATION [ IF NOT EXISTS ] <name>
  TYPE = WEBHOOK
  ENABLED = { TRUE | FALSE }
  WEBHOOK_URL = '<url>'
  [ WEBHOOK_SECRET = <secret_name> ]
  [ WEBHOOK_BODY_TEMPLATE = '<template_for_http_request_body>' ]
  [ WEBHOOK_HEADERS = ( '<header_1>'='<value_1>' [ , '<header_N>'='<value_N>', ... ] ) ]
  [ COMMENT = '<string_literal>' ]
Copy

Erforderliche Parameter

name

Zeichenfolge, die den Bezeichner (d. h. den Namen) für die Integration angibt. Muss in Ihrem Konto eindeutig sein.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Informationen dazu finden Sie unter Anforderungen an Bezeichner.

ENABLED = { TRUE | FALSE }

Gibt an, ob die Integrationsoperation gestartet oder angehalten werden soll.

  • TRUE aktiviert die Integration.

  • FALSE deaktiviert die Integration für Wartungszwecke. Eine Integration zwischen Snowflake und einem Drittanbieterdienst funktioniert nicht.

TYPE = WEBHOOK

Gibt an, dass es sich um eine Benachrichtigungsintegration für einen Webhook handelt.

WEBHOOK_URL = 'url'

Gibt die URL für den Webhook an. Die URL muss das Protokoll https:// verwenden.

Sie können nur die folgenden URLs angeben:

  • URLs für Slack-Webhooks. Diese URLs müssen mit https://hooks.slack.com/services/ beginnen.

  • URLs für Teams-Webhooks. Diese URLs müssen das folgende allgemeine Format verwenden:

    https://<hostname>.webhook.office.com/webhookb2/<path_components>/IncomingWebhook/<path_components>
    
    Copy
  • URLs für PagerDuty-Webhooks. Diese URL muss https://events.pagerduty.com/v2/enqueue sein.

Wenn die URL ein Geheimnis enthält und Sie ein geheimes Objekt für dieses Geheimnis erstellt haben, ersetzen Sie dieses Geheimnis in der URL durch SNOWFLAKE_WEBHOOK_SECRET. Wenn Sie zum Beispiel ein geheimes Objekt für das Geheimnis in einem Slack-Webhook URL erstellt haben, setzen Sie WEBHOOK_URL auf:

WEBHOOK_URL='https://hooks.slack.com/services/SNOWFLAKE_WEBHOOK_SECRET'
Copy

Optionale Parameter

WEBHOOK_SECRET = secret_name

Gibt das Geheimnis an, das mit dieser Integration zu verwenden ist.

Wenn Sie den Platzhalter SNOWFLAKE_WEBHOOK_SECRET in WEBHOOK_URL, WEBHOOK_BODY_TEMPLATE oder WEBHOOK_HEADERS verwenden, wird der Platzhalter durch dieses Geheimnis ersetzt, wenn Sie eine Benachrichtigung senden.

Wenn die Datenbank und das Schema, die das geheime Objekt enthalten, nicht aktiv sind, wenn Sie eine Benachrichtigung senden, qualifizieren Sie den Geheimnisnamen mit dem Schemanamen oder den Datenbank- und Schemanamen. Beispiel:

WEBHOOK_SECRET = my_secrets_db.my_secrets_schema.my_slack_webhook_secret
Copy

Sie müssen über die USAGE-Berechtigung für das Geheimnis (und die Datenbank und das Schema, die es enthalten) verfügen, um diesen Parameter anzugeben.

Standard: Kein Wert

WEBHOOK_BODY_TEMPLATE = 'template_for_http_request_body'

Gibt eine Vorlage für den Body der HTTP-Anfrage an, die für die Benachrichtigung gesendet werden soll.

Wenn der Webhook ein bestimmtes Format für den Text der HTTP-Anfrage verlangt (z. B. ein bestimmtes JSON-Format), setzen Sie dies auf eine Zeichenfolge, die das Format angibt. In dieser Zeichenfolge:

  • Wenn die Meldung ein Geheimnis enthalten muss und Sie ein geheimes Objekt für dieses Geheimnis erstellt haben, verwenden Sie den Platzhalter SNOWFLAKE_WEBHOOK_SECRET an der Stelle, an der das Geheimnis in der Meldung angezeigt werden soll.

  • Verwenden Sie den Platzhalter SNOWFLAKE_WEBHOOK_MESSAGE an der Stelle, an der die Benachrichtigung eingefügt werden soll.

Beispiel:

WEBHOOK_BODY_TEMPLATE='{
  "routing_key": "SNOWFLAKE_WEBHOOK_SECRET",
  "event_action": "trigger",
  "payload":
    {
      "summary": "SNOWFLAKE_WEBHOOK_MESSAGE",
      "source": "Snowflake monitoring",
      "severity": "INFO",
    }
  }'
Copy

Wenn Sie WEBHOOK_BODY_TEMPLATE festlegen, müssen Sie auch WEBHOOK_HEADERS festlegen, um den Header Content-Type mit dem Typ Ihrer Meldung einzuschließen. Wenn Sie zum Beispiel für WEBHOOK_BODY_TEMPLATE eine Vorlage im JSON-Format, stellen Sie WEBHOOK_HEADERS so ein, dass es den Header Content-Type: application/json enthält:

WEBHOOK_HEADERS=('Content-Type'='application/json')
Copy

Standard: Kein Wert

WEBHOOK_HEADERS = ( 'header'='value' [ , 'header'='value', ... ] )

Gibt eine Liste von HTTP-Headern und -Werten an, die in die HTTP-Anfrage für den Webhook aufgenommen werden sollen.

Wenn ein HTTP-Header ein Geheimnis enthalten muss (zum Beispiel der Authorization-Header) und Sie ein geheimes Objekt für dieses Geheimnis erstellt haben, verwenden Sie den SNOWFLAKE_WEBHOOK_SECRET-Platzhalter im Header-Wert. Beispiel:

WEBHOOK_HEADERS=('Authorization'='Basic SNOWFLAKE_WEBHOOK_SECRET')
Copy

Standard: Kein Wert

COMMENT = 'string_literal'

Zeichenfolge (Literal), die einen Kommentar zur Integration enthält.

Standard: Kein Wert

Anforderungen an die Zugriffssteuerung

Eine Rolle, die zur Ausführung dieses SQL-Befehls verwendet wird, muss mindestens die folgenden Berechtigungen haben:

Berechtigung

Objekt

Anmerkungen

CREATE INTEGRATION

Konto

Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed.

USAGE

Geheimnis

Wenn Sie die Eigenschaft WEBHOOK_SECRET auf ein geheimes Objekt festlegen, müssen Sie die USAGE-Berechtigung für dieses Geheimnis sowie für die Datenbank und das Schema haben, die dieses Geheimnis enthalten.

Eine Anleitung zum Erstellen einer kundenspezifischen Rolle mit einer bestimmten Gruppe von Berechtigungen finden Sie unter Erstellen von kundenspezifischen Rollen.

Allgemeine Informationen zu Rollen und Berechtigungen zur Durchführung von SQL-Aktionen auf sicherungsfähigen Objekten finden Sie unter Übersicht zur Zugriffssteuerung.

Nutzungshinweise

  • Metadaten:

    Achtung

    Kunden müssen sicherstellen, dass bei der Nutzung des Snowflake-Dienstes keine personenbezogenen Daten (außer für ein Objekt „Benutzer“), sensible Daten, exportkontrollierte Daten oder andere regulierte Daten als Metadaten eingegeben werden. Weitere Informationen dazu finden Sie unter Metadatenfelder in Snowflake.

  • CREATE OR REPLACE <Objekt>-Anweisungen sind atomar. Das heißt, wenn ein Objekt ersetzt wird, erfolgt das Löschen des alten Objekts und das Erstellen des neuen Objekts in einer einzigen Transaktion.

Beispiele

Siehe Erstellen einer Webhook-Benachrichtigungsintegration.