ALTER NOTIFICATION INTEGRATION (webhooks)

Modifie les propriétés d’une intégration de notification existante pour un webhook.

Voir aussi :

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

Syntaxe

ALTER [ NOTIFICATION ] INTEGRATION [ IF EXISTS ] <name> SET
  [ 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>' ]

ALTER [ NOTIFICATION ] INTEGRATION [ IF EXISTS ] <name> UNSET {
  ENABLED               |
  WEBHOOK_SECRET        |
  WEBHOOK_BODY_TEMPLATE |
  WEBHOOK_HEADERS       |
  COMMENT
}
Copy

Paramètres

name

Indique l’identificateur de l’intégration à modifier.

Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.

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

SET ...

Définit une ou plusieurs propriétés pour l’intégration :

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.

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

UNSET ...

Désactive une ou plusieurs propriétés de l’intégration, ce qui réinitialise les propriétés à leurs valeurs par défaut :

  • ENABLED

  • WEBHOOK_SECRET

  • WEBHOOK_BODY_TEMPLATE

  • WEBHOOK_HEADERS

  • COMMENT

Pour désactiver plusieurs propriétés ou paramètres via une seule instruction ALTER, séparez chaque propriété ou paramètre par une virgule.

Lorsque vous désactivez une propriété ou un paramètre, spécifiez uniquement le nom de propriété ou de paramètre (sauf si la syntaxe ci-dessus indique que vous devez spécifier la valeur). La spécification de la valeur renvoie une erreur.

Exigences en matière de contrôle d’accès

Un rôle utilisé pour exécuter cette commande SQL doit avoir les privilèges suivants définis au minimum ainsi :

Privilège

Objet

Remarques

OWNERSHIP

Intégration

OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege).

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.