Configuração de uma tarefa para envio de notificações de êxito

O Snowflake pode enviar notificações de sucesso para um serviço de mensagens na nuvem quando um gráfico de tarefas é concluído com êxito. Este tópico fornece instruções para configurar o suporte à notificação de êxito para tarefas que usam mensagens na nuvem.

A integração da notificação de sucesso só é especificada em uma tarefa raiz de um gráfico de tarefas. O Snowflake só envia notificações de êxito quando todo o gráfico de tarefas é executado com sucesso e não envia notificações para nenhuma tarefa autônoma executada com sucesso, o que é diferente da integração de notificação de erro.

Nota

O recurso de notificação de êxito da tarefa é compatível tanto com tarefas sem servidor quanto com tarefas gerenciadas pelo usuário (ou seja, tarefas que dependem de um warehouse virtual para fornecer os recursos de computação).

Para permitir que uma tarefa envie notificações de êxito, é necessário associar a tarefa a uma integração de notificação de mensagem. Siga a documentação da tarefa para criar uma integração de notificação com o Amazon Web Services Simple Notification Service (AWS SNS), Microsoft Azure Event Grid ou Google Pub/Sub.

Criação de uma nova tarefa ou modificação de uma tarefa existente para envio de notificações de êxito

É possível associar a tarefa a uma integração de notificação ao executar o comando CREATE TASK para criar uma nova tarefa ou ao executar o comando ALTER TASK para modificar uma tarefa existente.

Nota

Criar ou modificar uma tarefa que faz referência a uma integração de notificação requer uma função que tenha o privilégio USAGE sobre a integração de notificação. Além disso, a função deve ter ou o privilégio CREATE TASK sobre o esquema ou o privilégio OWNERSHIP para a tarefa, respectivamente.

CREATE [ OR REPLACE ] TASK [ IF NOT EXISTS ] <name>
    WAREHOUSE = <string>
    [...]
    SUCCESS_INTEGRATION = <integration_name>
Copy
ALTER TASK <name> SET SUCCESS_INTEGRATION = <integration_name>;
Copy

Onde:

SUCCESS_INTEGRATION = integration_name

Nome da integração de notificação criada em uma das notificações de nível de plataforma AWS SNS, Microsoft Azure Event Grid ou Google Pub/Sub.

Exibição de notificações de êxito

É possível executar SHOW TASKS ou DESCRIBE TASK para ver as notificações de êxito da tarefa. O Snowflake adiciona uma nova coluna, success_integration, à saída de SHOW TASKS e DESCRIBE TASK. Esse campo exibe nulo para todas as tarefas filho. Esse campo exibe o nome da integração de sucesso em nível de gráfico se a integração de notificação for especificada em uma tarefa raiz, e exibe nulo caso contrário.

Carga útil

O corpo das mensagens de sucesso inclui informações que identificam o gráfico da tarefa, como rootTaskName, rootTaskID, queryID e attemptNumber. A seguir, um exemplo de carga útil de mensagem para uma notificação de êxito de gráfico de tarefas.

{"version":"1.0",
 "messageId":"3ff1eff0-7ad7-493c-9552-c0307087e0c6",
 "messageType":"USER_TASK_GRAPH_SUCCEEDED",
 "timestamp":"2021-11-11T19:46:39.648Z",
 "accountName":"AWS_UTEN_DPO_ACC",
 "rootTaskName":"AWS_UTEN_DPO_DB.AWS_UTEN_SC.UTEN_AWS_TK1",
 "rootTaskId":"01a03962-2b57-889e-0000-000000000001",
 "messages": [{
              "runId":"2021-11-11T19:46:23.826Z",
              "scheduledTime":"2021-11-11T19:46:23.826Z",
              "queryStartTime":"2021-11-11T19:46:24.879Z",
              "graphCompletedTime":"2021-11-11T19:54:24.5591",
              "queryId":"01a03962-0300-0002-0000-0000000034d8",
              "attemptNumber":5
}]}
Copy

Observe que você deve analisar a cadeia de caracteres em um objeto JSON para processar valores na carga útil.