Vertex AI Pipelines puede notificarte si una ejecución de un flujo de procesamiento se ha completado correctamente o no. Cuando finaliza el flujo de procesamiento, Google Cloud envía un correo de notificación con el estado final a las direcciones de correo que especifiques.
En esta guía se muestra cómo configurar notificaciones por correo electrónico desde una canalización mediante el componente de notificación por correo electrónico del SDK de Google Cloud .
Antes de empezar
Antes de crear una canalización que envíe notificaciones, sigue estas instrucciones para configurar tu Google Cloud proyecto y tu entorno de desarrollo.
Para preparar tu Google Cloud proyecto para ejecutar las canalizaciones de aprendizaje automático, sigue las instrucciones de la guía para configurar tu Google Cloud proyecto.
Instala la versión 2 o una posterior del SDK de Kubeflow Pipelines.
pip install --upgrade "kfp>=2,<3"
Para usar el cliente de Python de Vertex AI en tus pipelines, instala las bibliotecas de cliente de Vertex AI v1.7 o versiones posteriores.
Para usar los servicios de Vertex AI en tus flujos de trabajo, instala losGoogle Cloud componentes de flujo de trabajo.
Enviar una notificación desde una canalización
En el siguiente ejemplo se muestra cómo configurar las notificaciones por correo definiendo una tarea de notificación por correo (notify_email_task
) y añadiéndola al controlador de salida de la canalización (dsl.ExitHandler
). Esta tarea de notificación invoca el operador VertexNotificationEmailOp
en el componente de notificación por correo cuando se cierra la canalización.
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')
Haz los cambios siguientes:
PIPELINE_NAME: el nombre del flujo de trabajo.
PIPELINE_ROOT_PATH: especifica un URI de Cloud Storage al que pueda acceder la cuenta de servicio de tu canalización. Los artefactos de tus ejecuciones de canalización se almacenan en la raíz de la canalización.
La raíz de la canalización se puede definir como un argumento de la anotación
@kfp.dsl.pipeline
en la función de canalización o se puede definir al llamar acreate_run_from_job_spec
para crear una ejecución de canalización.TASK_NAME: El nombre de la tarea de la canalización para la que está configurando las notificaciones por correo electrónico.
RECIPIENTS_LIST: lista separada por comas de hasta tres direcciones de correo a las que se enviará el correo de notificación.
Añade las tareas de tu flujo de procesamiento en el cuerpo de la función de controlador de salida dsl.ExitHandler
. Al envolver las tareas en la función de controlador de salida de esta forma, se especifica que el componente de correo de notificación debe informar del estado de estas tareas cuando finalice la canalización. Por ejemplo, si falla una tarea dentro del contenido del controlador de salida, la notificación informará de que el estado es "fallido".
Ejemplo de un correo de notificación
Si configuras notificaciones por correo electrónico para una canalización mediante el ejemplo de código de Enviar una notificación desde una canalización, Vertex AI enviará una notificación por correo electrónico similar a la siguiente cuando finalice la canalización:
Asunto: Tarea "TASK_NAME" del trabajo "PIPELINE_NAME" de Vertex Pipelines
De: Notificaciones de Google <notify-noreply@google.com>
Estimado cliente de Vertex AI:
La tarea "TASK_NAME" del trabajo "PIPELINE_NAME" de Vertex AI Pipelines ha finalizado con el siguiente estado: {status}.
Detalles adicionales:
- Proyecto: {project}
- Nombre de la canalización: PIPELINE_NAME
- ID del trabajo de la canalización: {pipeline_job_id}
- Hora de inicio: {start_time}
Para ver este trabajo de la canalización en Cloud Console, usa el siguiente enlace: {console_link}
Atentamente,
El Google Cloud equipo de IA
En este ejemplo:
{status}
representa el estado final de la tarea, que puede serSUCCEEDED
,FAILED
oCANCELLED
.{project}
es el nombre del proyecto.{pipeline_job_id}
es el ID único del trabajo de la canalización.{start_time}
representa la hora de inicio de la canalización.{console_link}
es un hiperenlace a la tarea de flujo de trabajo en la Google Cloud consola.