Vertex AI Pipelines puede notificarte sobre el resultado correcto o con errores de una ejecución de canalización. Cuando la canalización se cierra, Google Cloud envía un correo electrónico de notificación del estado final a las direcciones de correo electrónico que especifiques.
En esta guía, se muestra cómo configurar las notificaciones por correo electrónico de una canalización mediante el componente de notificación por correo electrónico en el SDK de componentes de canalización de Google Cloud.
Antes de comenzar
Antes de compilar una canalización que envíe notificaciones, usa las siguientes instrucciones para configurar tu proyecto de Google Cloud y el entorno de desarrollo.
Para preparar tu proyecto de Google Cloud a fin de ejecutar canalizaciones de AA, sigue las instrucciones que figuran en la guía para configurar un proyecto de Google Cloud.
Instala la versión v1.8. o una versión posterior del SDK de Kubeflow Pipelines.
Opcional: Antes de instalar, ejecuta el siguiente comando para ver qué versión del SDK de Kubeflow Pipelines está instalada:pip freeze | grep kfp
Para usar el cliente de Python de Vertex AI en tus canalizaciones, instala las bibliotecas del cliente de Vertex AI versión 1.7 o posterior.
Para usar los servicios de Vertex AI en tus canalizaciones, instala los componentes de canalización de Google Cloud.
Envía una notificación por correo electrónico
En el siguiente ejemplo, se muestra cómo configurar las notificaciones por correo electrónico definiendo una tarea de notificación por correo electrónico (notify_email_task
) y agregá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 electrónico 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')
Reemplaza lo siguiente:
PIPELINE_NAME: Es el nombre de la canalización.
PIPELINE_ROOT_PATH: Especifica un URI de Cloud Storage al que pueda acceder la cuenta de servicio de tus canalizaciones. Los artefactos de las ejecuciones de tus canalizaciones se almacenan en la raíz de la canalización.
La raíz de la canalización se puede configurar como un argumento de la anotación
@kfp.dsl.pipeline
en la función de canalización, o se puede configurar cuando llamas acreate_run_from_job_spec
para crear una ejecución de canalización.TASK_NAME: Es el nombre de la tarea de canalización para la que configuras las notificaciones por correo electrónico.
RECIPIENTS_LIST: Es una lista separada por comas de hasta tres direcciones de correo electrónico a las que se enviará la notificación por correo electrónico.
Agrega las tareas de tu canalización en el cuerpo de la función del controlador de salida dsl.ExitHandler
. Si unes las tareas en la función del controlador de salida de esta manera, especificas que el componente de notificación por correo electrónico debe informar el estado de estas tareas cuando se cierra la canalización. Por ejemplo, si falla una tarea dentro del contenido del controlador de salida, la notificación informará el estado como con errores.
Ejemplo de una notificación por correo electrónico
Si configuras las notificaciones por correo electrónico para una canalización con la muestra de código en Envía una notificación desde una canalización, Vertex AI enviará una notificación por correo electrónico similar a la siguiente cuando se cierre la canalización:
Asunto: Trabajo de Vertex Pipelines "PIPELINE_NAME" tarea "TASK_NAME”.
De: Notificaciones de Google <notify-noreply@google.com>>
Estimado cliente de AI Vertex:
El trabajo de canalizaciones de Vertex "PIPELINE_NAME" tarea "TASK_NAME" finalizó con el siguiente estado: {status}.
Detalles adicionales:
- Proyecto: {project}
- Nombre de la canalización: PIPELINE_NAME
- ID del trabajo de canalización: {pipeline_job_id}
- Hora de inicio: {start_time}
Para ver este trabajo de canalización en la consola de Cloud, usa el siguiente vínculo: {console_link}
Saludos,
El equipo de IA de Google Cloud
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 del trabajo de canalización único.{start_time}
representa la hora de inicio de la canalización.{console_link}
es un hipervínculo al trabajo de canalización en la consola de Google Cloud.