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.
Folgen Sie der Anleitung unter Google Cloud-Projekt konfigurieren, um Ihr Google Cloud-Projekt zur Ausführung von ML-Pipelines vorzubereiten.
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
Um den Python-Client von Vertex AI in Ihren Pipelines zu verwenden, installieren Sie die Vertex AI-Clientbibliothek v1.7 oder höher.
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 voncreate_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, entwederSUCCEEDED
,FAILED
oderCANCELLED
.{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.