設定電子郵件通知

Vertex AI Pipelines 可通知您管道執行結果是否成功。管道結束時, Google Cloud 會將最終狀態通知電子郵件傳送至您指定的電子郵件地址。

本指南說明如何使用 Google Cloud SDK 中的電子郵件通知元件,設定管道的電子郵件通知。

事前準備

在建構用於傳送通知的管道之前,請按照下列指示設定 Google Cloud 專案和開發環境。

  1. 如要讓 Google Cloud 專案準備好執行 ML 管道,請按照指南中的操作說明設定Google Cloud 專案

  2. 安裝 Kubeflow Pipelines SDK 2 以上版本。

    pip install --upgrade "kfp>=2,<3"
    
  1. 如要在管道中使用 Vertex AI Python 用戶端,請安裝 Vertex AI 用戶端程式庫 1.7 以上版本

  2. 如要在管道中使用 Vertex AI 服務,請安裝Google Cloud Pipeline 元件

透過管道傳送通知

以下範例說明如何設定電子郵件通知,方法是定義電子郵件通知工作 (notify_email_task),並將其新增至管道的結束處理常式 (dsl.ExitHandler)。這個通知工作會在管道結束時,在電子郵件通知元件中叫用 VertexNotificationEmailOp 運算子。

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

更改下列內容:

  • PIPELINE_NAME:管道的名稱。

  • PIPELINE_ROOT_PATH:指定 管道服務帳戶可存取的 Cloud Storage URI。管道執行作業的構件會儲存在管道根目錄中。

    管道根目錄可設為管道函式上 @kfp.dsl.pipeline 註解的引數,也可以在呼叫 create_run_from_job_spec 以建立管道執行作業時設定。

  • TASK_NAME:您要設定電子郵件通知的管道工作名稱。

  • RECIPIENTS_LIST:以半形逗號分隔的清單,最多可包含三個要傳送通知電子郵件的電子郵件地址。

dsl.ExitHandler 退出處理常式函式的主體中新增管道工作。透過這種方式在退出處理常式函式中包裝工作,您可以指定通知電子郵件元件應在管道退出時回報這些工作的狀態。舉例來說,如果結束處理常式內容中的任務失敗,通知就會將狀態回報為失敗。

通知電子郵件範例

如果您使用「從管道傳送通知」中的程式碼範例設定管道的電子郵件通知,Vertex AI 會在管道結束時傳送電子郵件通知,內容類似以下範例:

主旨:Vertex Pipelines 工作「PIPELINE_NAME」任務「TASK_NAME
寄件者:Google 通知 <notify-noreply@google.com>

Vertex AI 客戶,你好:

Vertex Pipelines 工作「PIPELINE_NAME」任務「TASK_NAME」結束時的狀態為:{status}。

其他詳細資料:
- 專案:{project}
- 管道名稱:PIPELINE_NAME
- 管道工作 ID:{pipeline_job_id}
- 開始時間:{start_time}

如要在 Cloud 控制台查看這個管道工作,請使用以下連結:{console_link}

敬啟,
Google Cloud AI 團隊

在這個例子中:

  • {status} 代表任務的最終狀態,可以是 SUCCEEDEDFAILEDCANCELLED
  • {project} 是專案名稱。
  • {pipeline_job_id} 是管道工作 ID。
  • {start_time} 代表管道的開始時間。
  • {console_link} 是 Google Cloud 控制台中管道工作的超連結。