E-Mail-Benachrichtigungen konfigurieren

Vertex AI Pipelines kann Sie über den Erfolg oder das Fehlschlagen einer Pipeline-Ausführung informieren. Wenn die Pipeline beendet wird, sendet Google Cloud eine endgültige Statusbenachrichtigungs-E-Mail an die von Ihnen angegebenen E-Mail-Adressen.

In dieser Anleitung wird beschrieben, wie E-Mail-Benachrichtigungen aus einer Pipeline mithilfe der E-Mail-Benachrichtigungskomponente im Google Cloud Pipeline Components SDK konfiguriert werden.

Vorbereitung

Bevor Sie eine Pipeline erstellen, die Benachrichtigungen sendet, richten Sie Ihr Google Cloud-Projekt und Ihre Entwicklungsumgebung mit der folgenden Anleitung ein.

  1. Folgen Sie der Anleitung unter Google Cloud-Projekt konfigurieren, um Ihr Google Cloud-Projekt zur Ausführung von ML-Pipelines vorzubereiten.

  2. Installieren Sie Version 1.8 oder höher des Kubeflow Pipelines SDK.
    (Optional) Führen Sie vor der Installation den folgenden Befehl aus, um zu sehen, welche Version des Kubeflow Pipelines SDK derzeit installiert ist:

      pip freeze | grep kfp
    
  3. Um den Python-Client von Vertex AI in Ihren Pipelines zu verwenden, installieren Sie die Vertex AI-Clientbibliothek v1.7 oder höher.

  4. Wenn Sie Vertex AI-Dienste in Ihren Pipelines nutzen möchten, installieren Sie die Google Cloud-Pipelinekomponenten.

Benachrichtigung aus einer Pipeline senden

Das folgende Beispiel zeigt, wie E-Mail-Benachrichtigungen konfiguriert werden. Dazu wird eine E-Mail-Benachrichtigungsaufgabe (notify_email_task) definiert und dem Exit-Handler (dsl.ExitHandler) der Pipeline hinzugefügt. Diese Benachrichtigungsaufgabe ruft den Operator VertexNotificationEmailOp in der E-Mail-Benachrichtigungskomponente auf, wenn die Pipeline beendet wird.

from kfp import dsl
from kfp import compiler
from google_cloud_pipeline_components.v1.vertex_notification_email import VertexNotificationEmailOp

@dsl.pipeline(
    name='PIPELINE_NAME',
    pipeline_root=PIPELINE_ROOT_PATH,
)
def TASK_NAME():
    notify_email_task = VertexNotificationEmailOp(recipients=RECIPIENTS_LIST)

    with dsl.ExitHandler(notify_email_task):
        # Add your pipeline tasks here.

compiler.Compiler().compile(pipeline_func=notification_email_pipeline,
        package_path='notification_email_pipeline.yaml')

Dabei gilt:

  • PIPELINE_NAME: Der Name der Pipeline.

  • PIPELINE_ROOT_PATH: Geben Sie einen Cloud Storage-URI an, auf den das Pipelines-Dienstkonto zugreifen kann. Die Artefakte Ihrer Pipelineausführungen werden im Pipeline-Stammverzeichnis gespeichert.

    Das Pipeline-Stammverzeichnis kann als Argument der Annotation @kfp.dsl.pipeline für die Pipelinefunktion festgelegt werden oder es kann beim Aufrufen von create_run_from_job_spec für die Erstellung einer Pipelineausführung festgelegt werden.

  • TASK_NAME: Der Name der Pipelineaufgabe, für die Sie E-Mail-Benachrichtigungen konfigurieren.

  • RECIPIENTS_LIST: Eine durch Kommas getrennte Liste mit bis zu drei E-Mail-Adressen, an die die Benachrichtigungs-E-Mail gesendet werden soll.

Fügen Sie Ihre Pipelineaufgaben im Text der dsl.ExitHandler-Exit-Handler-Funktion hinzu. Wenn Sie die Aufgaben in der Exit-Handler-Funktion auf diese Weise zusammenfassen, geben Sie an, dass die Benachrichtigungs-E-Mail-Komponente den Status dieser Aufgaben melden soll, wenn die Pipeline beendet wird. Beispiel: Wenn eine Aufgabe im Inhalt des Exit-Handlers fehlschlägt, meldet die Benachrichtigung den Status als fehlgeschlagen.

Beispiel für eine Benachrichtigungs-E-Mail

Wenn Sie E-Mail-Benachrichtigungen für eine Pipeline mithilfe des Codebeispiels unter Benachrichtigung aus einer Pipeline senden konfigurieren, sendet Vertex AI eine E-Mail-Benachrichtigung ähnlich der folgenden, wenn die Pipeline beendet wird:

Betreff: Vertex-Pipelines-Job „PIPELINE_NAME” Aufgabe „TASK_NAME
Von: Google Notifications <notify-:@google.com>

Hallo Vertex AI-Kunde,

Vertex-Pipelines-Job „PIPELINE_NAME” Aufgabe „TASK_NAME” wurde mit dem folgenden Status beendet: {status}.

Weitere Informationen:
- Projekt: {project}
- Pipelinename: PIPELINE_NAME
- Pipeline-Job-ID: {pipeline_job_id}
- Startzeit: {start_time}

Verwenden Sie den folgenden Link, um diesen Pipelinejob in der Cloud Console anzusehen: {console_link}

Viele Grüße
Ihr KI-Team von Google Cloud

In diesem Fall gilt Folgendes:

  • {status} steht für den endgültigen Status der Aufgabe, entweder SUCCEEDED, FAILED oder CANCELLED.
  • {project} ist der Projektname.
  • {pipeline_job_id} ist die eindeutige Pipelinejob-ID.
  • {start_time} steht für die Startzeit der Pipeline.
  • {console_link} ist ein Hyperlink zum Pipelinejob in der Google Cloud Console.