將 Azure 排程器作業移轉至 Azure Logic Apps
重要
Azure Logic Apps 已取代 Azure 排程器,後者自 2022 年 1 月 31 日起已徹底遭到淘汰。 請遵循本文中的步驟,將 Azure 排程器作業重新建立為 Azure Logic Apps 中的工作流程,以移轉 Azure 排程器作業。 Azure 排程器已無法再於 Azure 入口網站中使用。 Azure 排程器 REST API 和 Azure 排程器 PowerShell Cmdlet 不會再運作。
本指南說明如何使用 Azure Logic Apps 而非 Azure 排程器來建立自動化工作流程,藉以排程單次和週期性作業。 使用 Azure Logic Apps 建立已排程的作業時,會獲得下列好處:
使用視覺化設計工具並從 1000+ 立即可用的連接器 (如 Azure Blob 儲存體、Azure 服務匯流排、Office 365 Outlook、SAP 等等) 中挑選,以組建您的作業。
將每個排程的工作流程視為第一級 Azure 資源加以管理。 您不需擔心「作業集合」的概念,因為每個邏輯應用程式都是個別的 Azure 資源。
使用單一邏輯應用程式工作流程來執行多個單次作業。
設定可支援時區並自動調整為日光節約時間 (DST) 的排程。
如需詳細資訊,請參閱什麼是 Azure Logic Apps?,或遵循下列其中一個步驟,嘗試建立您的第一個邏輯應用程式工作流程:
必要條件
- Azure 帳戶和訂用帳戶。 如果您沒有 Azure 訂用帳戶,請先註冊免費的 Azure 帳戶。
安裝或使用可傳送 HTTP 要求以測試解決方案的工具,例如:
- Visual Studio Code 搭配 Visual Studio Marketplace 的延伸模組
- PowerShell Invoke-RestMethod
- Microsoft Edge - 網路主控台工具
- Bruno
- curl
警告
如果您有敏感資料,例如認證、秘密、存取權杖、API 金鑰和其他類似資訊,請務必使用一項工具,以必要的安全性功能保護資料、離線或本機運作、不將資料同步處理至雲端,而且不需要您登入線上帳戶。 如此一來,您就可以降低向公眾公開敏感資料的風險。
使用指令碼進行遷移
每項排程器作業都是獨一無二的,因此將 Azure 排程器作業移轉至 Azure Logic Apps 時,並沒有一體適用的工具。 不過,您可以編輯此指令碼以符合您的需求。
排程一次性作業
您可以只建立單一邏輯應用程式工作流程來執行多個單次作業。
在 Azure 入口網站中,建立邏輯應用程式資源和空白工作流程。
針對「要求」觸發程序,您可以選擇性地提供 JSON 結構描述,協助工作流程設計工具了解傳入「要求」觸發程序的呼叫內的輸入結構,讓您稍後可在工作流程中更輕鬆地選取輸出。
在 [要求本文 JSON 結構描述] 方塊中輸入結構描述,例如:
如果您沒有結構描述,但是有 JSON 格式的範例承載,即可從該承載產生 JSON 結構描述。
在要求觸發程序中,選取 [使用範例承載來產生結構描述]。
在 [輸入或貼上範例 JSON 承載] 下方,提供您的範例承載,並選取 [完成],例如:
{ "runat": "2012-08-04T00:00Z", "endpoint": "https://www.bing.com" }
在觸發程序底下,新增名為 [延遲到] 的 [排程] 動作
此動作會暫停工作流程執行,直到指定的日期和時間為止,例如:
輸入您想要啟動工作流程的時間戳記。
- 在 [時間戳記] 方塊內選取,然後選取動態內容清單選項 (閃電圖示),這可讓您從上一個作業中選取輸出,這是此範例中的 [要求] 觸發程序。
在 1000+ 個立即可用的連接器中挑選,新增您想要執行的任何其他動作。
例如,您可以包含將要求傳送至 URL 的 HTTP 動作,或使用儲存體佇列、服務匯流排佇列或服務匯流排主題的動作:
當完成設計師工具列時,請選取儲存。
當您第一次儲存工作流程時,工作流程 [要求] 觸發程序的端點 URL 隨即產生,並出現在 [HTTP POST URL] 方塊中,例如:
若要手動觸發的工作流程包含您需要工作流程處理的輸入,您可以將 HTTP 要求傳送至端點 URL。
複製並儲存端點 URL,以便測試您的工作流程。
測試工作流程
若要手動觸發工作流程,請將 HTTP 要求傳送至工作流程 [要求] 觸發程序中的端點 URL。 使用此呼叫,包含要傳送的輸入或承載,而您可能已在稍早指定結構描述來說明此項。 您可以使用 HTTP 要求工具及其指示來傳送此要求。
例如,您可以建立並傳送使用 [要求] 觸發程序所預期方法的 HTTP 要求,例如:
Request 方法 | URL | Body | 標頭 |
---|---|---|---|
POST | <endpoint-URL> | raw JSON(application/json) |
索引鍵:Content-Type 值:application/json |
取消單次作業
在 Azure Logic Apps 中,每個單次作業都會當成單一工作流程回合執行個體來執行。 若要手動取消一次性作業,您可以根據邏輯應用程式,尋找並複製工作流程回應中傳回的 x-ms-workflow-run-id 標頭值,並使用下列 REST API 來將具有此工作流程執行識別碼的另一個 HTTP 要求傳送至工作流程的端點 URL:
取用工作流程:工作流程執行 - 取消
標準工作流程:工作流程執行 - 取消
排程週期性工作
在 Azure 入口網站中,建立邏輯應用程式資源和空白工作流程。
遵循以下一般步驟以新增名為 [定期]的 [排程] 觸發程序。
如果您想要的話,可以設定更進階的排程。
如需進階排程選項的詳細資訊,請參閱使用 Azure Logic Apps 建立並執行週期性工作和工作流程
在 1000+ 個立即可用的連接器中挑選,新增您想要執行的任何其他動作。
例如,您可以包含將要求傳送至 URL 的 HTTP 動作,或使用儲存體佇列、服務匯流排佇列或服務匯流排主題的動作:
當完成設計師工具列時,請選取儲存。
進階設定
下列各節說明可以自訂作業的其他方式。
重試原則
若要控制在發生間歇性失敗時某個動作嘗試在您工作流程中重新執行的方式,您可以在每個動作的設定中設定重試原則。
處理例外狀況和錯誤
在 Azure 排程器中,如果預設動作無法執行,您可以執行替代的動作來解決錯誤狀況。 在 Azure Logic Apps 中,您也可以執行相同的工作。 如需 Azure Logic Apps 中例外狀況處理的詳細資訊,請參閱處理錯誤和例外狀況 - RunAfter 屬性。
在設計工具中,在您想要處理的動作上方,新增平行分支。
尋找並選取您想要改為替代動作執行的動作。
在替代動作中,尋找並選取 [設定執行後續] 選項。
清除 [已成功] 屬性的方塊。 選取名為已失敗、已跳過和已逾時的屬性。
完成之後,選取 [完成]。
常見問題集
問:Azure 排程器何時淘汰?
答:Azure 排程器已於 2022 年 1 月 31 日徹底遭到淘汰。 關於一般更新資訊,請參閱 Azure 更新 - 排程器。
問:我的作業集合和作業在 Azure 排程器淘汰之後會發生什麼事?
答:所有 Azure 排程器作業集合和作業都將停止執行並從系統中刪除。
問:我是否需要先備份或執行任何其他工作,然後才能將 Azure 排程器作業移轉至 Azure Logic Apps?
答:最佳做法是一律備份您的工作。 請先檢查您所建立的工作流程皆如預期般執行,然後再刪除或停用 Azure 排程器作業。
問:我在 Azure 排程器中已排程的 Azure Web 作業會發生什麼事?
答:使用此方式排程 Web 作業的 Web 作業不會在內部使用 Azure 排程器:「若要讓排程正常運作,網站就必須設定為 Always On,不能是 Azure 排程器,而必須是排程器的內部實作」。唯一受影響的 Web 作業是特別使用 Azure 排程器透過 Web 作業 API 來執行 Web 作業的 Web 作業。 您可以使用 HTTP 動作,從邏輯應用程式工作流程觸發這些 Web 作業。
問:是否有工具可協助我將作業從 Azure 排程器移轉至 Azure Logic Apps?
答:每個 Azure 排程器作業都是唯一的,因此沒有一體適用的工具。 不過,根據您的需求,您可以編輯此指令碼,將 Azure 排程器作業遷移至 Azure Logic Apps (英文)。
問:哪裡可以取得移轉 Azure 排程器作業的支援?
答:以下是一些取得支援的方式:
Azure 入口網站
如果您的 Azure 訂用帳戶具備付費的支援方案,則您可以在 Azure 入口網站中建立技術支援要求。 否則,您可以選取不同的支援選項。
在 Azure 入口網站主功能表上,選取 [説明 + 支援]。
從 [支援] 功能表選取 [新增支援要求]。 提供有關要求的下列資訊:
屬性 值 問題類型 技術 訂用帳戶 <您的 Azure 訂用帳戶> 服務 在 [監視與管理] 下方,選取 [排程器]。 如果您找不到 [排程器],請先選取 [所有服務]。 選取您想要的支援選項。 如果您具備付費的支援方案,請選取 [下一步]。