CREATE NOTIFICATION INTEGRATION (webhooks)¶

Crée une intégration de notification ou remplace une intégration existante pour un webhook.

Voir aussi :

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

Syntaxe¶

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

ParamÚtres requis¶

name

ChaĂźne spĂ©cifiant l’identificateur (c’est-Ă -dire le nom) de l’intĂ©gration ; elle doit ĂȘtre unique sur votre compte.

De plus, l’identificateur doit commencer par un caractĂšre alphabĂ©tique et ne peut pas contenir d’espaces ou de caractĂšres spĂ©ciaux Ă  moins que toute la chaĂźne d’identificateur soit dĂ©limitĂ©e par des guillemets doubles (par exemple, "My object"). Les identificateurs entre guillemets doubles sont Ă©galement sensibles Ă  la casse.

Pour plus d’informations, voir Exigences relatives à l’identificateur.

ENABLED = { TRUE | FALSE }

SpĂ©cifie s’il faut initier le fonctionnement de l’intĂ©gration ou le suspendre.

  • TRUE permet l’intĂ©gration.

  • FALSE dĂ©sactive l’intĂ©gration de la maintenance. Toute intĂ©gration entre Snowflake et un service tiers Ă©choue.

TYPE = WEBHOOK

SpĂ©cifie qu’il s’agit d’une intĂ©gration de notification pour un webhook.

WEBHOOK_URL = 'url'

SpĂ©cifie l’URL pour le webhook. L’URL doit utiliser le protocole https://.

Vous ne pouvez spécifier que les URLs suivantes.

  • URLs pour les webhooks Slack. Ces URLs doivent commencer par https://hooks.slack.com/services/.

  • URLs pour les webhooks Teams. Ces URLs doivent utiliser le format gĂ©nĂ©ral suivant :

    https://<hostname>.webhook.office.com/webhookb2/<path_components>/IncomingWebhook/<path_components>
    
    Copy
  • URLs pour les webhooks PagerDuty. Cette URL doit ĂȘtre https://events.pagerduty.com/v2/enqueue.

Si l’URL comprend un secret et vous crĂ©ez un objet secret pour ce secret, remplacez ce secret dans l’URL par SNOWFLAKE_WEBHOOK_SECRET. Par exemple, si vous crĂ©ez un objet secret pour le secret dans un webhook Slack URL, dĂ©finissez WEBHOOK_URL sur :

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

ParamÚtres facultatifs¶

WEBHOOK_SECRET = secret_name

Spécifie le secret à utiliser avec cette intégration.

Si vous utilisez l’espace rĂ©servĂ© SNOWFLAKE_WEBHOOK_SECRET dans WEBHOOK_URL, WEBHOOK_BODY_TEMPLATE ou WEBHOOK_HEADERS, l’espace rĂ©servĂ© est remplacĂ© par ce secret lorsque vous envoyez une notification.

Si la base de donnĂ©es et le schĂ©ma contenant l’objet secret ne sont pas actifs lorsque vous envoyez une notification, qualifiez le nom secret avec le nom du schĂ©ma ou les noms de la base de donnĂ©es et du schĂ©ma. Par exemple :

WEBHOOK_SECRET = my_secrets_db.my_secrets_schema.my_slack_webhook_secret
Copy

Vous devez avoir le privilÚge USAGE sur le secret (et la base de données et le schéma qui le contiennent) pour spécifier ce paramÚtre.

Par dĂ©faut : aucune valeur

WEBHOOK_BODY_TEMPLATE = 'template_for_http_request_body'

SpĂ©cifie un modĂšle pour le corps de la demande HTTP d’envoi de la notification.

Si le webhook nĂ©cessite un format spĂ©cifique pour le corps de la demande HTTP (par exemple, un format JSON spĂ©cifique), dĂ©finissez-le sur une chaĂźne qui spĂ©cifie le format. Dans cette chaĂźne :

  • Si le message doit inclure un secret et que vous crĂ©ez un objet secret pour ce secret, utilisez l’espace rĂ©servĂ© SNOWFLAKE_WEBHOOK_SECRET oĂč le secret doit apparaĂźtre dans le message.

  • Utilisez l’espace rĂ©servĂ© SNOWFLAKE_WEBHOOK_MESSAGE oĂč le message de notification doit ĂȘtre inclus.

Par exemple :

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

Si vous dĂ©finissez WEBHOOK_BODY_TEMPLATE, vous devez Ă©galement dĂ©finir WEBHOOK_HEADERS pour inclure l’en-tĂȘte Content-Type avec le type de votre message. Par exemple, si vous dĂ©finissez WEBHOOK_BODY_TEMPLATE sur un modĂšle en format JSON, dĂ©finissez WEBHOOK_HEADERS pour inclure l’en-tĂȘte Content-Type: application/json :

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

Par dĂ©faut : aucune valeur

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

SpĂ©cifie une liste d’en-tĂȘtes HTTP et valeurs Ă  inclure dans la demande HTTP pour le webhook.

Si un en-tĂȘte HTTP doit inclure un secret (par exemple, l’en-tĂȘte Authorization) et que vous crĂ©ez un objet secret pour ce secret, utilisez l’espace rĂ©servĂ© SNOWFLAKE_WEBHOOK_SECRET dans la valeur d’en-tĂȘte. Par exemple :

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

Par dĂ©faut : aucune valeur

COMMENT = 'string_literal'

ChaĂźne (littĂ©ral) qui spĂ©cifie un commentaire pour l’intĂ©gration.

Par dĂ©faut : aucune valeur

Exigences en matiĂšre de contrĂŽle d’accĂšs¶

Un rĂŽle utilisĂ© pour exĂ©cuter cette opĂ©ration doit au minimum disposer des privilĂšges suivants :

PrivilĂšge

Objet

Remarques

CREATE INTEGRATION

Compte

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

USAGE

Secret

Si vous définissez la propriété WEBHOOK_SECRET sur un objet secret, vous devez avoir le privilÚge USAGE sur ce secret et sur la base de données et le schéma contenant ce secret.

Pour obtenir des instructions sur la crĂ©ation d’un rĂŽle personnalisĂ© avec un ensemble spĂ©cifique de privilĂšges, voir CrĂ©ation de rĂŽles personnalisĂ©s.

Pour des informations gĂ©nĂ©rales sur les rĂŽles et les privilĂšges accordĂ©s pour effectuer des actions SQL sur des objets sĂ©curisables, voir Aperçu du contrĂŽle d’accĂšs.

Notes sur l’utilisation¶

  • Concernant les mĂ©tadonnĂ©es :

    Attention

    Les clients doivent s’assurer qu’aucune donnĂ©e personnelle (autre que pour un objet utilisateur), donnĂ©e sensible, donnĂ©e Ă  exportation contrĂŽlĂ©e ou autre donnĂ©e rĂ©glementĂ©e n’est saisie comme mĂ©tadonnĂ©e lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de mĂ©tadonnĂ©es dans Snowflake.

  • Les clauses OR REPLACE et IF NOT EXISTS s’excluent mutuellement. Elles ne peuvent pas ĂȘtre utilisĂ©es dans la mĂȘme instruction.

  • Les instructions CREATE OR REPLACE <objet> sont atomiques. En d’autres termes, lorsqu’un objet est remplacĂ©, l’ancien objet est supprimĂ© et le nouvel objet est créé dans une seule transaction.

Exemples¶

Voir CrĂ©ation d’une intĂ©gration de notification webhook.