Configurer les notifications par e-mail

Vertex AI Pipelines peut vous informer de la réussite ou de l'échec d'une exécution de pipeline. Lorsque le pipeline se ferme, Google Cloud envoie un e-mail de notification d'état final aux adresses e-mail que vous spécifiez.

Ce guide explique comment configurer les notifications par e-mail à partir d'un pipeline à l'aide du composant de notification par e-mail du SDK Google Cloud Pipeline Components.

Avant de commencer

Avant de créer un pipeline qui envoie des notifications, suivez les instructions ci-dessous pour configurer votre projet Google Cloud et votre environnement de développement.

  1. Pour préparer votre projet Google Cloud à exécuter des pipelines de ML, suivez les instructions du guide de configuration de votre projet Google Cloud.

  2. Installez la version 1.8 ou une version ultérieure du SDK Kubeflow Pipelines.
    (Facultatif) Avant l'installation, exécutez la commande suivante pour voir quelle version du SDK Kubeflow Pipelines est actuellement installée :

      pip freeze | grep kfp
    
  3. Pour utiliser le client Python Vertex AI dans vos pipelines, installez les bibliothèques clientes Vertex AI version 1.7 ou ultérieure.

  4. Pour utiliser les services d'IA Vertex dans vos pipelines, installez les composants de pipeline Google Cloud.

Envoyer une notification à partir d'un pipeline

L'exemple suivant montre comment configurer les notifications par e-mail en définissant une tâche de notification par e-mail (notify_email_task) et en l'ajoutant au gestionnaire de sortie du pipeline (dsl.ExitHandler). Cette tâche de notification appelle l'opérateur VertexNotificationEmailOp dans le composant de notification par e-mail lorsque le pipeline se ferme.

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')

Remplacez les éléments suivants :

  • PIPELINE_NAME : nom du pipeline.

  • PIPELINE_ROOT_PATH : spécifiez un URI Cloud Storage auquel votre compte de service de pipelines peut accéder. Les artefacts des exécutions de votre pipeline sont stockés dans la racine du pipeline.

    La racine du pipeline peut être définie en tant qu'argument de l'annotation @kfp.dsl.pipeline sur la fonction du pipeline, ou elle peut être définie lorsque vous appelez create_run_from_job_spec pour créer une exécution de pipeline.

  • TASK_NAME : nom de la tâche de pipeline pour laquelle vous configurez des notifications par e-mail.

  • RECIPIENTS_LIST : liste pouvant contenir jusqu'à trois adresses e-mail séparées par une virgule pouvant recevoir les notifications.

Ajoutez vos tâches de pipeline dans le corps de la fonction du gestionnaire de sortie dsl.ExitHandler. En encapsulant les tâches de la fonction du gestionnaire de sortie de cette manière, vous indiquez que le composant d'e-mail de notification doit signaler l'état de ces tâches lorsque le pipeline se ferme. Par exemple, si une tâche du contenu du gestionnaire de sortie échoue, la notification indiquera l'état "Échec".

Exemple d'e-mail de notification

Si vous configurez les notifications par e-mail pour un pipeline à l'aide de l'exemple de code présenté à la section Envoyer une notification à partir d'un pipeline, Vertex AI envoie une notification par e-mail semblable à ce qui suit à la fermeture du pipeline :

Objet : Job Vertex Pipelines "PIPELINE_NAME" tâche "TASK_NAME"
De : Notifications Google <[email protected]>

Cher client Vertex AI, bonjour,

Le job Vertex Pipelines "PIPELINE_NAME" tâche "TASK_NAME" s'est terminé avec l'état suivant : {status}.

Détails supplémentaires :
- Projet : {project}
- Nom du pipeline : PIPELINE_NAME
- Job ID du pipeline : {pipeline_job_id}
- Heure de début : {start_time}

Pour afficher ce job de pipeline dans la console Cloud, utilisez le lien suivant : {console_link}

Cordialement,
L'équipe Google Cloud AI

Dans cet exemple :

  • {status} représente l'état final de la tâche, qui peut être SUCCEEDED, FAILED ou CANCELLED.
  • {project} est le nom du projet.
  • {pipeline_job_id} est le job ID unique du pipeline.
  • {start_time} représente l'heure de début du pipeline.
  • {console_link} est un lien hypertexte vers le job de pipeline dans la console Google Cloud.