因為工作關係稍微接觸了一下如何呼叫 Azure Databricks Job API,觸發並執行 notebooks。這裡簡單紀錄設定流程,給有興趣或有需要的朋友參考。本篇文章若有錯誤或任何好的建議,請各位先進不吝提出,謝謝。





設定的流程可以分成三個部分,若你不透過 Azure Logic App 進行觸發,可以跳過第3個部分

1. Azure Databricks Job 設定

2. Job API 設定說明

3. Azure Logic App 設定




Azure Databricks Job 設定

步驟 1. 開啟 Azure Databricks,在左邊選單點選 Job





步驟 2. 點選上方 Create Job





步驟 3. 輸入 Job Name。因為我們要使用外部觸發,所以我們排程類型選擇 Manual(Paused);依據需求選擇要執行的 Notebook 與執行的 cluster,在下方可以增加觸發時所需要的參數,可以依據你得需求增加,另外記下 Job ID,使用 API 觸發 Job的時候會用到。完成後點選儲存。





步驟 4. 完成 Job 設定,再呼叫 Job API 之前我們要產生 Token,透過此 Token 才能使用 Job API,點選右上角使用者圖示 > User Settings
 





步驟 5. 上方選擇 Access Tokens,點選 Generate New Token





步驟 6. 輸入名稱與 Token 有效時間 




步驟 7. 複製 token (關閉此視窗後即看不到此 Token,若忘記只能重新產生)









Job API 設定說明

完整的 API 內容如下 (Azure Databricks URL 即為你服務的網址):

URL: https://{Azure Databricks url}/api/2.0/jobs/run-now
HTTP Verb: HTTP post
Header: Authorization: Bearer {你的token}
Body: {
    "job_id": 你的job ID,
    "notebook_params": {
        "你設定的參數名稱": "你設定的參數值"
    }
}


你可以使用API 測試工具 postman 試試看,確定可以正常觸發 Job






Azure Logic App 設定

步驟 1. 開啟 Azure Portal,點選建立服務 > Azure Logic App 






步驟 2. 點選建立







步驟 3. 依據需求輸入基本資料、標籤,持續下一步後點選建立服務













步驟 4. 點選建立 HTTP 觸發服務,建立收到 HTTP 要求。要求本文可以保留空白,因為我們只需要做到觸發動作,你可以依據情境加入參數至本文。






步驟 5. 新增呼叫 HTTP 步驟,依序輸入我們需要的資料,包含方法、URI 與 本文。儲存即完成設定






步驟 6. 點選上方觸發按鈕進行測試,你可以在左邊選單開起執行歷程記錄檢視是否觸發成功。



步驟 7. 回到 Azure Databricks > Job,即可看見你觸發的 Job 在執行中/執行完成