教學課程:使用 Azure 事件方格和 Azure Logic Apps 監視虛擬機器的變更
適用於:Azure Logic Apps (使用量)
您可以使用 Azure 事件方格和 Azure Logic Apps 監視與回應在 Azure 資源或外部資源中發生的特定事件。 您可以使用 Azure Logic Apps 以最少的程式碼建立自動化消費邏輯應用程式工作流程。 您可以讓這些資源將事件發佈至 Azure 事件方格。 接著,Azure 事件方格會將這些事件發送給以佇列、Webhook 或事件中樞作為端點的訂閱者。 訂閱者的工作流程會先等待這些事件抵達 Azure 事件方格後,再執行步驟來處理事件。
例如,以下是發行者可以透過 Azure 事件方格服務傳送給訂閱者的一些事件:
建立、讀取、更新或刪除資源。 例如,您可以監視可能會產生 Azure 訂用帳戶費用並會影響帳單的變更。
從 Azure 訂用帳戶中新增或移除人員。
您的應用程式會執行特定動作。
新的訊息會出現在佇列中。
本教學課程會建立在多租用戶 Azure Logic Apps中執行的取用邏輯應用程式資源,並以取用價格模式為基礎。 使用此邏輯應用程式資源,您可以建立工作流程來監視虛擬機器的變更,並傳送有關這些變更的電子郵件。 當您建立的工作流程具有 Azure 資源的事件訂閱時,事件會透過 Azure 事件方格從該資源流向工作流程。
在本教學課程中,您會了解如何:
- 建立可從 Azure 事件方格監視事件的邏輯應用程式資源和工作流程。
- 新增可特別檢查虛擬機器變更的條件。
- 在虛擬機器變更時傳送電子郵件。
必要條件
Azure 帳戶和訂用帳戶。 如果您沒有 Azure 訂用帳戶,請先註冊免費的 Azure 帳戶。
來自可搭配使用 Azure Logic Apps 的電子郵件服務的電子郵件帳戶,例如 Office 365 Outlook、Outlook.com 或 Gmail。 對於其他提供者,請檢閱這裡的連接器清單。
本教學課程會使用 Office 365 Outlook 帳戶。 如果您使用不同的電子郵件帳戶,整體步驟將維持不變,但您的 UI 外觀可能會略有不同。
重要
如果您想要使用 Gmail 連接器,只有 G-Suite 商務帳戶可以在邏輯應用程式中使用此連接器,而不受限制。 如果您有 Gmail 取用者帳戶,您只能使用此連接器搭配特定的 Google 核准服務,或者您可以建立 Google 用戶端應用程式,以用來向 Gmail 連接器進行驗證。 如需詳細資訊,請參閱 Azure Logic Apps 中 Google 連接器的資料安全性和隱私權原則。
獨立於自己 Azure 資源群組中的虛擬機器。 如果您尚未這樣做,請透過建立 VM 教學課程來建立虛擬機器。 若要讓虛擬機器發佈事件,您不需要執行任何其他作業。
如果您的防火牆會限制流往特定 IP 位址的流量,您即必須設定防火牆允許存取,Azure Logic Apps 才能透過防火牆進行通訊。 您必須在建立邏輯應用程式的 Azure 區域中,允許 Azure Logic Apps 使用的輸入和輸出 IP 位址存取權。
此範例會使用受控連接器,要求您的防火牆允許在邏輯應用程式資源的 Azure 區域中,存取所有受控連接器輸出 IP 位址。
建立邏輯應用程式資源
使用您的 Azure 帳戶登入 Azure 入口網站 。
在 Azure 首頁中,選取 [建立資源]>[整合]>[邏輯應用程式]。
在 [建立邏輯應用程式] 之下,提供邏輯應用程式資源的相關資訊:
屬性 必填 值 Description 訂用帳戶 Yes <Azure-訂閱-名稱> 在本教學課程中,請針對所有服務選取相同的 Azure 訂用帳戶。 資源群組 Yes <Azure-resource-group> 邏輯應用程式的 Azure 資源組名稱,您可以針對本教學課程中的所有服務選取此名稱。 邏輯應用程式名稱 Yes <logic-app-name> 提供邏輯應用程式的唯一名稱。 發行 Yes 工作流程 選取邏輯應用程式的部署目的地。 在本教學課程中,請確定您選取的是 [工作流程],這會部署至 Azure。 區域 Yes <Azure-region> 在本教學課程中,針對所有服務選取相同的區域。 方案類型 Yes 耗用 邏輯應用程式的資源類型。 在本教學課程中,請確定您選取的是 [取用]。 注意
如果您稍後想要改用 Azure 事件方格作業搭配標準邏輯應用程式資源,請確定您建立「具狀態」的工作流程,而不是無狀態工作流程。 本教學課程僅適用於遵循不同使用者體驗的消費邏輯應用程式。 若要在設計工具中將 Azure 事件方格 作業新增至工作流程,請在 [作業選擇器] 窗格中,確定您選取 [Azure] 索引卷標。如需多租使用者與單一租使用者 Azure Logic Apps 的詳細資訊,請檢閱單一租使用者與多租使用者。
當您完成時,選取 [檢閱 + 建立]。 在下一個窗格中確認提供的資訊,然後選取 [建立]。
在 Azure 部署您的邏輯應用程式之後,請選取 [移至資源]。
工作流程設計工具會顯示含有簡介影片和常用觸發程序的頁面。
捲動到影片視窗和常用的觸發程序區段下方。
選取 [範本] 下的 [空白邏輯應用程式]。
注意
工作流程範本庫僅供消費邏輯應用程式使用,不適用於標準邏輯應用程式。
工作流程設計工具現在會顯示觸發程序,可用於啟動邏輯應用程式。 每個工作流程都必須使用觸發程序啟動,觸發程序會在特定事件發生或符合特定條件時引發。 每次引發觸發程序時,Azure Logic Apps 會建立執行邏輯應用程式的工作流程執行個體。
新增 Azure 事件方格觸發程序
現在,新增 Azure 事件方格觸發程序,用以監視您虛擬機器的資源群組。
在設計工具的搜尋方塊中,輸入
event grid
。 從觸發程序清單中選取 [當資源事件發生時] 觸發程序。出現提示時,使用您的 Azure 帳戶認證登入 Azure 事件方格。 在 [租用戶] 清單中 (其中顯示與 Azure 訂用帳戶相關聯的 Microsoft Entra 租用戶),檢查出現的租用戶是否正確,例如:
現在以邏輯應用程式訂閱發行者的事件。 提供如下表中所述的事件訂閱詳細資料,例如:
屬性 必填 值 Description 訂用帳戶 Yes <event-publisher-Azure-subscription-name> 選取與「事件發行者」相關聯的 Azure 訂用帳戶名稱。 在本教學課程中,選取虛擬機器的 Azure 訂用帳戶名稱。 資源類型 Yes <event-publisher-Azure-resource-type> 選取事件發行者的 Azure 資源類型。 如需有關 Azure 資源類型的詳細資訊,請參閱 Azure 資源提供者和類型。 在本教學課程中,選取 Microsoft.Resources.ResourceGroups
值以監視 Azure 資源群組。資源名稱 Yes <event-publisher-Azure-resource-name> 選取事件發行者的 Azure 資源名稱。 這份清單會根據您選取的資源類型而有所不同。 在此教學課程中,請選取包含虛擬機器的 Azure 資源群組名稱。 事件類型項目 No <event-types> 選取要篩選的一或多個特定事件類型,並傳送至您的 Azure 事件方格。 例如,您可以選擇性地新增這些事件類型,以偵測資源何時遭到變更或刪除: -
Microsoft.Resources.ResourceActionSuccess
-Microsoft.Resources.ResourceDeleteSuccess
-Microsoft.Resources.ResourceWriteSuccess
如需詳細資訊,請參閱下列主題:
若要新增選擇性屬性,請選取 [新增參數],然後選取您想要的屬性。 No {請參閱說明} * 前置詞篩選條件:在此教學課程中,將此屬性保留空白。 預設行為會比對所有的值。 不過,您可以指定前置詞字串作為篩選條件,例如,特定資源的路徑和參數。 * 後置詞篩選條件:在此教學課程中,將此屬性保留空白。 預設行為會比對所有的值。 不過,您可以指定前置詞字串作為篩選條件,例如,副檔名 (如果只想要特定檔案類型)。
* 訂閱名稱:在此教學課程中,您可以為事件訂閱提供唯一名稱。
儲存您的邏輯應用程式工作流程。 在設計師工具列上選取儲存。 若要在工作流程中摺疊並隱藏動作的詳細資料,請選取動作的標題列。
當您儲存邏輯應用程式工作流程與 Azure 事件方格觸發程序時,Azure 會自動針對您的邏輯應用程式建立所選資源的事件訂閱。 因此當資源將事件發佈到 Azure 事件方格服務時,該服務就會自動推送事件至您的邏輯應用程式。 此事件會觸發並執行您在後續步驟中定義的邏輯應用程式工作流程。
邏輯應用程式現在已上架,並且會接聽來自 Azure 事件方格的事件,但是在您將動作新增至工作流程以前,不會執行任何動作。
新增條件
如果只想在發生特定事件或作業時執行邏輯應用程式工作流程,請新增檢查 Microsoft.Compute/virtualMachines/write 作業的條件。 當此條件成立時,邏輯應用程式工作流程就會傳送電子郵件給您,內含已更新虛擬機器的詳細資料。
在工作流程設計工具的 Azure 事件方格觸發程序下,選取 [新增步驟]。
在 [選擇動作] 底下的搜尋方塊中,輸入
condition
作為篩選條件。 從動作清單中,選取 [條件] 動作。工作流程設計工具會將空白條件新增至您的工作流程,包括根據條件為 true 或 false 所要遵循的動作路徑。
將條件標題重新命名為
If a virtual machine in your resource group has changed
。 在條件的標題列上,選取省略符號 (...) 按鈕,然後選取 [重新命名]。建立一個條件,以針對
operationName
屬性等於Microsoft.Compute/virtualMachines/write
作業的data
物件,檢查事件body
。 深入了解 Azure 事件方格事件結構描述。在 [AND] 底下的第一個資料列中,按一下左側方塊內部。 在顯示的動態內容清單中,選取 [運算式]。
在運算式編輯器中輸入此運算式,運算式會從觸發程序傳回作業名稱,然後選取 [確定]:
triggerBody()?['data']['operationName']
例如:
在中間的方塊中,將運算子保留為 [等於]。
在右側方塊中,輸入您想要監視的作業,此範例為下列值:
Microsoft.Compute/virtualMachines/write
您完成的條件現在看起來就像下面這個範例︰
如果您從設計檢視切換為程式碼檢視,而後回到設計檢視,您在條件中指定的運算式會解析為 data.operationName 語彙基元:
儲存邏輯應用程式。
傳送電子郵件通知
現在新增動作,以在指定的條件為 true 時收到電子郵件。
在條件的 [若為 true] 方塊中,選取 [新增動作]。
在 [選擇動作] 底下的搜尋方塊中,輸入
send an email
作為篩選條件。 根據您的電子郵件提供者,尋找並選取相符的連接器。 然後針對您的連接器選取 [傳送電子郵件] 動作。 例如:對於 Azure 公司或學校帳戶,選取 Office 365 Outlook 連接器。
對於個人 Microsoft 帳戶,選取 Outlook.com 連接器。
對於 Gmail 帳戶,選取 Gmail 連接器。
本教學課程將使用 Office 365 Outlook 連接器繼續操作。 如果您使用不同的提供者,步驟維持不變,但您的 UI 可能會稍微不同。
如果尚未連線到電子郵件提供者,請在系統要求驗證時登入電子郵件帳戶。
將傳送電子郵件動作重新命名為此標題:
Send email when virtual machine updated
如下表中所指定,提供電子郵件的相關資訊:
提示
若要從工作流程的先前步驟輸出中選取,請按一下編輯方塊以便顯示動態內容清單,或選取 [新增動態內容]。 如需更多結果,在清單中的每個區段選取 [更多資訊]。 若要關閉動態內容清單,請再次選取 [新增動態內容]。
屬性 必填 值 Description 目標 Yes <recipient@domain> 輸入收件者的電子郵件地址。 為了測試用途,您可以使用自己的電子郵件地址。 主體 Yes Resource updated:
主旨輸入電子郵件主旨的內容。 在本教學課程中,輸入指定的文字,然後選取事件的 [主旨] 欄位。 在這裡,您的電子郵件主旨包含更新資源 (虛擬機器) 的名稱。 本文 Yes Resource:
主題Event type:
事件類型Event ID:
標識碼Time:
事件時間輸入電子郵件內文的內容。 在本教學課程中,輸入指定的文字並選取事件的 [主題]、[事件類型]、[識別碼] 和 [事件時間] 欄位,讓您的電子郵件包含觸發事件的資源、事件類型、事件戳記,以及更新的事件識別碼。 在本教學課程中,此資源是觸發程序中選取的 Azure 資源群組。 若要在內容中新增空白的行,請按 Shift + Enter。
注意
如果您選取代表陣列的欄位,設計工具會自動新增以參考該陣列的動作為主的 For each 迴圈。 如此一來,邏輯應用程式工作流程即會對每個陣列項目執行該動作。
現在,您的電子郵件動作看起來可能就像下面這個範例︰
您已完成的邏輯應用程式工作流程可能如下例所示:
儲存邏輯應用程式。 若要在邏輯應用程式中摺疊並隱藏每個動作的詳細資料,請選取動作的標題列。
邏輯應用程式現在已上限,但是在執行任何作業之前,等候您的虛擬機器變更。 若要立即測試工作流程,請繼續下一節。
測試邏輯應用程式工作流程
請更新您的虛擬機器,以檢查工作流程是否正在取得指定的事件。
例如,您可以調整虛擬機器的大小。
一會兒之後,您應可取得電子郵件。 例如:
若要檢閱邏輯應用程式的執行和觸發歷程記錄,請在邏輯應用程式功能表上選取 [概觀]。 若要檢視執行的更多詳細資料,請選取該執行的資料列。
若要檢視每個步驟的輸入和輸出,請展開您需要檢閱的步驟。 此資訊可協助您診斷和偵錯應用程式邏輯中的問題。
恭喜,您已建立並執行邏輯應用程式工作流程,其可透過 Azure 事件方格監視資源事件,並在這些事件發生時以電子郵件通知您。 您也了解如何輕鬆地建立工作流程,以自動執行程序並整合系統與雲端服務。
您可以使用事件格線和邏輯應用程式來監視其他組態變更,例如:
- 虛擬機器可取得 Azure 角色型存取控制 (RBAC) 權限。
- 對網路介面 (NIC) 上的網路安全性群組 (NSG) 進行變更。
- 已新增或移除虛擬機器的磁碟。
- 已將公用 IP 位址指派給虛擬機器 NIC。
清除資源
本教學課程使用會資源並執行會產生 Azure 訂用帳戶費用的動作。 當您完成本教學課程和測試時,請務必停用或刪除您不想產生費用的任何資源。
若要停止執行工作流程,但不刪除您的工作,請停用您的應用程式。 在邏輯應用程式功能表上,選取 [概觀]。 在工具列上,選取 [停用]。
提示
如果您沒有看到邏輯應用程式功能表,請嘗試返回 Azure 儀表板,然後重新開啟邏輯應用程式。
若要永久刪除邏輯應用程式,請在邏輯應用程式功能表上選取 [概觀]。 在工具列上,選取 [刪除]。 確認您想要刪除邏輯應用程式,然後選取 [刪除]。
下一步
請參閱下列範例,了解如何使用不同的程式設計語言,將事件發佈至 Azure 事件方格,以及從 Azure 事件方格取用事件。