Auslösen von Anwendungen, Prozessen oder CI/CD-Workflows basierend auf Azure Machine Learning-Ereignissen

In diesem Artikel erfahren Sie, wie Sie ereignisgesteuerte Anwendungen, Prozesse oder CI/CD-Workflows basierend auf Azure Machine Learning-Ereignissen einrichten. Sie können z. B. Fehlerbenachrichtigungs-E-Mails oder ML-Pipelines einrichten, wenn bestimmte Bedingungen mithilfe von Azure Event Grid erkannt werden.

Azure Machine Learning verwaltet den gesamten Lebenszyklus des maschinellen Lernprozesses, einschließlich Modellschulungen, Modellbereitstellung und Überwachung. Mithilfe von Event Grid können Sie mithilfe moderner serverloser Architekturen auf Azure Machine Learning Ereignisse reagieren, z. B. den Abschluss von Schulungsläufen und die Registrierung und Bereitstellung von Modellen. Anschließend können Sie Ereignisse wie Änderung des Ausführungsstatus, Ausführungsabschluss, Modellregistrierung und Modellbereitstellung in einem Arbeitsbereich abonnieren und nutzen.

Verwenden des Ereignisrasters für ereignisgesteuerte Aktionen:

  • Senden von E-Mails nach fehlerhafter und abgeschlossener Ausführung
  • Verwenden einer Azure-Funktion nach dem Registrieren eines Modells
  • Streamen von Ereignissen von Azure Machine Learning zu verschiedenen Endpunkten

Wichtig

Die in diesem Artikel markierten Elemente (Vorschau) sind aktuell als öffentliche Vorschau verfügbar. Die Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Voraussetzungen

Für die Verwendung von Event Grid benötigen Sie Zugriff für Mitwirkende oder Besitzer*innen auf den Azure Machine Learning-Arbeitsbereich, für den Sie Ereignisse erstellen.

  • Registrieren Sie den Microsoft.EventGrid-Ressourcenanbieter in Ihrem Azure-Abonnement. Diese Registrierung ist erforderlich, bevor Sie Ereignisabonnements erstellen können.

    az provider register --namespace Microsoft.EventGrid --wait
    
  • Wenn Sie das Beispiel "Logic Apps" verwenden möchten, registrieren Sie den Microsoft.Logic Anbieter ebenfalls.

    az provider register --namespace Microsoft.Logic --wait
    
  • Wenn Sie beabsichtigen, dem CLI-Beispiel zu folgen, installieren Sie die eventgrid Azure CLI Erweiterung.

    az extension add --name eventgrid
    
  • Wenn Sie beabsichtigen, dem CLI-Beispiel mit Event Hub als Ziel zu folgen, benötigen Sie einen vorhandenen Event Hub-Namespace und einen Hub. Lesen Sie " Erstellen eines Event Hubs ", wenn Sie einen erstellen müssen.

Das Ereignismodell und die Typen

Azure Event Grid liest Ereignisse aus Quellen, z. B. Azure Machine Learning und andere Azure-Dienste. Sie sendet diese Ereignisse an Ereignishandler wie Azure Event Hubs, Azure Functions, Logik-Apps und andere. Das folgende Diagramm zeigt, wie Ereignisraster Quellen und Handler verbindet, aber es handelt sich nicht um eine umfassende Liste der unterstützten Integrationen.

Diagramm, das zeigt, wie Azure Event Grid Quellen wie Azure Machine Learning mit Ereignishandlern wie Azure Functions und Logik-Apps verbindet.

Weitere Informationen zu Ereignisquellen und Ereignishandlern finden Sie unter Was ist Event Grid?.

Ereignistypen für Azure Machine Learning

Azure Machine Learning bietet Veranstaltungen an verschiedenen Stellen des Machine Learning-Lebenszyklus:

