分享方式:


啟動/停止 VM v2 概觀

啟動/停止 VM v2 功能會在多個訂用帳戶中啟動或停止 Azure 虛擬機器執行個體。 此功能會依使用者定義的排程來啟動或停止虛擬機器,透過 Azure Application Insights 提供深入解析,以及使用動作群組來傳送選擇性通知。 在大部分情況下,啟動/停止 VM 可以管理由 Azure Resource Manager 和 Azure Service Manager (傳統) (「已淘汰」) 所部署和管理的虛擬機器。

對於想要最佳化其 VM 成本的客戶,新版本的「啟動/停止 VM v2」提供分散式的低成本自動化選項。 其提供的功能與 Azure 自動化的原始版本所提供的功能相同,但其設計目的是要利用 Azure 中的較新技術。 啟動/停止 VM v2 必須使用多個 Azure 服務,並根據部署和取用的服務收費。

重要的啟動/停止 VM v2 更新

  • 除了需要維持在支援的元件和 Azure 服務版本時,將不會有進一步的開發、增強功能或更新可供啟動/停止 v2 使用。

  • TriggerAutoUpdate 和 UpdateStartStopV2 函式現已遭取代,將在未來移除。 若要更新啟動/停止 v2,建議您停止網站、從 GitHub 存放庫安裝至最新版本,然後啟動網站。 若要停用自動更新功能,請將函式應用程式的 AzureClientOptions:EnableAutoUpdate 應用程式設定設為 false。 沒有可用於更新的內建通知系統。 在啟動/停止 v2 的更新可供使用之後,我們將更新 GitHub 存放庫中的 readme.md。 第三方 GitHub 檔案監看程式可能會通知您有所變更。

  • 自 2024 年 8 月 19 日起,啟動/停止 v2 已更新為 .NET 8 隔離背景工作角色模型

概觀

「啟動/停止 VM v2」經過重新設計,不需依賴舊版所需的 Azure 自動化或 Azure 監視器記錄。 此版本依賴 Azure Functions 來處理 VM 啟動和停止執行。

受控識別是在 Microsoft Entra ID 中針對此 Azure Functions 應用程式而建立,允許「啟動/停止 VM v2」輕鬆存取其他受 Microsoft Entra 保護的資源,例如邏輯應用程式和 Azure VM。 如需有關 Microsoft Entra ID 中受控識別的詳細資訊,請參閱適用於 Azure 資源的受控識別

系統會建立 HTTP 觸發程序函式端點,以支援此功能隨附的排程和序列案例,如下表所示。

名稱 觸發程序 描述
已排程 HTTP 此函式適用於排程和循序案例 (依承載結構描述區分)。 這是從邏輯應用程式呼叫的進入點函式,採用承載來處理 VM 啟動或停止作業。
AutoStop HTTP 此函式支援 AutoStop 案例,這是從邏輯應用程式呼叫的進入點函式。
AutoStopVM HTTP 當警示條件成立時,VM 警示會自動觸發此函式。
VirtualMachineRequestOrchestrator Queue 此函式會從 [排程] 函式取得承載資訊,並協調 VM 啟動和停止要求。
VirtualMachineRequestExecutor Queue 此函式會在 VM 上執行實際的啟動和停止作業。
CreateAutoStopAlertExecutor Queue 此函式會從 AutoStop 函式取得承載資訊,以在 VM 上建立警示。
HeartBeatAvailabilityTest 計時器 此函式會監視主要 HTTP 函式的可用性。
CostAnalyticsFunction 計時器 Microsoft 會使用此函式來估計客戶的啟動/停止 V2 彙總成本。 此函式不會影響啟動/停止 V2 的功能。
SavingsAnalyticsFunction 計時器 Microsoft 會使用此函式來估計客戶的啟動/停止 V2 彙總節省費用。 此函式不會影響啟動/停止 V2 的功能。
VirtualMachineSavingsFunction Queue 此函式會執行啟動/停止 V2 解決方案在 VM 上所達成的實際節省成本計算。
TriggerAutoUpdate 計時器 已取代。 此函式會根據應用程式設定 "AzureClientOptions:EnableAutoUpdate=true" 啟動自動更新程序。
UpdateStartStopV2 Queue 已取代。 此函式會執行實際的自動更新執行,這會將您目前的版本與可用版本進行驗證,並決定最後的動作。

