Habilitação de notificações de erro para tarefas usando Microsoft Azure Event Grid¶
Este tópico fornece instruções para configurar o suporte de notificação de erros para tarefas que utilizam Microsoft Azure Event Grid.
Habilitação de notificações de erro usando Microsoft Azure Event Grid¶
Para habilitar as notificações de tarefa, siga as etapas nas próximas seções.
Etapa 1: Criar um tópico personalizado do Event Grid¶
Um tópico do Event Grid oferece um ponto de extremidade para o qual a fonte envia notificações de eventos. Crie um tópico dedicado para receber notificações de erro publicadas pelo Snowflake. Você pode usar um único tópico para receber notificações de erro para todos os canais (para notificações de erro do Snowpipe) ou tarefas (para notificações de erro da tarefa) em sua conta Snowflake.
Para instruções sobre a criação de tópicos do Event Grid, consulte a documentação do Event Grid. Registre o ponto de extremidade do tópico do Event Grid, pois ele será necessário mais tarde nestas instruções.
Opcionalmente, inscreva-se no tópico para informar o Event Grid que você deseja acompanhar e para onde enviar esses eventos.
Etapa 2: Criar uma integração de notificação no Snowflake¶
Recupere a ID do locatário¶
Recupere a ID do locatário do Azure, pois ela será necessária mais tarde nestas instruções.
Faça login no portal do Microsoft Azure.
Navegue até Azure Active Directory » Properties. Registre o valor Tenant ID para referência posterior. A ID do diretório, ou ID do locatário, é necessária para gerar o URL de consentimento que concede ao Snowflake acesso ao tópico do Event Grid.
Criação da integração de notificação¶
Crie uma integração usando o comando CREATE NOTIFICATION INTEGRATION. Uma integração é um objeto Snowflake que faz referência à fila de armazenamento Azure que você criou.
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.
CREATE NOTIFICATION INTEGRATION <integration_name>
ENABLED = true
TYPE = QUEUE
NOTIFICATION_PROVIDER = AZURE_EVENT_GRID
DIRECTION = OUTBOUND
AZURE_EVENT_GRID_TOPIC_ENDPOINT = '<event_grid_topic_endpoint>'
AZURE_TENANT_ID = '<azure_tenant_id>'
Por exemplo:
CREATE NOTIFICATION INTEGRATION myint
ENABLED = true
TYPE = QUEUE
NOTIFICATION_PROVIDER = AZURE_EVENT_GRID
DIRECTION = OUTBOUND
AZURE_EVENT_GRID_TOPIC_ENDPOINT = 'https://myaccount.region-1.eventgrid.azure.net/api/events'
AZURE_TENANT_ID = 'mytenantid';
Onde:
event_grid_topic_endpoint
é o ponto de extremidade do tópico do Event Grid que você registrou na seção Etapa 1.azure_tenant_id
é sua ID de diretório Azure ou ID de locatário que você registrou anteriormente nesta seção.
Concessão de acesso do Snowflake ao tópico¶
Execute o comando DESCRIBE INTEGRATION para recuperar o URL de consentimento:
DESC NOTIFICATION INTEGRATION <integration_name>;
Onde:
integration_name
é o nome da integração que você criou em Criação da integração de notificação.
Observe os valores nas colunas seguintes:
- AZURE_CONSENT_URL:
URL para a página de solicitação de permissões da Microsoft.
- AZURE_MULTI_TENANT_APP_NAME:
Nome do aplicativo cliente do Snowflake criado para sua conta. Em uma etapa posterior desta seção, você precisará conceder a este aplicativo as permissões necessárias para obter um token de acesso para seu tópico permitido.
Em um navegador da Web, navegue até o URL na coluna AZURE_CONSENT_URL. A página exibe uma página de solicitação de permissões da Microsoft.
Clique no botão Accept. Esta ação permite que a entidade de segurança do serviço Azure criada para sua conta Snowflake tenha um token de acesso em recursos específicos dentro de seu locatário. A obtenção de um token de acesso só tem sucesso se você conceder à entidade de segurança de serviço as permissões apropriadas sobre o contêiner (consulte a próxima etapa).
A página de solicitações de permissão da Microsoft é redirecionada para o site corporativo da Snowflake (snowflake.com).
Faça login no portal do Microsoft Azure.
Navegue até Azure Active Directory » Enterprise applications. Verifique se o identificador do aplicativo Snowflake que você registrou na Etapa 2 nesta seção está listado.
Importante
Se você excluir o aplicativo Snowflake no Azure Active Directory posteriormente, a integração da notificação deixa de funcionar.
Navegue até Event Grid Topics »
topic_name
, ondetopic_name
é o nome do tópico que você criou para receber notificações de eventos.Clique em Access Control (IAM) » Add role assignment.
Pesquise a entidade de segurança do serviço Snowflake. Esta é a identidade na propriedade AZURE_MULTI_TENANT_APP_NAME na saída DESC NOTIFICATION INTEGRATION (na Etapa 1). Pesquise a cadeia de cadeia de caracteres antes do sublinhado na propriedade AZURE_MULTI_TENANT_APP_NAME.
Importante
Pode levar uma hora ou mais para que o Azure crie a entidade de segurança do serviço Snowflake solicitada por meio da página de solicitação da Microsoft nesta seção. Se a entidade de segurança de serviço não estiver disponível imediatamente, recomendamos esperar uma ou duas horas e depois procurar novamente.
Se você excluir a entidade de segurança do serviço, a integração da notificação deixa de funcionar.
Conceda ao aplicativo Snowflake a permissão remetente de dados EventGrid.
Etapa 3: 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.