Ereignistyp BESCHREIBUNG
Microsoft.MachineLearningServices.RunCompleted Ausgelöst, wenn ein Machine Learning-Experiment abgeschlossen ist
Microsoft.MachineLearningServices.ModelRegistered Wird ausgelöst, wenn ein neues Modell oder eine neue Modellversion erfolgreich registriert wurde
Microsoft.MachineLearningServices.ModelDeployed Wird ausgelöst, wenn ein oder mehrere Modelle erfolgreich auf einem Endpunkt bereitgestellt werden
Microsoft.MachineLearningServices.RunStatusChanged Wird ausgelöst, wenn sich ein Ausführungsstatus ändert

Filtern und Abonnieren von Ereignissen

Azure Event Grid veröffentlicht diese Ereignisse. Über das Azure-Portal, PowerShell oder Azure CLI können Sie ganz einfach Ereignisse abonnieren, indem sie mindestens einen Ereignistyp sowie Filterbedingungen angeben.

Wenden Sie beim Einrichten Ihrer Ereignisse Filter an, damit diese nur bei bestimmten Ereignisdaten ausgelöst werden. Im folgenden Beispiel können Sie bei Ereignissen mit geändertem Ausführungsstatus nach Ausführungstypen filtern. Das Ereignis wird nur ausgelöst, wenn die Kriterien erfüllt sind. Weitere Informationen zu den Ereignisdaten, nach denen Sie filtern können, finden Sie im Event Grid-Schema für Azure Machine Learning.

Azure rollenbasierte Zugriffssteuerung (Azure RBAC) schützt Abonnements für Azure Machine Learning Ereignisse. Nur ein Mitwirkender oder Besitzer eines Arbeitsbereichs kann Ereignisabonnements erstellen, aktualisieren und löschen. Sie können Filter entweder während der Erstellung des Ereignisabonnements oder zu einem späteren Zeitpunkt auf Ereignisabonnements anwenden.

  1. Wechseln Sie zum Azure-Portal, und wählen Sie ein neues oder ein vorhandenes Abonnement aus.

  2. Wählen Sie den Eintrag "Ereignisse " im linken Bereich aus, und wählen Sie dann +Ereignisabonnement aus.

  3. Wählen Sie die Registerkarte "Filter " aus, und scrollen Sie nach unten zu erweiterten Filtern. Geben Sie unter Schlüssel und Wert die Eigenschaftstypen an, nach denen Sie filtern möchten. Hier können Sie sehen, dass das Ereignis nur ausgelöst wird, wenn der Ausführungstyp eine Ausführung der Pipeline oder eine Ausführung eines Pipeline-Schritts ist.

    Filtern von Ereignissen

  • Filtern nach Ereignistyp: In einem Ereignisabonnement können ein oder mehrere Azure Machine Learning-Ereignistypen angegeben sein.

  • Filtern nach Ereignisgegenstand: Azure Event Grid unterstützt Gegenstandsfilter auf Grundlage von Übereinstimmungen vom Typ beginnt mit und endet mit, sodass Ereignisse mit einem übereinstimmenden Gegenstand an den Abonnenten übermittelt werden. Unterschiedliche Machine Learning-Ereignisse haben unterschiedliche Gegenstandsformate.

    Ereignistyp Gegenstandsformat Beispielgegenstand
    Microsoft.MachineLearningServices.RunCompleted experiments/{ExperimentId}/runs/{RunId} experiments/b1d7966c-f73a-4c68-b846-992ace89551f/runs/my_exp1_1554835758_38dbaa94
    Microsoft.MachineLearningServices.ModelRegistered models/{modelName}:{modelVersion} models/sklearn_regression_model:3
    Microsoft.MachineLearningServices.ModelDeployed endpoints/{serviceId} endpoints/my_sklearn_aks
    Microsoft.MachineLearningServices.RunStatusChanged experiments/{ExperimentId}/runs/{RunId} experiments/b1d7966c-f73a-4c68-b846-992ace89551f/runs/my_exp1_1554835758_38dbaa94
  • Erweiterte Filterung: Azure Event Grid unterstützt auch erweitertes Filtern anhand eines veröffentlichten Ereignisschemas. Ausführliche Informationen zum Azure Machine Learning-Ereignisschema finden Sie unter Azure Event Grid-Ereignisschema für Azure Machine Learning. Für das Microsoft.MachineLearningServices.ModelRegistered-Ereignis Filtern des Tagwerts eines Modells:

    --advanced-filter data.ModelTags.key1 StringIn value1
    

    Weitere Informationen zum Anwenden von Filtern finden Sie unter Filtern von Ereignissen für Event Grid.

