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

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

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';
Copy

Etapa 4: Conceder acesso do Snowflake à assinatura Pub/Sub

  1. Execute o comando DESCRIBE INTEGRATION para recuperar a ID da conta de serviço Snowflake:

    DESC NOTIFICATION INTEGRATION <integration_name>;
    
    Copy

    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;
    
    Copy
  2. 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
    
    Copy
  3. Acesse o Console Google Cloud Platform como editor de projeto.

  4. No painel inicial, escolha Big Data » Pub/Sub » Subscriptions.

  5. Selecione a assinatura a ser configurada para acesso.

  6. Clique em SHOW INFO PANEL no canto superior direito. O painel de informações da assinatura é exibido.

  7. No campo Add members, procure pelo nome da conta de serviço que você registrou.

  8. A partir do menu suspenso Select a role, selecione Pub/Sub Publisher.

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