共用方式為


FinOps 中樞範本

本檔提供 FinOps 中樞部署範本中所含內容的詳細摘要。 您可以使用此做為調整部署的指南,或通知您可以對範本進行自定義,以符合組織需求。 本文件說明部署範本所需的必要條件、您可以自定義的輸入參數、將部署的資源,以及範本輸出。 範本輸出可用來連線到Power BI、數據總管或其他工具中的中樞實例。

FinOps 中樞包含許多資源,以提供安全且可調整的 FinOps 平臺。 您將與互動的主要資源包括:

  • Data Explorer(Kusto)作為進階分析的可擴展數據存放區(可選)。
  • 儲存帳戶 Data Lake Storage Gen2 作為資料匯入的暫存區域。
  • 用來管理數據擷取和清除的Data Factory實例。

重要

若要使用範本,您必須建立成本管理匯出,將數據發佈至 msexports 內含記憶體帳戶中的容器。 如需詳細資訊,請參閱 建立新的中樞


必要條件

在部署範本之前,請確定符合下列必要條件:

  • 您必須具有下列許可權,才能建立 已部署的資源

    資源 最低限度 Azure RBAC
    部署與設定 Data Factory Data Factory 參與者
    部署 Key Vault(僅限遠端中樞)1 Key Vault 參與者
    設定金鑰保存庫的機密資訊(僅限遠端中樞)¹ Key Vault 管理員
    建立受管理的身分 管理身分貢獻者
    部署和設定記憶體 儲存體帳戶貢獻者
    將受控識別指派給資源*。 受控識別操作員
    建立部署指令碼 僅包含 Microsoft.Resources/deploymentScripts/writeMicrosoft.ContainerInstance/containerGroups/write 許可權的自定義角色,作為允許的動作,或者您可以選擇包含這些許可權以及上述所有角色的協作者角色
    將權限指派給管理的身份識別 角色為基礎的存取控制管理員或者擁有者,包括此角色及以上所有角色
    建立訂用帳戶或資源群組成本導出 成本管理參與者
    建立EA計費成本匯出² 企業讀者、部門讀者或註冊帳戶擁有者(深入瞭解
    創建 MCA 計費成本匯出² 參與者
    讀取記憶體中的 Blob 數據 儲存體 Blob 資料貢獻者

    2. 資源群組範圍上指派中樞資源部署許可權就已足夠。
    您必須在要匯出成本的特定範圍內指派成本管理許可權。
    若要從 Power BI 或其他用戶端工具存取導出的成本數據,需要 2 個 Blob 數據許可權。

  • 您必須具有權限,才能在部署過程中將下列角色指派給受控識別:

    Azure RBAC 角色 備註
    Data Factory 參與者 指派給部署觸發程式管理員身分識別,以自動啟動 Data Factory 觸發程式。
    讀取器 指派給 Data Factory 來管理記憶體中的數據。
    儲存體帳戶貢獻者 指派給 Data Factory 來管理記憶體中的數據。
    儲存體 Blob 資料貢獻者 指派給 Data Factory 和 Data Explorer 來管理儲存中的數據。
    儲存文件數據具特權貢獻者 指派給將檔案上傳至組態容器的部署檔案上傳身分識別。
    使用者存取系統管理員 指派給 Data Factory 來管理記憶體中的數據。
  • Microsoft.EventGrid 資源提供者必須在您的訂用帳戶中註冊。 如需詳細資訊,請參閱 註冊資源提供者

    重要

    如果您忘記此步驟,部署將會成功,但不會啟動管線觸發程式,且數據將無法就緒。 如需更多資訊,請參閱 Power BI 報表疑難排解


參數

以下是可用來自定義部署的參數:

參數 類型 描述 預設值
hubName 字串 選擇性。 中樞的名稱。 用來確保資源名稱的唯一性。 “finops-hub”
位置 字串 選擇性。 應建立所有資源的 Azure 地點。 請參閱 https://aka.ms/azureregions 與部署相同
storageSku 字串 選擇性。 要使用的記憶體 SKU。 LRS = 最低成本,ZRS = 高可用性。 注意 Data Lake gen2 記憶體無法使用標準 SKU。 允許: Premium_LRSPremium_ZRS “Premium_LRS”
dataExplorerName 字串 選擇性。 要用於進階分析的 Azure 數據總管叢集名稱。 如果空白,則不會部署 Azure 數據總管。 如果您的成本超過每月 200 至 500 萬美元,則必須搭配 Power BI 使用。 默認值:“” (不使用)。
dataExplorerSkuName 字串 選擇性。 Azure 數據總管 SKU 的名稱。 默認值:「Dev(No SLA)_Standard_E2a_v4」。
dataExplorerSkuTier 字串 選擇性。 Azure 數據總管叢集的 SKU 層。 使用 Basic 可達最低成本,但不提供 SLA(因為僅有單一節點)。 使用 Standard 以達到高可用性並改善效能。 允許的值:基本、標準。 默認值:「Basic」。。
dataExplorerSkuCapacity 整數 選擇性。 叢集中要使用的節點數目。 允許的值:基本 SKU 層為 1,標準為 2-1000。 預設:1。
標記 物體 選擇性。 要套用至所有資源的標記。 我們也會在成本管理中新增 cm-resource-parent 標籤,以改善成本匯總。
tagsByResource 物體 選擇性。 根據資源類型為資源套用標記。 資源類型特定標籤將會與所有資源的標籤合併。
監控範圍 陣列 選擇性。 要監視和收集成本的範圍 ID 清單。
exportRetentionInDays 整數 選擇性。 要保留在 msexports 容器中的數據天數。 0
ingestionRetentionInMonths 整數 選擇性。 要保留在匯入容器中的資料保存月數。 13
資料探索器日誌保留天數 整數 選擇性。 在 [數據總管] *_log數據表中保留的數據天數。 0
dataExplorerFinalRetentionInMonths 整數 選擇性。 在資料瀏覽器 *_final_v* 資料表中需要保留的資料月數。 13
remoteHubStorageUri 字串 選擇性。 要將數據推送至的儲存帳戶,以便將其匯入遠端中樞。
remoteHubStorageKey 字串 選擇性。 將數據推送至遠端中樞時要使用的記憶體帳戶金鑰。
enablePublicAccess 字串 選擇性。 停用對 Data Lake 的公用存取(記憶體防火牆)。
virtualNetworkAddressPrefix 字串 選擇性。 FinOps 中樞所使用的專用虛擬網路 IP 位址範圍。 /26 建議避免浪費IP。 在內部,將會建立以下子網:/28 用於私人端點,另一個 /28 子網用於臨時部署腳本(容器實例),以及 /27(如果啟用的話)用於 Azure 數據總管。 '10.20.30.0/26'

資源

部署期間會在目標資源群組中建立下列資源。

資源會使用下列命名慣例: <hubName>-<purpose>-<unique-suffix>。 名稱會根據長度和字元限制進行調整。 <unique-suffix>是用來確保資源名稱在需要時全域是唯一的。

  • <hubName>store<unique-suffix> 儲存帳戶(Data Lake Storage Gen2)
    • Blob 容器:
      • msexports – 暫時儲存成本管理匯出。
      • ingestion – 儲存導入的數據。
      • config – 儲存中樞元數據和組態設定。 檔案:
        • settings.json – 中樞設定。
        • schemas/focuscost_1.0.json – FOCUS 1.0 架構定義,用於 PARQUET 轉換。
        • schemas/focuscost_1.0-preview(v1).json – PARQUET 轉換的 FOCUS 1.0-preview 架構定義。
        • schemas/pricesheet_2023-05-01_ea.json – 價格表 EA 架構定義版本 2023-05-01 用於 Parquet 格式轉換。
        • schemas/pricesheet_2023-05-01_mca.json – 適用於 parquet 轉換的價位表 MCA 架構定義版本 2023-05-01。
        • schemas/reservationdetails_2023-03-01.json – 保留詳細數據架構定義 2023-03-01 版以進行 parquet 轉換。
        • schemas/reservationrecommendations_2023-05-01_ea.json – 保留建議 EA 架構定義 2023-05-01 版以進行 parquet 轉換。
        • schemas/reservationrecommendations_2023-05-01_mca.json – 保留建議 MCA 架構定義 2023-05-01 版以進行 parquet 轉換。
        • schemas/reservationtransactions_2023-05-01_ea.json – 保留交易 EA 架構定義 2023-05-01 版以進行 parquet 轉換。
        • schemas/reservationtransactions_2023-05-01_mca.json – 保留交易 MCA 架構定義版本 2023-05-01 以進行 Parquet 轉換。
  • <hubName>script<unique-suffix> 部署腳本的儲存帳戶(Data Lake Storage Gen2)。
  • <hubName>-engine-<unique-suffix> Data Factory 實例
    • 管道:
      • config_InitializeHub – 在部署后初始化 FinOps 中樞實例(或更新)。
      • config_ConfigureExports – 為所有範圍建立成本管理匯出。
      • config_StartBackfillProcess – 根據保留設定執行每個月的回填作業。
      • config_RunBackfillJob – 為指定日期範圍內所有已定義的範疇建立並觸發匯出。
      • config_StartExportProcess – 根據settings.json中定義的範圍,取得為此中樞設定的所有成本管理匯出清單,然後使用config_RunExportJobs管線執行每個匯出。
      • config_RunExportJobs – 執行指定的成本管理匯出。
      • msexports_ExecuteETL – 將 msexports_ETL_ingestion 管線排入佇列,以考量 Data Factory 管線觸發限制。
      • msexports_ETL_ingestion – 將成本管理匯出資料轉換成 parquet,並移除每日匯出資料中重複的歷史數據。
      • ingestion_ExecuteETL – 將 ingestion_ETL_dataExplorer 管線排入佇列,以考量 Data Factory 管線觸發限制。
      • ingestion_ETL_dataExplorer – 將 parquet 數據內嵌至 Azure 數據總管叢集。
    • 觸發器:
      • config_SettingsUpdated – 當更新 settings.json 時,觸發 config_ConfigureExports 管線。
      • config_DailySchedule – 觸發 config_RunExportJobs 每日管線以處理當月的成本數據。
      • config_MonthlySchedule – 每月觸發 config_RunExportJobs 管線,以處理上個月的成本數據。
      • 當成本管理匯出完成時,msexports_ManifestAdded 會觸發 msexports_ExecuteETL 管線。
      • ingestion_ManifestAdded – 在新增 manifest.json 檔案時觸發 ingestion_ExecuteETL 管線(管線處理 msexports_ETL_ingestion )。
    • 管理的私有端點
      • <hubName>store<unique-suffix> - 記憶體帳戶的受控私人端點。
      • <hubName>-vault-<unique-suffix> - Azure Key Vault 的受控私人端點。
  • <hubName>-vault-<unique-suffix> Key Vault 實例(僅在部署為遠端中樞時包含)
    • 秘密:
      • Data Factory 系統受控身分識別
  • <dataExplorerName> 數據總管叢集
    • Hub 資料庫 – 公開函式用來抽象內部工作。
      • 包含 2 組功能:
        • 最新支援的FOCUS版本的數據集特定函式 (例如 , CostsPrices)。
        • 每個支援的FOCUS版本都有其數據集專用函式(例如FOCUS 1.0的Costs_v1_0)。 這些函式是為了回溯相容性而提供。 所有函式都會傳回與目標FOCUS版本對齊的所有數據。
      • 數據集包括: CostsPrices
      • 支援的FOCUS版本包括: v1_0
    • Ingestion 資料庫 – 儲存匯入的資料。
      • 設定:
        • HubSettingsLog table – 儲存高層級組態變更的歷程記錄(例如版本、範圍)。
        • HubSettings function – 取得中樞實例設定的最新版本。
        • HubScopes function – 取得此中樞實例目前設定的範圍。
      • 開放資料:
        • PricingUnits 表格 – 來自 FinOps 工具組的 PricingUnits 映射檔案 。 用於數據正規化和清除。
        • Regions table – FinOps 工具組的區域對應檔案 。 用於數據正規化和清除。
        • ResourceTypes 表格 - FinOps 工具包中的 ResourceTypes 對應檔案。 用於數據正規化和清除。
        • Services table – 來自 FinOps 工具組的 服務映射檔案 。 用於數據正規化和清除。
        • resource_type function – 簡單函式,用來對應內部資源類型標識符,以根據 ResourceTypes 對應檔來顯示名稱。
          • 使用此函式來對應單一值,並與數據表聯結 ResourceTypes ,以更新許多數據列或對應其他值。
      • 資料:
        • <dataset>_raw table – 直接從匯入來源的原始數據。 使用聯合模式整合多個來源的資料。
        • <dataset>_transform_vX_Y 函式 – 使用開放數據表視需要標準化和清理原始數據,以符合目標 FOCUS 版本。
        • <dataset>_final_vX_Y table – 對應原始數據表的清除版本,與目標 FOCUS 版本對齊。 在數據擷取到原始數據表時,透過更新原則並使用相應的轉換函式來填入。

除了上述資訊之外,也會建立下列資源來自動化部署程式。 部署腳本應該會自動刪除。 不過,請勿刪除受控識別,因為它可能會在升級至下一個版本時造成錯誤。

  • 受控識別:
  • 部署文稿 (成功部署後自動刪除):
    • <datafactory>_deleteOldResources – 從先前的 FinOps 中樞部署中刪除未使用的資源。
    • <datafactory>_stopTriggers – 使用 triggerManager 身分識別停止中樞中的所有觸發器。
    • <datafactory>_startTriggers – 使用 triggerManager 身分識別啟動中樞中的所有觸發程式。
    • <storage>_uploadSettings – 使用 blobManager 身分識別上傳settings.json檔案。

輸出

以下是部署所產生的輸出:

輸出 類型 描述
名字 字串 資源群組的名稱。
位置 字串 已將資源部署到 Azure 資源位置。
dataFactoryName 字串 Data Factory 的名稱。
storageAccountId 字串 已部署記憶體帳戶的資源標識碼。
儲存帳戶名稱 字串 為中樞實例建立的記憶體帳戶名稱。 將 FinOps 工具組 Power BI 報表連接到您的數據時,必須使用此選項。
storageUrlForPowerBI(Power BI 的儲存 URL) 字串 將自訂Power BI報表連接到資料時使用的URL。
clusterId 字串 數據總管叢集的資源標識碼。
clusterUri 字串 數據總管叢集的 URI。
ingestionDbName 字串 用於匯入數據的數據探查器資料庫名稱。
hubDbName 字串 用於查詢數據的數據總管資料庫名稱。
managedIdentityId 字串 Data Factory 受管理識別的物件標識碼。 在設定管理匯出時,將會需要此項目。
受管理的身分租戶識別碼 字串 Azure AD 租用戶識別碼。 在設定管理匯出時,將會需要此項目。

提供意見反應

請寫下您的快速評價,讓我們知道我們的表現如何。 我們會使用這些評論來改善及擴充 FinOps 工具和資源。

如果您要尋找特定專案,請投票給現有專案或建立新想法。 與其他人分享想法,以獲得更多的選票。 我們專注於擁有最多選票的想法。


深入了解