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.

  1. Melden Sie sich beim Microsoft Azure-Portal an.

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

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

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

  1. Führen Sie den Befehl DESCRIBE INTEGRATION aus, um die Zustimmungs-URL abzurufen:

    DESC NOTIFICATION INTEGRATION <integration_name>;
    
    Copy

    Wobei:

    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.

  2. Navigieren Sie in einem Webbrowser zu der in der Spalte AZURE_CONSENT_URL angegebenen URL. Es wird eine Microsoft-Berechtigungsanforderungsseite angezeigt.

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

  4. Melden Sie sich beim Microsoft Azure-Portal an.

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

  6. Navigieren Sie zu Event Grid Topics » topic_name, wobei topic_name der Name des Themas ist, das Sie für den Empfang von Ereignisbenachrichtigungen erstellt haben.

  7. Klicken Sie auf Access Control (IAM) » Add role assignment.

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

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