Habilitação de notificações de erro para tarefas usando Google Pub/Sub¶
Este tópico fornece instruções para configurar o suporte de notificação de erros para tarefas que utilizam Google Pub/Sub.
Habilitação de notificações de erro usando Google Pub/Sub¶
Para habilitar as notificações de tarefa, siga as etapas nas próximas seções.
Etapa 1: Criar o tópico Pub/Sub¶
Crie um tópico Pub/Sub que possa receber mensagens de notificação de erro do Snowflake ou reutilizar um tópico existente. Você pode criar o tópico usando SDK Cloud Shell ou Cloud. Para obter mais informações, consulte Criação e uso de tópicos na documentação do Pub/Sub.
Por exemplo, execute o seguinte comando para criar um tópico vazio:
$ gsutil notification create -t <topic>
Se o tópico já existe, o comando o utiliza; caso contrário, é criado um novo tópico.
Etapa 2: Criar a assinatura Pub/Sub¶
Opcionalmente, crie uma assinatura para o tópico Pub/Sub para recuperar notificações de erro. Você pode criar uma assinatura com entrega por Pull usando a ferramenta de linha de comando gcloud
ou a API Cloud Pub/Sub. Para obter instruções, consulte Gerenciamento de tópicos e assinaturas na documentação do Pub/Sub.
Etapa 3: Criar uma integração de notificação no Snowflake¶
Crie uma integração de notificação usando o comando CREATE NOTIFICATION INTEGRATION. A integração de notificação faz referência ao seu tópico Pub/Sub. O Snowflake associa a integração de notificação com uma conta de serviço Goodle Cloud Platform (GCP) criada para sua conta. O Snowflake cria uma única conta de serviço que é referenciada por todas as integrações de notificação GCP em sua conta Snowflake.
Nota
Somente administradores de conta (usuários com a função ACCOUNTADMIN) ou uma função com o privilégio global CREATE INTEGRATION podem executar este comando SQL.
A conta de serviço GCP para integrações de notificação é diferente da conta de serviço criada para integrações de armazenamento.
CREATE NOTIFICATION INTEGRATION <integration_name>
ENABLED = TRUE
TYPE = QUEUE
DIRECTION = OUTBOUND
NOTIFICATION_PROVIDER = GCP_PUBSUB
GCP_PUBSUB_TOPIC_NAME = '<topic_id>'
Onde:
integration_name
é o nome da nova integração.topic_id
é o tópico Pub/Sub para o qual o Snowflake envia notificações de erro. Para obter mais informações, consulte Etapa 1: Criar o tópico Pub/Sub (neste tópico).
Por exemplo:
CREATE NOTIFICATION INTEGRATION my_notification_int
TYPE = QUEUE
DIRECTION = OUTBOUND
NOTIFICATION_PROVIDER = GCP_PUBSUB
ENABLED = true
GCP_PUBSUB_TOPIC_NAME = 'projects/sdm-prod/topics/mytopic';
Etapa 4: Conceder acesso do Snowflake à assinatura Pub/Sub¶
Execute o comando DESCRIBE INTEGRATION para recuperar a ID da conta de serviço Snowflake:
DESC NOTIFICATION INTEGRATION <integration_name>;
Onde:
integration_name
é o nome da integração que você criou em “Etapa 1: Criar uma integração de notificação no Snowflake”.
Por exemplo:
DESC NOTIFICATION INTEGRATION my_notification_int;
Registre o nome da conta de serviço na coluna GCP_PUBSUB_SERVICE_ACCOUNT, que tem o seguinte formato:
<service_account>@<project_id>.iam.gserviceaccount.com
Acesse o Console Google Cloud Platform como editor de projeto.
No painel inicial, escolha Big Data » Pub/Sub » Subscriptions.
Selecione a assinatura a ser configurada para acesso.
Clique em SHOW INFO PANEL no canto superior direito. O painel de informações da assinatura é exibido.
No campo Add members, procure pelo nome da conta de serviço que você registrou.
A partir do menu suspenso Select a role, selecione Pub/Sub Publisher.
Clique no botão Add. O nome da conta de serviço é adicionado ao menu suspenso da função Pub/Sub Publisher no painel de informações.
Etapa 5: habilitar notificações de erro em tarefas¶
Você então ativa a notificação de erro, seja em uma tarefa autônoma ou raiz, definindo ERROR_INTEGRATION como nome da integração da notificação. Você pode definir a propriedade ao criar uma tarefa (usando CREATE TASK) ou mais tarde (usando ALTER TASK).
Para obter mais detalhes, consulte Configuração de uma tarefa para enviar notificações de erro.