Nutzen von Machine Learning-Ereignissen

Anwendungen, die Machine Learning-Ereignisse behandeln, sollten einigen empfohlene Vorgehensweisen entsprechen:

  • Da mehrere Abonnements Ereignisse an denselben Ereignishandler weiterleiten können, gehen Sie nicht davon aus, dass Ereignisse aus einer bestimmten Quelle stammen. Überprüfen Sie das Thema der Nachricht, um sicherzustellen, dass sie vom erwarteten Maschinellen Lernarbeitsbereich stammt.
  • Überprüfen Sie ebenso, ob der eventType einer ist, den Sie verarbeiten können. Gehen Sie nicht davon aus, dass alle empfangenen Ereignisse die typen sind, die Sie erwarten.
  • Da Nachrichten in falscher Reihenfolge und mit Verzögerung eintreffen können, verwenden Sie die etag-Felder, um zu verstehen, ob Ihre Informationen zu Objekten weiterhin auf dem neuesten Stand ist. Verwenden Sie auch die sequencer-Felder, um die Reihenfolge der Ereignisse für ein bestimmtes Objekt zu verstehen.
  • Ignorieren Sie Felder, die Sie nicht verstehen. Diese Vorgehensweise hilft Ihnen, gegenüber neuen Funktionen, die künftig hinzugefügt werden, robust zu bleiben.
  • Fehlgeschlagene oder abgebrochene Azure Machine Learning Vorgänge lösen kein Ereignis aus. Wenn beispielsweise eine Modellbereitstellung fehlschlägt, Microsoft. MachineLearningServices.ModelDeployed wird nicht ausgelöst. Berücksichtigen Sie solche Fehlermodi, wenn Sie Ihre Anwendungen entwerfen. Sie können jederzeit Azure Machine Learning SDK, CLI oder Portal verwenden, um den Status eines Vorgangs zu überprüfen und die detaillierten Fehlergründe zu verstehen.

mit Azure Event Grid können Sie entkoppelte Nachrichtenhandler erstellen, die Azure Machine Learning Ereignisse auslösen können. Einige wichtige Beispiele für Nachrichtenhandler sind:

  • Azure Functions
  • Azure Logic Apps
  • Azure Event Hubs
  • Azure Data Factory-Pipeline
  • Generische Webhooks, die Sie auf der Azure-Plattform oder an anderer Stelle hosten können

Einrichtung im Azure-Portal

  1. Öffnen Sie das Azure-Portal, und navigieren Sie zu Ihrem Azure Machine Learning-Arbeitsbereich.

  2. Wählen Sie in der linken Leiste die Option Ereignisse aus, und wählen Sie dann Ereignisabonnements aus.

    Screenshot: Ereignisabonnementauswahl

  3. Wählen Sie den Typ des zu nutzenden Ereignisses aus.

    Screenshot: Formular „Ereignisabonnement erstellen“

  4. Wählen Sie den Endpunkt aus, für den das Ereignis veröffentlicht werden soll. Im folgenden Screenshot ist Event Hub der ausgewählte Endpunkt:

    Screenshot: Bereich „Ereignisabonnement erstellen“ mit geöffnetem Fenster „Event Hub-Instanz auswählen“

Wenn Sie Ihre Auswahl bestätigen, wählen Sie "Erstellen" aus. Nach der Konfiguration werden diese Ereignisse an Ihren Endpunkt übertragen.

Einrichtung mit der CLI

