ALTER NOTIFICATION INTEGRATION (webhooks)

Modifica as propriedades de uma integração de notificação existente para um webhook.

Consulte também:

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

Sintaxe

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

Parâmetros

name

Especifica o identificador para a integração a ser alterada.

Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Para obter mais informações, consulte Requisitos para identificadores.

SET ...

Define uma ou mais propriedades para a integração:

ENABLED = { TRUE | FALSE }

Especifica se deve iniciar a operação da integração ou suspendê-la.

  • TRUE permite a integração.

  • FALSE desabilita a integração para manutenção. Qualquer integração entre o Snowflake e um serviço de terceiro não funciona.

WEBHOOK_URL = 'url'

Especifica o URL para o webhook. O URL devem usar o protocolo https://.

É possível especificar apenas os seguintes URLs:

  • URLs para webhooks do Slack. Esses URLs devem começar com https://hooks.slack.com/services/.

  • URLs para webhooks do Teams. Esses URLs devem usar o seguinte formato geral:

    https://<hostname>.webhook.office.com/webhookb2/<path_components>/IncomingWebhook/<path_components>
    
    Copy
  • URLs para webhooks PagerDuty. Este URL deve ser https://events.pagerduty.com/v2/enqueue.

Se o URL inclui um segredo e você criou um objeto secreto para esse segredo, substitua esse segredo no URL por SNOWFLAKE_WEBHOOK_SECRET. Por exemplo, se você criou um objeto secreto para o segredo em um URL de webhook do Slack, defina WEBHOOK_URL como:

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

Especifica o segredo a ser usado com esta integração.

Se você estiver usando o espaço reservado SNOWFLAKE_WEBHOOK_SECRET em WEBHOOK_URL, WEBHOOK_BODY_TEMPLATE ou WEBHOOK_HEADERS, o espaço reservado será substituído por este segredo quando você enviar uma notificação.

Se o banco de dados e o esquema com o objeto secreto não estiverem ativos quando você enviar uma notificação, qualifique o nome do segredo com o nome do esquema ou os nomes do banco de dados e esquema. Por exemplo:

WEBHOOK_SECRET = my_secrets_db.my_secrets_schema.my_slack_webhook_secret
Copy

É necessário ter privilégio USAGE no segredo (e no banco de dados e esquema que o contém) para especificar este parâmetro.

Padrão: sem valor

WEBHOOK_BODY_TEMPLATE = 'template_for_http_request_body'

Especifica um modelo para o corpo da solicitação HTTP a ser enviada para a notificação.

Se o webhook exigir um formato específico para o corpo da solicitação HTTP (por exemplo, um formato JSON específico), defina isso como uma cadeia de caracteres que especifique o formato. Nesta cadeia de caracteres:

  • Se a mensagem precisar incluir um segredo, e você tiver criado um objeto secreto para esse segredo, use o espaço reservado SNOWFLAKE_WEBHOOK_SECRET onde o segredo deve aparecer na mensagem.

  • Use o espaço reservado SNOWFLAKE_WEBHOOK_MESSAGE onde a mensagem de notificação precisa ser incluída.

Por exemplo:

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

Se você definir WEBHOOK_BODY_TEMPLATE, também é necessário definir WEBHOOK_HEADERS para incluir o cabeçalho Content-Type com o tipo da mensagem. Por exemplo, se você definir WEBHOOK_BODY_TEMPLATE para um modelo no formato JSON, defina WEBHOOK_HEADERS para incluir o cabeçalho Content-Type: application/json:

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

Padrão: sem valor

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

Especifica uma lista de cabeçalhos HTTP e valores a serem incluídos na solicitação HTTP do webhook.

Se um cabeçalho HTTP precisar incluir um segredo (por exemplo, o cabeçalho Authorization) e você criou um objeto secreto para esse segredo, use o espaço reservado SNOWFLAKE_WEBHOOK_SECRET no valor do cabeçalho. Por exemplo:

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

Padrão: sem valor

COMMENT = 'string_literal'

Cadeia de caracteres (literal) que especifica um comentário da integração.

Padrão: sem valor

UNSET ...

Desconfigura uma ou mais propriedades para a integração, o que redefine as propriedades para seus valores padrão:

  • ENABLED

  • WEBHOOK_SECRET

  • WEBHOOK_BODY_TEMPLATE

  • WEBHOOK_HEADERS

  • COMMENT

Para desmarcar várias propriedades ou parâmetros com uma única instrução ALTER, separe cada propriedade ou parâmetro com uma vírgula.

Ao desmarcar uma propriedade ou parâmetro, especifique apenas o nome da propriedade ou parâmetro (a menos que a sintaxe acima indique que você deve especificar o valor). Especificar o valor retorna um erro.

Requisitos de controle de acesso

Uma função usada para executar este comando SQL deve ter os seguintes privilégios no mínimo:

Privilégio

Objeto

Notas

OWNERSHIP

Integração

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

Segredo

Se você definir a propriedade WEBHOOK_SECRET como um objeto secreto, será necessário ter o privilégio USAGE sobre esse segredo e sobre o banco de dados e o esquema que o contém.

Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.

Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.

Notas de uso

  • Em relação aos metadados:

    Atenção

    Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.