教學課程:使用 Azure Logic Apps 建立排程型自動化工作流程

適用於:Azure Logic Apps (使用量)

本教學課程示範如何建置將依週期性排程執行的範例邏輯應用程式工作流程。 具體而言,此範例工作流程會檢查兩個地點之間的行進時間 (包括流量),並在每個工作日上午執行。 如果時間超過特定限制,則工作流程會向您傳送一封電子郵件,其中包括行進時間和抵達目的地所需的額外時間。 此工作流程包含各種步驟,其會開始使用排程型觸發程序,後面接著 Bing 地圖服務動作、資料作業動作、控制流程動作,以及電子郵件通知動作。

在本教學課程中,您會了解如何:

  • 建立空白邏輯應用程式和工作流程。
  • 新增用於指定工作流程執行排程的定期觸發程序。
  • 新增可取得路線行進時間的 Bing 地圖服務動作。
  • 新增可建立變數、將行進時間從秒鐘轉換為分鐘,並將該結果存放在變數中的動作。
  • 新增可針對指定的限制比較行進時間的條件。
  • 新增可在行進時間超過限制時傳送電子郵件的動作。

完成時,您的工作流程會類似下列的高階範例:

Screenshot that shows the high-level overview for an example logic app workflow.

必要條件

建立使用量邏輯應用程式工作流程

  1. Azure 入口網站中,使用您的 Azure 帳戶登入。

  2. 在 Azure 首頁上,選取 [建立資源]

  3. 在 Azure Marketplace 功能表上,選取 [整合]>[邏輯應用程式]

    Screenshot that shows Azure Marketplace menu with

  4. 在 [建立邏輯應用程式] 窗格的 [基本資訊] 索引標籤上,提供下列有關邏輯應用程式資源的資訊。

    Screenshot showing Azure portal, logic app creation pane, and info for new logic app resource.

    屬性 必填 Description
    訂用帳戶 Yes <Azure-訂閱-名稱> 您的 Azure 訂用帳戶名稱。 此範例使用隨用隨付
    資源群組 Yes LA-TravelTime-RG 您在其中建立邏輯應用程式資源和相關資源的 Azure 資源群組。 此名稱在各區域中必須是唯一的,而且只能包含字母、數字、連字號 (-)、底線 (_)、括弧 (()) 和句點 (.)。
    名稱 Yes LA-TravelTime 您的邏輯應用程式資源名稱在各區域中必須是唯一的,而且只能包含字母、數字、連字號 (-)、底線 (_)、括弧 (()) 和句點 (.)。
  5. 繼續選取前,請移至 [方案] 區段。 針對 [方案類型],選取 [取用],如此只會顯示在多租用戶 Azure Logic Apps 中執行的取用邏輯應用程式工作流程設定。

    [方案類型] 屬性也會指定要使用的計費模型。

    方案類型 描述
    標準 此邏輯應用程式類型是預設選取項目,會在單一租用戶的 Azure Logic Apps 中執行,並使用標準計費模型
    耗用 此邏輯應用程式類型會在全域、多租用戶的 Azure Logic Apps 中執行,並使用取用計費模型
  6. 現在繼續下列選取作業:

    屬性 必填 Description
    區域 Yes 美國西部 用來儲存應用程式資訊的 Azure 資料中心區域。 此範例會在 Azure 中將範例邏輯應用程式部署至美國西部區域。

    注意:如果您的訂閱與整合服務環境相關聯,則此清單會包含這些環境。
    啟用記錄分析 只有在您選取 [取用] 邏輯應用程式類型時,才會顯示此選項並套用。 只有在您想要啟用診斷記錄時,才會變更此選項。 在本教學課程中,請保留預設的選取項目。
  7. 當您完成時,選取 [檢閱 + 建立]。 在 Azure 驗證邏輯應用程式資源的相關資訊之後,請選取 [建立]

  8. 在 Azure 部署您的應用程式之後,請選取 [移至資源]

    Azure 會開啟工作流程範本選取窗格,其中顯示簡介影片、常用的觸發程序,以及工作流程範本模式。

  9. 向下捲動影片和觸發程序直到 [範本]區段,然後選取 [空白邏輯應用程式]

    Screenshot that shows the workflow template selection pane with

接下來,新增週期觸發程序,此觸發程序會根據指定的排程執行。 每個工作流程都必須使用觸發程序啟動,而該工作流程會在特定事件發生或新資料符合特定條件時引發。 如需詳細資訊,請參閱在多租用戶 Azure Logic Apps 中建立範例取用邏輯應用程式工作流程

新增週期觸發程序

  1. 在工作流程設計工具中的搜尋方塊下,選取 [內建]

  2. 在搜尋方塊中,輸入定期,然後選取名為定期的觸發程序。

    Screenshot showing Azure portal, workflow designer, search box with 'recurrence' entered, and the 'Recurrence' trigger selected.

  3. 在 [週期] 圖形中,選取省略符號 (...) 按鈕,然後選取 [重新命名]。 以下列描述為觸發程序重新命名:Check travel time every weekday morning

    Screenshot that shows the ellipses button selected, the

  4. 在觸發程序內,變更這些屬性,如下所述和所示。

    Screenshot that shows the changes to the trigger's interval and frequency.

    屬性 必填 Description
    間隔 Yes 1 在檢查之間所要等待的間隔數目
    頻率 Yes 要用於週期的時間單位
  5. 在 [間隔] 和 [頻率] 底下,開啟 [新增參數] 清單,然後選取要新增至觸發程序的這些屬性。

    • 在這幾天內
    • 在這幾小時內
    • 在這幾分鐘內

    Screenshot that shows the opened

  6. 現在設定其他屬性的值,如下所示及說明。

    Screenshot that shows the additional properties set to the values as described in the following table.

    屬性 數值 Description
    在這幾天內 星期一、星期二、星期三、星期四、星期五 只在您將 [頻率] 設定為 [周] 時,才可以使用此設定。
    在這幾小時內 7、8、9 只在您將 [頻率] 設定為 [周] 或 [日] 時,才可以使用此設定。 對於此週期,選取幾小時。 這個範例會在上午 789 整點執行。
    在這幾分鐘內 0, 15, 30, 45 只在您將 [頻率] 設定為 [周] 或 [日] 時,才可以使用此設定。 對於此週期,選取幾分鐘。 這個範例從整點開始,每隔 15 分鐘執行一次。

    此觸發程序會在每個工作天、每隔 15 分鐘引發一次 (從上午 7:00 開始到上午 9:45 結束)。 [預覽] 方塊會顯示週期排程。 如需詳細資訊,請參閱排程工作和工作流程工作流程動作和觸發程序

  7. 若要立即隱藏觸發程序的詳細資料,請按一下圖形的標題列內部來摺疊圖形。

    Screenshot that shows the collapsed trigger shape.

  8. 儲存您的工作流程您 在設計師工具列上選取儲存

您的邏輯應用程式工作流程現在會存留在 Azure 入口網站中,但不會根據指定的排程執行觸發程序以外的任何項目。 因此,新增會在觸發程序引發時回應的動作。

取得路線的行進時間

有了觸發程序之後,請新增可取得兩地間行進時間的動作。 Azure Logic Apps 會提供 Bing 地圖服務 API 的連接器,以便輕鬆地取得此資訊。 在開始這項工作之前,請確定您擁有本教學課程必要條件中所述的 Bing 地圖服務 API 金鑰。

  1. 在工作流程設計工具中,於 [定期] 觸發程序之下,選取 [新增步驟]

  2. 在 [選擇作業] 底下,選取 [標準]。 在搜尋方塊中,輸入 Bing 地圖,然後選取名為 [取得路線] 的動作。

    Screenshot that shows the

  3. 如果您沒有 Bing 地圖服務連線,系統會要求您建立連線。 提供如下所示及所述的連線詳細資料,然後選取 [建立]

    Screenshot that shows the Bing Maps connection box with the specified connection name and Bing Maps API key.

    屬性 必填 Description
    連線名稱 Yes BingMapsConnection 為您的連線提供一個名稱。 這個範例會使用 BingMapsConnection
    API 金鑰 Yes <Bing-Maps-API-key> 輸入您先前收到的 Bing 地圖服務 API 金鑰。 如果您沒有 Bing 地圖服務金鑰,請了解如何取得金鑰
  4. 以下列描述為動作重新命名:Get route and travel time with traffic

  5. 在動作中,開啟 [新增參數清單],然後選取這些屬性。

    • 最佳化
    • 距離單位
    • 行進模式

    Screenshot that shows the

  6. 現在輸入屬性的值,如下所示及所述。

    Screenshot that shows additional property values for the

    屬性 必填 Description
    導航點 1 Yes <start-location> 您的路線起點。 這個範例會指定範例起始位址。
    導航點 2 Yes <end-location> 您的路線目的地。 這個範例會指定範例目的地位址。
    最佳化 No timeWithTraffic 可將您的路線最佳化的參數,例如距離、目前流量的行進時間等等。 選取參數值 timeWithTraffic
    距離單位 No <your-preference> 路線的距離單位。 此範例使用英哩作為單位。
    行進模式 No 推動 路線的行進模式。 選取 [開車] 模式。

    如需這些參數及值的詳細資訊,請參閱計算路線

  7. 在設計師工具列上選取儲存

接下來,建立一個變數,以便將目前行進時間轉換為分鐘 (而不是秒鐘) 並加以儲存。 如此一來,即可避免重複轉換,並且在後續步驟中更輕鬆使用此值。

建立變數來儲存行進時間

有時候,您可以在工作流程中對資料執行作業,然後在後續動作中使用其結果。 若要儲存這些結果,以便輕鬆地重複使用或參考,您可以建立一些變數,在處理後儲存這些結果。 您只能在工作流程的最上層建立變數。

根據預設,[取得路線] 動作會經由 [行進持續時間流量] 屬性,傳回包含流量的目前行進時間 (以秒為單位)。 藉由轉換此值並改以分鐘為單位進行儲存,即可讓此值日後更容易重複使用,而不需再次轉換。

  1. 在設計工具上,於 [取得路線] 動作底下,選取 [新增步驟]

  2. 在 [選擇作業] 底下,選取 [內建]。 在搜尋方塊中,輸入變數,然後選取名為 [初始化變數] 的動作。

    Screenshot that shows the

  3. 以下列描述為動作重新命名:Create variable to store travel time

  4. 為您的變數提供這項資訊,如本表以及表格下方的步驟所示:

    屬性 必填 描述
    名稱 Yes travelTime 您的變數名稱。 這個範例會使用 travelTime
    類型 Yes 整數 您的變數資料類型
    No 可將目前行進時間從秒數轉換為分鐘數的運算式 (請參閱此表格底下的步驟)。 變數的初始值
    1. 若要建立 [值] 屬性的運算式,請按一下此方塊內部,動態內容清單隨即出現。 必要時,讓您的瀏覽器變寬,直到動態清單出現為止。 在動態內容清單中,選取 [運算式],這會顯示運算式編輯器。

      Screenshot that shows the

      動態內容清單會顯示先前動作的輸出,供您選取做為工作流程中後續動作的輸入。 動態內容清單包含一個運算式編輯器,您可以用來選取在運算式中執行作業的函式。 此運算式編輯器只能在動態內容清單中使用。

    2. 在運算式編輯器中,輸入此運算式:div(,60)

      Screenshot that shows the expression editor with the

    3. 在運算式內,將游標放在左括號 (() 與逗號 (,) 之間,然後選取 [動態內容]

      Screenshot that shows where to put the cursor in the

    4. 在動態內容清單中,選取屬性值 [行進持續時間流量]

      Screenshot that shows the

    5. 在運算式內解析此屬性值之後,請選取 [確定]

      Screenshot that shows the

      [值] 屬性隨即出現,如下所示:

      Screenshot that shows the

  5. 儲存您的工作流程您 在設計師工具列上選取儲存

接下來,新增可檢查目前行進時間是否大於特定限制的條件。

比較行進時間與限制

  1. 在 [建立變數以儲存行進時間] 動作下,選取 [新增步驟]

  2. 在 [選擇作業] 底下,選取 [內建]。 在搜尋方塊中輸入條件。 從 [動作] 清單中,選取名為 [條件] 的動作。

    Screenshot that shows the

  3. 以下列描述為條件重新命名:If travel time exceeds limit

  4. 建立一個條件,以檢查 travelTime 屬性值是否超過您指定的限制,如下所描述和顯示:

    1. 在條件內,按一下條件左側的 [選擇值] 方塊內部。

    2. 從顯示的動態內容清單中,選取 [變數] 底下名為 [travelTime] 的屬性。

      Screenshot that shows the

    3. 在中間比較方塊中,選取名為 [大於] 的運算子。

    4. 在條件右側的 [選擇值] 方塊中,輸入此限制:15

      當您完成時,條件看起來就像下面這個範例︰

      Screenshot that shows the finished condition for comparing the travel time to the specified limit.

  5. 儲存您的工作流程您 在設計師工具列上選取儲存

接下來,新增當行進時間超過限制時所要執行的動作。

在超過限制時傳送電子郵件

現在,新增可在行進時間超過限制時傳送電子郵件給您的動作。 此電子郵件包含目前行進時間和行經指定路線所需的額外時間。

  1. 在條件的 [True] 分支中,選取 [新增動作]

  2. 在 [選擇作業] 底下,選取 [標準]。 在搜尋方塊中,輸入傳送電子郵件。 此清單會傳回許多結果,因此若要協助您篩選清單,請先選取您想要的電子郵件連接器。

    例如,如果您擁有 Outlook 電子郵件帳戶,請為您的帳戶類型選取連接器:

    • 對於 Azure 工作或學校帳戶,選取 [Office 365 Outlook]
    • 對於個人 Microsoft 帳戶,選取 [Outlook.com]

    此範例會選取 Office 365 Outlook 以繼續。

    Screenshot that shows the

  3. 當連接器的動作出現時,請選取傳送電子郵件的動作,例如:

    Screenshot that shows the

  4. 如果您還沒有連線,請在出現提示時登入並驗證電子郵件帳戶的存取權。

    Azure Logic Apps 會建立與電子郵件帳戶的連線。

  5. 以下列描述為動作重新命名:Send email with travel time

  6. 針對 [收件者] 屬性,輸入收件者的電子郵件地址。 為了測試用途,您可以使用自己的電子郵件地址。

  7. 針對 [主旨] 屬性,遵循下列步驟指定電子郵件的主旨,並包含 [travelTime] 變數:

    1. 輸入尾端有一個空格的文字 Current travel time (minutes):。 將游標保留在 [主旨] 方塊中,讓動態內容清單保持開啟狀態。

    2. 從動態內容清單中,於 [變數] 標題中,選取 [查看更多],以便顯示名為 [travelTime] 的變數。

      Screenshot that shows the dynamic content list with the

      注意

      動態內容清單不會自動顯示 [travelTime] 變數,因為 [主旨] 屬性預期字串值,而 [travelTime] 卻是整數值。

      Screenshot that shows the dynamic content list with the

  8. 針對 [內文] 屬性,遵循下列步驟指定電子郵件內文的內容:

    1. 輸入尾端有一個空格的文字 Add extra travel time (minutes):。 將游標保留在 [內文] 方塊中,讓動態內容清單保持開啟狀態。

    2. 在動態內容清單中,選取 [運算式],這會顯示運算式編輯器。

      Screenshot that shows the dynamic content list with

    3. 在運算式編輯器中,輸入 sub(,15),以便您可以計算超過限制的分鐘數:

      Screenshot that shows the expression editor with the

    4. 在運算式內,將游標放在左括號 (() 與逗號 (,) 之間,然後選取 [動態內容]

      Screenshot that shows where to put the cursor in the

    5. 在 [變數] 下方,選取 [travelTime]

      Screenshot that shows the dynamic content list with

    6. 在運算式內解析此屬性之後,請選取 [確定]

      Screenshot that shows the dynamic content list and

      [Body] 屬性隨即出現,如下所示:

      Screenshot that shows the dynamic content list with the expression resolved in the email action's

  9. 儲存您的工作流程您 在設計師工具列上選取儲存

接著,請測試並執行您的工作流程,此時看起來應如下所示:

Screenshot that shows the finished example logic app workflow

執行您的工作流程

若要手動啟動工作流程,請在設計工具的工具列上,選取 [執行觸發程序]>[執行]

  • 如果目前行進時間保持在您的限制之內,工作流程並不會執行任何作業,而會等到下一個間隔後再次檢查。

  • 如果目前行進時間超過您的限制,您會收到一封電子郵件,其中包含目前行進時間和超過限制的分鐘數。 以下是工作流程傳送的範例電子郵件:

    Screenshot that shows an example email that reports the current travel time and the extra travel time that exceeds your specified limit.

    提示

    若未收到任何電子郵件,請檢查電子郵件的垃圾郵件資料夾。 您的垃圾電子郵件篩選器可能會重新導向這類郵件。 或者假使不確定工作流程是否正確執行,請參閱針對工作流程進行疑難排解

恭喜,您已經建立並執行排程型週期性工作流程。

若要建立使用 [定期] 觸發程序的其他工作流程,可簽出下列在建立新邏輯應用程式資源之後可用的範本:

  • 讓每日提醒傳送給您。
  • 刪除較舊的 Azure blob。
  • 將訊息新增至 Azure 儲存體佇列。

清除資源

您的工作流程會繼續執行,直到您停用或刪除應用程式資源為止。 如果不再需要範例工作流程,請刪除包含邏輯應用程式資源和相關資源的資源群組。

  1. 在 Azure 入口網站的搜尋方塊中,輸入您所建立的資源群組名稱。 從結果中,在 [資源群組] 底下,選取資源群組。

    此範例已建立名為 LA-TravelTime-RG 的資源群組。

    Screenshot that shows the Azure search box with

    提示

    如果 Azure 首頁顯示 [最近的資源] 底下的資源群組,您可以從首頁中選取群組。

  2. 在資源群組功能表上,檢查是否已選取 [概觀]。 在 [概觀] 窗格的工具列上,選取 [刪除資源群組]

    Screenshot that shows the resource group's

  3. 在顯示的確認窗格中,輸入資源群組名稱,然後選取 [刪除]

下一步

在本教學課程中,您已建立一個邏輯應用程式工作流程,該工作流程可根據指定的排程 (在工作日上午) 檢查流量,並且在行進時間超過指定的限制時採取動作 (傳送電子郵件)。 現在可開始了解如何透過整合 Azure 服務、Microsoft 服務和其他軟體即服務 (SaaS) 應用程式,建立可傳送郵件清單要求以供核准的工作流程。