Sie können entweder die neueste Azure CLI installieren oder die Azure Cloud Shell verwenden, die als Bestandteil Ihres Azure-Abonnements bereitgestellt wird.

Um die Event Grid-Erweiterung zu installieren, verwenden Sie den folgenden Befehl in der CLI (Command-Line Interface, Befehlszeilenschnittstelle):

az extension add --name eventgrid

Im folgenden Beispiel wird veranschaulicht, wie Sie ein Azure-Abonnement auswählen und ein neues Ereignisabonnement für Azure Machine Learning erstellen:

# Select the Azure subscription that contains the workspace
az account set --subscription "<name or ID of the subscription>"

# Subscribe to the machine learning workspace. This example uses EventHub as a destination. 
az eventgrid event-subscription create --name {eventGridFilterName} \
  --source-resource-id /subscriptions/{subId}/resourceGroups/{RG}/providers/Microsoft.MachineLearningServices/workspaces/{wsName} \
  --endpoint-type eventhub \
  --endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.EventHub/namespaces/n1/eventhubs/EH1 \
  --included-event-types Microsoft.MachineLearningServices.ModelRegistered \
  --subject-begins-with "models/mymodelname"

Führen Sie Folgendes aus, um zu bestätigen, dass das Abonnement erfolgreich erstellt wurde:

az eventgrid event-subscription show \
  --name {eventGridFilterName} \
  --source-resource-id /subscriptions/{subId}/resourceGroups/{RG}/providers/Microsoft.MachineLearningServices/workspaces/{wsName}

Beispiele

Beispiel: Senden von E-Mail-Benachrichtigungen

Verwenden Sie Azure Logic Apps, um E-Mails für Ihre Ereignisse zu konfigurieren. Passen Sie diese mit Bedingungen an, und geben Sie Empfänger an, um die Zusammenarbeit und Beachtung zwischen Teams zu ermöglichen, die zusammenarbeiten.

  1. Wechseln Sie im Azure-Portal zu Ihrem Azure Machine Learning-Arbeitsbereich, und wählen Sie in der linken Leiste die Registerkarte „Ereignisse“ aus. Wählen Sie dort die Option Logik-Apps aus.

    Screenshot: Auswahl von „Logik-Apps“

  2. Melden Sie sich bei der Logik-App-Benutzeroberfläche an, und wählen Sie Machine Learning Dienst als Thementyp aus.

    Screenshot: Dialogfeld „When a resource event occurs“ (Bei Auftreten eines Ressourcenereignisses), bei dem Machine Learning als Ressourcentyp ausgewählt ist

  3. Wählen Sie das Ereignis aus, für das Sie benachrichtigt werden möchten. Der folgende Screenshot zeigt beispielsweise RunCompleted.

    Screenshot: Machine Learning Service als Ressourcentyp

  4. Fügen Sie nun einen Schritt hinzu, um dieses Ereignis zu nutzen und nach E-Mails zu suchen. Es gibt mehrere unterschiedliche E-Mail-Konten, die Sie zum Empfangen von Ereignissen verwenden können. Außerdem können Sie Bedingungen dazu festlegen, wann eine E-Mail-Benachrichtigung gesendet werden soll.

    Screenshot: Dialogfeld „Aktion auswählen“ mit „E-Mail“ im Suchfeld

  5. Wählen Sie E-Mail senden aus, und geben Sie Werte für die Parameter ein. Schließen Sie im Betreff den Ereignistyp und das Thema ein, um Ereignisse zu filtern. Sie können auch in den Nachrichtentext einen Link zur Arbeitsbereichsseite für Ausführungen einfügen.

    Um diese Aktion zu speichern, wählen Sie Speichern unter in der linken Ecke der Seite aus.

    Screenshot: Dialogfeld „E-Mail senden“, bei dem „Thema“ und „Ereignistyp“ aus der Liste rechts in der Betreffzeile hinzugefügt wurden

Nächste Schritte

Weitere Informationen zum Ereignisraster und zum Testen von Azure Machine Learning Ereignissen finden Sie unter: