在作業上新增通知
您可以針對下列事件,設定在作業運行和個別任務時傳送的通知:
- 開始
- 成功完成
- 失敗
- 持續時間超過設定的臨界值
您可以將通知傳送至一或多個電子郵件位址或第三方目的地,例如 Slack、Microsoft Teams、PagerDuty 或任何 Webhook 型服務。 本文說明您可以設定作業層級通知的不同方式。
新增第三方系統目的地
您可以設定要傳遞至第三方系統的通知。 第三方系統目的地會與熱門通知工具整合,包括 Slack、PagerDuty、Microsoft Teams,以及 HTTP webhooks。 管理員必須設定系統目的地。
若要設定系統目的地,請移至 [系統管理員設定] 頁面,按下 [編輯系統通知],然後按兩下 [建立新的目的地。 對於每個工作或任務,您可為每個通知事件類型設定最多三個系統目的地。 請參閱 管理設定頁面。
重要
Slack 和 Microsoft Teams 訊息的內容在未來版本中可能會有所變更。 您不應實作依賴於這些訊息的特定內容或格式的用戶端或處理。 如果您需要通知的特定架構或格式設定,Databricks 建議設定使用者定義的 Webhook。
設定工作職務的通知
開始之前,請考慮下列事項:
- 重試失敗的工作時,不會傳送作業層級通知。 若要在每個失敗的工作之後接收失敗通知,請改用工作通知。 若要為工作執行新增通知,請在新增或編輯作業工作時,按一下工作面板中 通知 旁的 [新增]。
- 對於每個工作或任務,您可為每個通知事件類型設定最多三個系統目的地。
- 在 成功但有部分失敗的狀態 下已完成的工作會被視為成功狀態。 若要在此狀態下完成作業時收到通知,您必須在設定通知時選取 [成功]。
- 若要在作業超過持續時間限制時收到通知,您必須設定限制。
若要在作業執行開始時、完成或失敗時新增一或多個通知,請執行下列動作:
- 在作業的 [作業詳細資料] 面板中,向下捲動至 [作業通知] 區段,然後按下 [編輯通知]。
- 在左下角,點擊 新增通知。
- 在 目的地中,選取 [電子郵件位址] 或系統目的地。
- 針對您想要收到通知的每個事件類型選取複選框:開始、成功、失敗、持續時間警告,或 串流待辦專案。
- 若要設定另一個目的地,請按兩下 再次新增通知,然後遵循先前的步驟。
- 設定所有通知之後,請按下 儲存。
設定慢速作業的通知
如果您已為作業設定
串流積壓量的計量適用於以下內容:
- 當平均積壓量在10分鐘內超過定義的閾值時,就會發送通知。
- 為了防止訊息過多,Azure Databricks 會先等候 30 分鐘,再判斷是否要傳送另一則訊息。 雖然待辦專案仍然很高,但您會以 30 分鐘的間隔收到更新。
過濾掉略過或取消執行的通知
可以藉由過濾掉已略過或已取消執行時的通知來減少發送的通知數量。 若要篩選通知,請在您新增或修改電子郵件通知或系統通知時,選取 略過執行的靜音通知 或 取消執行的靜音通知。
根據預設,工作會在完全失敗前重試三次。 設定工作通知時,您可以選取 [靜音通知,直到最後一次重試],來篩選所有通知,直到最後一次重試為止。
注意
當您針對作業選取 靜音略過執行的通知 或 靜音取消執行的通知 時,它不會篩選掉針對作業任務設置的通知。 若要過濾略過或取消執行的所有通知,還必須過濾掉已設定的任何任務層級通知。
HTTP Webhook 酬載
您可以設定 HTTP 網路回呼,在下表所列的事件發生時進行傳送。
事件類型代碼 | 何時傳送? |
---|---|
jobs.on_start |
當執行開始時傳送。 |
jobs.on_success |
當執行停止且以失敗狀態成功或成功完成時傳送。 |
jobs.on_failure |
當任務以失敗狀態停止時發送通知。 |
jobs.on_duration_warning_threshold_exceeded |
當執行運行超過設定的預期持續時間時傳送。 |
以下是 Azure Databricks 傳送至已設定端點的範例承載。 這些 webhooks 可以套用至工作或任務。
工作執行啟動事件的通知:
{
"event_type": "jobs.on_start",
"workspace_id": "your_workspace_id",
"run": {
"run_id": "run_id"
},
"job": {
"job_id": "job_id",
"name": "job_name"
}
}
任務執行啟動事件的通知:
{
"event_type": "jobs.on_start",
"workspace_id": "your_workspace_id",
"task": {
"task_key": "task_name"
},
"run": {
"run_id": "run_id_of_task"
"parent_run_id": "run_id_of_parent_job_run"
},
"job": {
"job_id": "job_id",
"name": "job_name"
}
}
工作任務失敗通知:
{
"event_type": "jobs.on_failure",
"workspace_id": "your_workspace_id",
"run": {
"run_id": "run_id"
},
"job": {
"job_id": "job_id",
"name": "job_name"
}
}
工作執行成功的通知:
{
"event_type": "jobs.on_success",
"workspace_id": "your_workspace_id",
"task": {
"task_key": "task_name"
},
"run": {
"run_id": "run_id_of_task"
"parent_run_id": "run_id_of_parent_job_run"
},
"job": {
"job_id": "job_id",
"name": "job_name"
}
}