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
}
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>
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'
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
É 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", } }'
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çalhoContent-Type: application/json
:WEBHOOK_HEADERS=('Content-Type'='application/json')
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')
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.