FinOps 中樞範本
幕後查看組成 FinOps 中樞範本的內容,包括輸入和輸出。
此範本會建立新的 FinOps 中樞 實例。
FinOps 中樞包括:
- 用來裝載成本數據的 Data Lake 記憶體。
- 數據處理和協調流程的 Data Factory。
- 用於儲存秘密的 金鑰保存庫。
重要
若要使用範本,您必須建立成本管理匯出,以將成本數據發佈至 msexports
內含記憶體帳戶中的容器。 如需詳細資訊,請參閱 建立新的中樞。
必要條件
在部署範本之前,請確定符合下列必要條件:
您必須具有下列許可權,才能建立 已部署的資源。
資源 最低 Azure RBAC 部署及設定Data Factory Emc Data Factory 參與者 部署 金鑰保存庫 Л Key Vault 參與者 設定 金鑰保存庫 秘密ー Key Vault 管理員 建立受控識別二者 受控識別參與者 部署和設定記憶體 儲存體帳戶參與者 將受控識別指派給資源*。 受控識別操作員 建立部署腳本二次 僅 Microsoft.Resources/deploymentScripts/write
包含 和Microsoft.ContainerInstance/containerGroups/write
許可權的自定義角色作為允許的動作,或者 ,參與者,其中包括這些許可權和上述所有角色將許可權指派給受控識別 角色型 存取控制 系統管理員,或者,擁有者,包括此角色和上述所有角色 建立訂用帳戶或資源群組成本導出 成本管理參與者 建立EA計費成本匯出二次 企業讀者、部門讀者或註冊帳戶擁有者(深入瞭解) 建立 MCA 計費成本匯出二次 參與者 讀取記憶體中的 Blob 數據 儲存體 Blob 資料參與者 2. 資源群組範圍上指派中樞資源部署許可權就已足夠。
您必須在您想要匯出成本的範圍上指派成本管理許可權。
若要從 Power BI 或其他用戶端工具存取導出的成本數據,需要 2 個 Blob 數據許可權。Microsoft.EventGrid 資源提供者必須在您的訂用帳戶中註冊。 如需詳細資訊,請參閱 註冊資源提供者。
重要
如果您忘記此步驟,部署將會成功,但不會啟動管線觸發程式,且數據將無法就緒。 如需詳細資訊,請參閱 針對Power BI報表進行疑難解答。
參數
以下是可用來自定義部署的參數:
參數 | 類型 | 描述 | 預設值 |
---|---|---|---|
hubName | 字串 | 選擇性。 中樞的名稱。 用來確保唯一的資源名稱。 | “finops-hub” |
位置 | 字串 | 選擇性。 應建立所有資源的 Azure 位置。 請參閱 https://aka.ms/azureregions。 | 與部署相同 |
skipEventGridRegistration | bool | 指出事件方格資源提供者是否已註冊(例如,在先前的中樞部署中)。 需要事件方格 RP 註冊。 如果未設定,則會建立暫存事件方格命名空間,以自動註冊資源提供者。 | false (register RP) |
EventGridLocation | 字串 | 選擇性。 不支援主要位置時,用於暫存事件方格命名空間的 Azure 位置,以註冊Microsoft.EventGrid 資源提供者。 命名空間已刪除,且不會用於中樞作業。 | 與 location 相同 |
storageSku | String | 選擇性。 要使用的記憶體 SKU。 LRS = 最低成本,ZRS = 高可用性。 Data Lake gen2 記憶體無法使用標準 SKU。 允許: Premium_LRS 、 Premium_ZRS 。 |
"Premium_LRS" |
標記 | object | 選擇性。 要套用至所有資源的標記。 也會新增標記 cm-resource-parent ,以改善成本管理中的成本積存。 |
|
tagsByResource | object | 選擇性。 要根據其資源類型套用至資源的標記。 資源類型特定標籤會與所有資源的標籤合併。 | |
scopesToMonitor | 陣列 | 選擇性。 要監視和內嵌成本的範圍標識碼清單。 | |
exportRetentionInDays | int | 選擇性。 要保留在 ms-cm-exports 容器中的成本數據天數。 | 0 |
ingestionRetentionInMonths | int | 選擇性。 要保留在擷取容器中的成本數據月數。 | 13 |
remoteHubStorageUri | 字串 | 選擇性。 要將數據推送至的記憶體帳戶,以便擷取至遠端中樞。 | |
remoteHubStorageKey | 字串 | 選擇性。 將數據推送至遠端中樞時要使用的記憶體帳戶金鑰。 |
資源
部署期間會在目標資源群組中建立下列資源。
資源會使用下列命名慣例: <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
– PARQUET 轉換的 FOCUS 1.0 架構定義。schemas/focuscost_1.0-preview(v1).json
– PARQUET 轉換的 FOCUS 1.0-preview 架構定義。
- Blob 容器:
<hubName>-engine-<unique-suffix>
Data Factory 實例- 管道:
msexports_ExecuteETL
– 將msexports_ETL_ingestion
管線排入佇列以考慮 Data Factory 管線觸發程式限制。msexports_ETL_transform
– 將成本管理導出轉換成 parquet,並移除每天匯出中重複的歷史數據。config_ConfigureExports
– 為所有範圍建立成本管理匯出。config_StartBackfillProcess
– 根據保留設定執行每個月的回填作業。config_RunBackfillJob
– 為指定日期範圍的所有已定義範圍建立和觸發導出。config_StartExportProcess
– 根據settings.json中定義的範圍,取得為此中樞設定的所有成本管理匯出清單,然後使用config_RunExportJobs管線執行每個匯出。config_RunExportJobs
– 執行指定的成本管理匯出。msexports_ExecuteETL
– 觸發成本管理導出的擷取程式,以考慮Data Factory管線觸發程式限制。msexports_ETL_transform
– 將成本管理導出轉換成 parquet,並移除每天匯出中重複的歷史數據。
- 觸發器:
config_SettingsUpdated
– 更新settings.json時觸發config_ConfigureExports
管線。config_DailySchedule
– 觸發config_RunExportJobs
當月成本數據的每日管線。config_MonthlySchedule
– 針對上個月的成本數據,每月觸發config_RunExportJobs
管線。msexports_FileAdded
– 當成本管理導出完成時,msexports_ExecuteETL
觸發管線。
- 管道:
<hubName>-vault-<unique-suffix>
金鑰保存庫 實例- 秘密:
- Data Factory 系統受控識別
- 秘密:
除了上述資訊之外,也會建立下列資源來自動化部署程式。 部署腳本應該會自動刪除。 不過,請勿刪除受控識別,因為它可能會在升級至下一個版本時造成錯誤。
- 受控識別:
<storage>_blobManager
(記憶體 Blob 數據參與者) - 上傳settings.json檔案。<datafactory>_triggerManager
(Data Factory 參與者) - 在部署前停止觸發程式,並在部署後啟動觸發程式。
- 部署文稿 (成功部署後自動刪除):
<datafactory>_deleteOldResources
– 從先前的 FinOps 中樞部署中刪除未使用的資源。<datafactory>_stopTriggers
– 使用 triggerManager 身分識別停止中樞中的所有觸發程式。<datafactory>_startTriggers
– 使用 triggerManager 身分識別啟動中樞中的所有觸發程式。<storage>_uploadSettings
– 使用 blobManager 身分識別上傳settings.json檔案。
輸出
以下是部署所產生的輸出:
輸出 | 類型 | 描述 | 值 |
---|---|---|---|
name | String | 已部署中樞實例的名稱。 | |
位置 | String | 已部署 Azure 資源位置資源。 | location |
dataFactorytName | String | Data Factory 的名稱。 | dataFactory.name |
storageAccountId | String | 為中樞實例建立之記憶體帳戶的資源標識符。 建立成本管理匯出時必須使用它。 | storage.outputs.resourceId |
storageAccountName | String | 為中樞實例建立的記憶體帳戶名稱。 將 FinOps 工具組 Power BI 報表連接到您的數據時,必須使用它。 | storage.outputs.name |
storageUrlForPowerBI | String | 將自訂Power BI報表連接到資料時使用的URL。 | 'https://${storage.outputs.name}.dfs.${environment().suffixes.storage}/${storage.outputs.ingestionContainer}' |
managedIdentityId | String | Data Factory 受控識別的物件標識碼。 設定 Managed 匯出時,需要此輸出。 | dataFactory.identity.principalId |
managedIdentityTenantId | String | Microsoft Entra 租用戶識別碼。 設定 Managed 匯出時,需要此輸出。 | tenant().tenantId |