Activation des notifications d’erreur des tâches à l’aide de Microsoft Azure Event Grid¶
Cette rubrique fournit des instructions pour configurer la prise en charge des notifications d’erreur pour des tâches à l’aide de Microsoft Azure Event Grid.
Activation de la notification des erreurs à l’aide de Microsoft Azure Event Grid¶
Pour activer les notifications de tâches, suivez les étapes des sections suivantes.
Étape 1 : Création d’une rubrique Event Grid personnalisée¶
Une rubrique Event Grid fournit un point de terminaison où la source envoie des notifications d’événements. Créez une rubrique dédiée pour recevoir les notifications d’erreur publiées par Snowflake. Vous pouvez utiliser un seul sujet pour recevoir des notifications d’erreur pour tous les canaux (pour les notifications d’erreur Snowpipe) ou pour toutes les tâches (pour les notifications d’erreur de tâches) dans votre compte Snowflake.
Pour obtenir des instructions sur la création de rubriques Event Grid, consultez la documentation Event Grid. Enregistrez le point de terminaison de la rubrique Event Grid, dont vous aurez besoin plus tard dans ces instructions.
Vous pouvez également vous abonner à la rubrique pour indiquer à Event Grid les événements que vous souhaitez suivre et où envoyer ces événements.
Étape 2 : Création d’une intégration de notification dans Snowflake¶
Récupérer l’ID du client¶
Récupérez votre ID de client Azure, dont vous aurez besoin plus tard dans ces instructions.
Connectez-vous au portail Microsoft Azure.
Accédez à Azure Active Directory » Properties. Enregistrez la valeur Tenant ID pour référence plus tard. L’ID de répertoire , ou ID de client, est nécessaire pour générer l’URL de consentement qui accorde à Snowflake l’accès à la rubrique Event Grid.
Créer l’intégration des notifications¶
Créez une intégration à l’aide de la commande CREATE NOTIFICATION INTEGRATION. une intégration est un objet Snowflake qui fait référence à la file d’attente du stockage Azure que vous avez créée.
Note
Seuls les administrateurs de compte (utilisateurs dotés du rôle ACCOUNTADMIN) ou un rôle disposant du privilège global CREATE INTEGRATION peuvent exécuter cette commande 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>'
Par exemple :
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';
Où :
event_grid_topic_endpoint
est le point de terminaison de la rubrique Event Grid que vous avez enregistré à l’étape 1 de la section.azure_tenant_id
est votre ID de répertoire Azure, ou ID de client, que vous avez enregistré plus tôt dans cette section.
Accorder un accès à Snowflake à la rubrique¶
Exécutez la commande DESCRIBE INTEGRATION pour récupérer l’URL de consentement :
DESC NOTIFICATION INTEGRATION <integration_name>;
Où :
integration_name
est le nom de l’intégration créée dans Créer l’intégration des notifications.
Notez les valeurs dans les colonnes suivantes :
- AZURE_CONSENT_URL:
URL vers la page de demande d’autorisations de Microsoft.
- AZURE_MULTI_TENANT_APP_NAME:
Nom de l’application client Snowflake créée pour votre compte. Plus loin dans cette section, vous devrez accorder à cette application les autorisations nécessaires pour obtenir un jeton d’accès sur votre sujet autorisé.
Dans un navigateur Web, accédez à l’URL dans la colonne AZURE_CONSENT_URL . La page affiche une page de demande d’autorisations Microsoft.
Cliquez sur le bouton Accept. Cette action permet au principal du service Azure créé pour votre compte Snowflake d’obtenir un jeton d’accès sur des ressources spécifiées à l’intérieur de votre client. L’obtention d’un jeton d’accès ne réussit que si vous accordez au principal du service les autorisations appropriées sur le conteneur (voir l’étape suivante).
La page de demande d’autorisations Microsoft redirige vers le site d’entreprise de Snowflake (snowflake.com).
Connectez-vous au portail Microsoft Azure.
Accédez à Azure Active Directory » Enterprise applications. Vérifiez que l’identificateur de l’application Snowflake que vous avez enregistré à l’étape 2 de cette section est répertorié.
Important
Si vous supprimez l’application Snowflake dans Azure Active Directory plus tard, l’intégration des notifications cesse de fonctionner.
Naviguez jusqu’à Event Grid Topics »
topic_name
, oùtopic_name
est le nom de la rubrique que vous avez créée pour recevoir les notifications d’événements.Cliquez sur Access Control (IAM) » Add role assignment.
Recherchez le principal de service Snowflake. Il s’agit de l’identité de la propriété AZURE_MULTI_TENANT_APP_NAME dans la sortie DESC NOTIFICATION INTEGRATION (à l’étape 1). Recherchez la chaîne avant le trait de soulignement dans la propriété AZURE_MULTI_TENANT_APP_NAME.
Important
Azure peut prendre une heure ou plus pour créer le principal de service Snowflake demandé via la page de demande Microsoft dans cette section. Si le principal de service n’est pas disponible immédiatement, nous vous recommandons d’attendre une heure ou deux, puis de relancer la recherche.
Si vous supprimez le principal de service, l’intégration de notification cesse de fonctionner.
Accordez à l’application Snowflake l’autorisation EventGrid Data Sender.
Étape 3 : Activation des notifications d’erreur dans les tâches¶
Activez ensuite la notification d’erreur, dans une tâche autonome ou racine, en définissant ERROR_INTEGRATION comme le nom de l’intégration de la notification. Vous pouvez définir la valeur du paramètre lorsque vous créez une tâche (à l’aide de CREATE TASK) ou ultérieurement (à l’aide de ALTER TASK).
Pour plus de détails, reportez-vous à Configuration d’une tâche pour envoyer des notifications d’erreur.