例如,Scheduled HTTP 觸發程序函式用於處理排程和序列案例。 同樣地,AutoStop HTTP 觸發程序函式會處理自動停止案例。

需要有以佇列為基礎的觸發程序函式,才能支援這項功能。 所有以計時器為基礎的觸發程序都用來執行可用性測試,以及監視系統的健康情況。

Azure Logic Apps 用於設定和管理啟動和停止排程,以供 VM 藉由使用 JSON 承載呼叫函式來採取動作。 根據預設,在初始部署期間,其會針對下列案例建立總計五個 Logic Apps:

  • Scheduled- 啟動和停止動作是以您針對 Azure Resource Manager 和傳統 VM 指定的排程為基礎。 ststv2_vms_Scheduled_startststv2_vms_Scheduled_stop 可設定排定的開始和停止。

  • Sequenced- 啟動和停止動作是以具有預先定義排序標籤的 VM 為目標的排程為基礎。 只支援兩個具名標記 - sequencestartsequencestopststv2_vms_Sequenced_startststv2_vms_Sequenced_stop 可設定循序的開始和停止。

    使用序列功能的適當方式,是在您要依序啟動的每個 VM 上建立名為 sequencestart 的標記。 對於個別範圍中的每個 VM 而言,標記值必須是介於 1 到 N 之間的整數。 標記是選擇性的,如果不存在,VM 就不會參與排序。 您可以套用相同準則來停止只有標記名稱不同的 VM,在此案例中是使用 sequencestop 標記。 您必須在每個 VM 中設定這兩個標籤,才能取得開始和停止動作。 如果有兩個以上的 VM 共用相同的標記值,這些 VM 會同時啟動或停止。

    例如,下表顯示啟動和停止動作都會依標記的值以遞增順序進行處理。

    顯示順序設定標籤範例的資料表

    注意

    此案例僅支援 Azure Resource Manager VM。

  • AutoStop - 此功能僅用於根據其 CPU 使用率,針對 Azure Resource Manager 和傳統 VM 執行停止動作。 其也可以是排程型「採取動作」,這會根據情況在 VM 上建立警示,並觸發警示來執行停止動作。 ststv2_vms_AutoStop可設定自動停止功能。

每個啟動/停止動作都支援一或多個訂用帳戶、資源群組或 VM 清單的指派。

Functions 所需的 Azure 儲存體帳戶也會由「啟動/停止 VM v2」用於兩個目的:

  • 使用 Azure 資料表儲存體來儲存執行作業中繼資料 (也就是啟動/停止 VM 動作)。

  • 使用 Azure 佇列儲存體來支援以 Azure Functions 佇列為基礎的觸發程序。

函式應用程式執行的所有追蹤記錄資料都會傳送至已連線的 Application Insights 執行個體。 您可以從共用 Azure 儀表板中顯示的一組預先定義的視覺效果,檢視儲存在 Application Insights 中的遙測資料。

電子郵件通知也會因為 VM 上執行的動作而傳送。

最新發行

發行新版本的「啟動/停止 VM v2」時,您的執行個體會自動更新,而不需手動重新部署。

支援的範圍選項

訂用帳戶

當您需要對整個訂用帳戶中的所有 VM 執行啟動和停止動作時,可以使用訂用帳戶的範圍設定,並視需要選取多個訂用帳戶。

您也可以指定要排除的 VM 清單,其會忽略這些 VM 而不執行動作。 您也可以使用萬用字元來指定可同時忽略的所有名稱。

資源群組

當您需要藉由指定一或多個資源群組名稱,以及跨一或多個訂用帳戶,在所有 VM 上執行啟動和停止動作時,可以使用資源群組組的範圍設定。

您也可以指定要排除的 VM 清單,其會忽略這些 VM 而不執行動作。 您也可以使用萬用字元來指定可同時忽略的所有名稱。

VMList

當您需要在一組特定的虛擬機器上,以及跨多個訂用帳戶執行啟動和停止動作時,可以使用 VM 清單的指定。 此選項不支援指定要排除的 VM 清單。

必要條件

  • 您必須具備含有效訂閱的 Azure 帳戶。 免費建立帳戶

  • 若要部署解決方案,您的帳戶必須在訂用帳戶中獲得擁有者權限授權。

  • 「啟動/停止 VM v2」適用於所有 Azure 全域和美國政府雲端區域,這些區域列在 Azure Functions 依區域提供的產品頁面中。

下一步

若要部署此功能,請參閱部署啟動/停止 VM