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 innerhalb des Inhalts 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 mit dem Codebeispiel 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}

Sie können sich diesen Pipeline-Job in der Cloud Console unter dem folgenden Link ansehen: {console_link}

Viele Grüße
Ihr Google Cloud AI-Team

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 Pipeline-Job in der Google Cloud Console.