Configure notificações por email

Os Vertex AI Pipelines podem enviar-lhe uma notificação sobre o êxito ou a falha de uma execução de pipeline. Quando o pipeline termina, Google Cloud envia um email de notificação do estado final para os endereços de email que especificar.

Este guia mostra como configurar notificações por email a partir de um pipeline através do componente de notificação por email no Google Cloud SDK.

Antes de começar

Antes de criar um pipeline que envie notificações, use as seguintes instruções para configurar o seu Google Cloud projeto e ambiente de desenvolvimento.

  1. Para preparar o seu Google Cloud projeto para executar pipelines de ML, siga as instruções no guia para configurar o seu Google Cloud projeto.

  2. Instale a versão 2 ou posterior do SDK Kubeflow Pipelines.

    pip install --upgrade "kfp>=2,<3"
    
  1. Para usar o cliente Python do Vertex AI nos seus pipelines, instale as bibliotecas cliente do Vertex AI v1.7 ou posterior.

  2. Para usar os serviços do Vertex AI nos seus pipelines, instale os Google Cloud componentes de pipeline.

Envie uma notificação a partir de um pipeline

O exemplo seguinte mostra como configurar notificações por email definindo uma tarefa de notificação por email (notify_email_task) e adicionando-a ao controlador de saída do pipeline (dsl.ExitHandler). Esta tarefa de notificação invoca o operador VertexNotificationEmailOp no componente de notificação por email quando o pipeline é terminado.

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

Substitua o seguinte:

  • PIPELINE_NAME: o nome da pipeline.

  • PIPELINE_ROOT_PATH: especifique um URI do Cloud Storage ao qual a sua conta de serviço de pipelines possa aceder. Os artefactos das execuções do pipeline são armazenados na raiz do pipeline.

    A raiz do pipeline pode ser definida como um argumento da anotação @kfp.dsl.pipeline na função do pipeline ou pode ser definida quando chama create_run_from_job_spec para criar uma execução do pipeline.

  • TASK_NAME: o nome da tarefa do pipeline para a qual está a configurar notificações por email.

  • RECIPIENTS_LIST: uma lista separada por vírgulas de até três endereços de email para os quais enviar o email de notificação.

Adicione as tarefas do pipeline no corpo da função do controlador de saída dsl.ExitHandler. Ao incluir as tarefas na função do controlador de saída desta forma, especifica que o componente de email de notificação deve comunicar o estado destas tarefas quando o pipeline for terminado. Por exemplo, se uma tarefa no conteúdo do controlador de saída falhar, a notificação comunica o estado como falhado.

Exemplo de um email de notificação

Se configurar notificações por email para um pipeline através do exemplo de código em Enviar uma notificação a partir de um pipeline, o Vertex AI envia uma notificação por email semelhante à seguinte quando o pipeline é terminado:

Assunto: Tarefa "PIPELINE_NAME" do trabalho "TASK_NAME" do Vertex Pipelines
De: Notificações Google <notify-noreply@google.com>

Olá, cliente do Vertex AI,

A tarefa "PIPELINE_NAME" do trabalho "TASK_NAME" do Vertex AI Pipelines terminou com o seguinte estado: {status}.

Detalhes adicionais:
- Projeto: {project}
- Nome do pipeline: PIPELINE_NAME
- ID da tarefa do pipeline: {pipeline_job_id}
- Hora de início: {start_time}

Para ver esta tarefa do pipeline na Cloud Console, use o seguinte link: {console_link}

Atentamente,
A Google Cloud equipa de IA

Neste exemplo:

  • {status} representa o estado final da tarefa, que pode ser SUCCEEDED, FAILED ou CANCELLED.
  • {project} é o nome do projeto.
  • {pipeline_job_id} é o ID exclusivo da tarefa de pipeline.
  • {start_time} representa a hora de início do pipeline.
  • {console_link} é uma hiperligação para a tarefa do pipeline na Google Cloud consola.