Aktivieren von Fehlerbenachrichtigungen für Aufgaben mit Microsoft Azure Event Grid¶
Unter diesem Thema wird eine Anleitung zur Konfiguration von Fehlerbenachrichtigungen für Aufgaben unter Verwendung von Microsoft Azure Event Grid bereitgestellt.
Aktivieren von Fehlerbenachrichtigungen mit Microsoft Azure Event Grid¶
Um Aufgabenbenachrichtigungen zu aktivieren, führen Sie die in den nächsten Abschnitten beschriebenen Schritte aus.
Schritt 1: Erstellen eines kundenspezifischen Event Grid-Themas¶
Ein Event Grid-Thema stellt einen Endpunkt bereit, an den die Quelle Ereignisbenachrichtigungen sendet. Erstellen Sie ein dediziertes Thema, um von Snowflake veröffentlichte Fehlerbenachrichtigungen zu erhalten. Sie können ein einziges Thema verwenden, um Fehlerbenachrichtigungen für alle Pipes (für Snowpipe-Fehlerbenachrichtigungen) oder Aufgaben (für Aufgabenfehlerbenachrichtigungen) in Ihrem Snowflake-Konto zu erhalten.
Eine Anleitung zum Erstellen von Event Grid-Themen finden Sie in der Event Grid-Dokumentation. Notieren Sie sich den Endpunkt des Event Grid-Themas, den Sie später in dieser Anleitung benötigen werden.
Abonnieren Sie optional das Thema, um Event Grid mitzuteilen, welche Ereignisse Sie verfolgen möchten und wohin diese Ereignisse gesendet werden sollen.
Schritt 2: Erstellen einer Benachrichtigungsintegration in Snowflake¶
Mandanten-ID abrufen¶
Rufen Sie Ihre Azure-Mandanten-ID ab, die Sie später in dieser Anleitung benötigen.
Melden Sie sich beim Microsoft Azure-Portal an.
Navigieren Sie zu Azure Active Directory » Properties. Notieren Sie den Wert Tenant ID zum späteren Verweisen. Die Verzeichnis-ID oder Mandanten-ID wird benötigt, um die Zustimmungs-URL zu generieren, die Snowflake Zugriff auf das Event Grid-Thema gewährt.
Benachrichtigungsintegration erstellen¶
Erstellen Sie mit dem Befehl CREATE NOTIFICATION INTEGRATION eine Integration. Eine Integration ist ein Snowflake-Objekt, das auf die von Ihnen erstellte Azure-Speicherwarteschlange verweist.
Bemerkung
Dieser SQL-Befehl kann nur von Kontoadministratoren (Benutzer mit der Rolle ACCOUNTADMIN) oder von Rollen mit der globalen Berechtigung CREATE INTEGRATION ausgeführt werden.
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>'
Beispiel:
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';
Wobei:
event_grid_topic_endpoint
ist der Endpunkt des Event Grid-Themas, den Sie sich unter Schritt 1 notiert haben.azure_tenant_id
ist Ihre Azure-Verzeichnis-ID bzw. Ihre Mandanten-ID, die Sie zuvor in diesem Abschnitt notiert haben.
Snowflake Zugriff auf das Thema gewähren¶
Führen Sie den Befehl DESCRIBE INTEGRATION aus, um die Zustimmungs-URL abzurufen:
DESC NOTIFICATION INTEGRATION <integration_name>;
Wobei:
integration_name
ist der Name der Integration, die Sie unter Benachrichtigungsintegration erstellen erstellt haben.
Beachten Sie die Werte in den folgenden Spalten:
- AZURE_CONSENT_URL:
URL der Microsoft-Berechtigungsanforderungsseite.
- AZURE_MULTI_TENANT_APP_NAME:
Name der Snowflake-Clientanwendung, die für Ihr Konto erstellt wurde. In einem späteren Schritt in dieser Anleitung müssen Sie der Anwendung die erforderlichen Berechtigungen erteilen, um ein Zugriffstoken für die zulässigen Themen zu erhalten.
Navigieren Sie in einem Webbrowser zu der in der Spalte AZURE_CONSENT_URL angegebenen URL. Es wird eine Microsoft-Berechtigungsanforderungsseite angezeigt.
Klicken Sie auf die Schaltfläche Accept. Mit dieser Aktion kann dem Azure-Dienstprinzipal, der für Ihr Snowflake-Konto erstellt wurde, ein Zugriffstoken für die angegebenen Ressourcen in Ihrem Mandantenbereich zugewiesen werden. Das Abrufen eines Zugriffstokens ist nur erfolgreich, wenn Sie dem Dienstprinzipal die entsprechenden Berechtigungen für den Container erteilen (siehe nächster Schritt).
Die Microsoft-Berechtigungsanforderungsseite leitet auf die Snowflake-Firmenwebsite (snowflake.com) um.
Melden Sie sich beim Microsoft Azure-Portal an.
Navigieren Sie zu Azure Active Directory » Enterprise applications. Überprüfen Sie, ob der Snowflake-Anwendungsbezeichner, den Sie sich in Schritt 2 in diesem Abschnitt notiert haben, aufgeführt ist.
Wichtig
Wenn Sie die Snowflake-Anwendung zu einem anderen Zeitpunkt in Azure Active Directory löschen, funktioniert die Benachrichtigungsintegration nicht mehr.
Navigieren Sie zu Event Grid Topics »
topic_name
, wobeitopic_name
der Name des Themas ist, das Sie für den Empfang von Ereignisbenachrichtigungen erstellt haben.Klicken Sie auf Access Control (IAM) » Add role assignment.
Suchen Sie nach dem Snowflake-Dienstprinzipal. Dies ist die Identität in der Eigenschaft AZURE_MULTI_TENANT_APP_NAME der Ausgabe von DESC NOTIFICATION INTEGRATION (in Schritt 1). Suchen Sie in der Eigenschaft AZURE_MULTI_TENANT_APP_NAME nach der Zeichenfolge vor dem Unterstrich.
Wichtig
Es kann eine Stunde oder länger dauern, bis Azure den über die oben genannte Microsoft-Anforderungsseite angeforderten Snowflake-Dienstprinzipal erstellt hat. Wenn der Dienstprinzipal nicht sofort verfügbar ist, empfehlen wir, ein bis zwei Stunden zu warten und ihn dann erneut zu suchen.
Wenn Sie den Dienstprinzipal löschen, funktioniert die Benachrichtigungsintegration nicht mehr.
Erteilen Sie der Snowflake-Anwendung die Berechtigung EventGrid Data Sender.
Schritt 3: Aktivieren von Fehlerbenachrichtigungen in Aufgaben¶
Anschließend aktivieren Sie die Fehlerbenachrichtigung entweder in einer eigenständigen Aufgabe oder in einer Stammaufgabe, indem Sie ERROR_INTEGRATION den Namen der Benachrichtigungsintegration zuweisen. Sie können den Parameterwert beim Erstellen einer Aufgabe (mit CREATE TASK) oder später (mit ALTER TASK) festlegen.
Weitere Informationen dazu finden Sie unter Konfigurieren einer Aufgabe zum Senden von Fehlerbenachrichtigungen.