共用方式為


針對常見的 FinOps 工具組錯誤進行疑難解答

本文說明常見的 FinOps 工具組錯誤,並提供解決方案的相關信息。 如果您在使用您不瞭解或無法解決的 FinOps 工具組解決方案時收到錯誤,請尋找下列對應的錯誤碼,並採取緩和步驟解決問題。

以下是常見的錯誤碼清單及風險降低資訊。

如果提供的資訊無法解決問題,請嘗試 疑難解答指南


禁止存取資源

嚴重性:嚴重

此錯誤通常表示您連接的帳戶無法存取您嘗試使用的資源。

緩解措施:確認您在正確的 Microsoft Entra ID 租使用者中使用正確的帳戶。


帳戶屬性無法更新

嚴重性:嚴重

使用與建立期間原本使用的不同記憶體帳戶組態來更新 FinOps 中樞部署時,通常會發生此錯誤。 雖然大部分的屬性都可以變更,但有幾個屬性只能在建立記憶體帳戶且無法變更時設定一次。 FinOps 中樞的其中一個已知案例是「requireInfrastructureEncryption」屬性。 如果在第一個 FinOps 中樞部署期間啟用或停用此屬性,則無法變更此屬性。 發生這種情況時,您會看到下列錯誤:

屬性 'requireInfrastructureEncryption' 已在輸入中指定,但無法更新為只讀。

風險降低:如果您不打算變更此設定,請確認您的記憶體帳戶是否已設定為使用基礎結構加密,並使用相同的值重新部署 FinOps 中樞範本(開啟或關閉)。 如果您想要變更設定,建議您部署新的 FinOps 中樞實例,因為這會需要重新擷取所有數據。

您可以嘗試刪除現有的記憶體帳戶,並在基礎結構加密變更后重新部署範本;不過,我們還沒有徹底測試過這個問題。 雖然我們不預期問題,但無法確認問題是否會造成問題。


錯誤的Hub版本

嚴重性:嚴重

FinOps 中樞 0.2 無法運作。 升級至 0.3 版或更新版本。

緩解措施:升級至最新版的 FinOps 樞紐


數據表 'Resources' 中的數據行 'id' 包含重複的值

嚴重性:嚴重

如果您遇到下列錯誤,這表示 Azure Resource Graph 傳回具有相同邏輯值的 id 欄的資料列。 這種情況可能發生在資源標識碼值的大小寫不一致時,或者當另一個數據列橫跨多行展開時。

數據表 'Resources' 中的數據行 'id' 包含重複值 '{resource-id}',而且在多對一關聯性的一端或做為數據表主鍵的數據行不允許這樣做。

緩解措施:請確保您使用的是 最新版本 的報表。 識別重複值的原因,並更新查詢以解決重複值。 您也可以 在 GitHub 中回報此問題 ,以便在未來的版本中加以修正。 這可能需要額外的詳細數據或會議,才能針對錯誤的原因進行疑難解答。


衝突錯誤

嚴重性:嚴重

此錯誤可能會有多個實例。 其中一個已知實例是在 Key Vault 傳回下列錯誤時:

具有相同名稱的保存庫已處於已刪除狀態。 您必須復原或清除現有的金鑰保存庫。 請點擊此連結 https://go.microsoft.com/fwlink/?linkid=2149745 以獲取虛刪除的詳細資訊。

這通常表示您要在已刪除的舊部署之上部署,但 Key Vault 會將舊保存庫實例保持在可復原的刪除狀態。

緩解措施:若要修正此問題,請在 Azure 入口網站中清除已刪除的 Key Vault。

  1. 在 Azure 入口網站中開啟 Key Vault 實例清單
  2. 選取頁面頂端的 [管理已刪除的保存庫] 命令。
  3. 在下拉式清單中選取訂閱。
  4. 檢查要移除的保管庫。
  5. 在飛出視窗的底部選擇清除
  6. 在確認對話框中選取 [ 刪除 ]。

您現在可以重試部署。


合約成本低於實際成本

嚴重性: 警告

ContractedCost(根據談判折扣)在成本管理的數據中,低於 EffectiveCost(承諾折扣之後)。 除非承諾折扣提供的優惠比您現有的協商折扣少,否則不應該發生這種情況。 這會導致您的節省計算總和不準確。

緩解:確認 ContractedUnitPrice 成本數據是否匹配價格數據中的內容。 如果合約價格正確,請向成本管理小組提出支援要求,以確認 x_EffectiveUnitPriceEffectiveCost 正確無誤。 如果正確的話,請考慮傳回承諾折扣。


跨租戶存取政策不允許此使用者

嚴重性:主要

如果您遇到下列錯誤,表示Microsoft Entra ID 設定為不允許來自其他租用戶的使用者登入目前的租使用者。

訊息:AADSTS500213:資源租戶的跨租戶存取政策不允許此使用者存取此租戶。

此錯誤訊息與 FinOps 工具組無關。

緩解:確認您已登入正確的帳戶,並確保登入方式是通過目標目錄。 如果您需要進一步的協助,請連絡目錄管理員。


資料探勘器資料導入失敗

嚴重性:嚴重

數據總管擷取失敗。 新的數據將無法用於報告。

常見錯誤:SEM0080 assert() 失敗,訊息為「Ingestion Failed」

如果您在 Azure Data Factory 管線中看到以下語意錯誤:

語義錯誤:Relop 語義錯誤:SEM0080:assert()已失敗,訊息為「Ingestion Failed」

此錯誤表示資料檔案總管 .ingest 指令在擷取過程中偵測到錯誤。 匯入指令包含一個斷言檢查(assert(iff(toscalar($command_results | project-keep HasErrors) == false, true, false), "Ingestion Failed")),用以驗證指令結果中的HasErrors欄位。 當 HasErrorstrue時,該斷言失敗並觸發此錯誤。

常見的根本原因

  • 空的 parquet 檔案:parquet 檔案中沒有資料列。 這是最常見的原因。

    • 成本管理匯出產生一個空白檔案(該期間無資料)
    • ETL 流程在轉換過程中建立了一個空的 Parquet 檔案
    • 檔案已建立,但資料寫入操作失敗
  • 模式不匹配:parquet 檔案的模式與目標資料表的 ingestion mapping 參考不匹配。

    • parquet 檔案中的欄位名稱或資料型態可能與預期不同
    • 擷取映射(例如 <table>_mapping)可能已過時或錯誤
    • 匯出結構新增了不在映射中的欄位
  • parquet 檔案損壞或無效:原始檔案可能格式不佳、損壞,或不是有效的 parquet 檔案。

  • 遺失或錯誤的擷取映射:所參考的映射(例如 Costs_raw_mapping)不存在或欄位定義錯誤。

  • 資料型別轉換錯誤:parquet 檔案中的資料無法轉換為表格結構中定義的目標欄位類型。

  • 檔案存取問題:資料總管因權限或網路問題無法存取儲存中的 parquet 檔案。

緩解措施

  1. 在 Data Explorer 中檢查資料匯入失敗

    • 連接你的資料總管叢集/資料庫
    • 執行以下查詢以查看詳細錯誤資訊:
      .show ingestion failures
      | where FailedOn > ago(4h) and Database == "<YourDatabaseName>"
      | project FailedOn, Table, IngestionSourcePath, ErrorCode, Details
      
    • 請檢視欄位 Details 中有關空檔案、結構不符或資料問題的具體錯誤訊息
    • 請尋找類似於錯誤代碼BadRequest_NoRecordsOrWrongFormat的代碼,該代碼表示檔案為空。
  2. 檢查拼花盤是否空

    • 從匯入容器下載出現問題的 parquet 檔案(路徑在錯誤訊息中)
    • 使用 parquet viewer 工具或 Azure Storage Explorer 來檢查檔案
    • 檢查檔案大小——如果非常小(< 1KB),很可能是空的
    • 請確認檔案包含資料列
    • 如果是空:這是在沒有該時期資料時的預期行為。 該檔案可以安全地從擷取容器中刪除。 成本管理可能會在數月內匯出空檔,且無使用量。
  3. 請確認該資料擷取映射是否存在且正確

    • 在資料總管中執行此查詢以確認該映射是否存在:
      .show table <TableName> ingestion mappings
      
    • 如果映射遺失,就必須重新建立。 請檢查 FinOps 中樞部署日誌,查看映射建立錯誤。
    • 如果有映射,請確認它是否符合你資料來源的預期結構
  4. 檢查結構變更:

    • 如果你最近更新了成本管理的匯出資料或更改了匯出版本(例如從 FOCUS 1.0 改到 1.2),結構可能已經改變了
    • 請在 MSEXPORTS 容器的 manifest.json 檔案中確認匯出資料集的版本
    • 確認 FinOps hubs 支援資料集版本 - 參見 支援資料集
  5. 檢查 Data Explorer 診斷:

    • 在 Azure 入口網站中,導覽到你的資料總管叢集
    • 前往 監控>診斷設定
    • 如果還沒啟用診斷日誌,請啟用FailedIngestion
    • 請在 Log Analytics 中檢視日誌以獲得詳細的錯誤資訊
  6. 如果缺少映射,請重新部署 FinOps 集線器

    • 如果匯入映射遺失或損壞,請重新部署 FinOps 中樞以重新創建它們。
    • 這將在不遺失資料的情況下重建所有資料表、映射和函式
  7. Review Azure Data Explorer metrics:

    • 請檢查 Azure Monitor 中的 Ingestion 結果 指標
    • 依狀態篩選,查看成功率與失敗率
    • 請參閱監控排隊資料擷取以獲取更多細節。
  8. 修復問題後重新執行併入

    • 解決根本原因後,重新運行 ingestion_ExecuteETL 管線
    • 將錯誤訊息中的資料夾路徑指定為參數
    • 監控管線執行以確認成功匯入
    • 注意:空檔不需要重新導入,可以安全忽略。

其他資源

若依照上述步驟仍出現此錯誤,請使用以下資訊進行回報:

  • 來自 ADF 管線的完整錯誤訊息
  • 查詢的 .show ingestion failures 輸出
  • 資料集類型與版本來自 manifest.json 檔案
  • FinOps 集線器版本

資料探索器導入映射失敗

嚴重性:嚴重

無法為指定的數據表建立數據總管擷取對應。

處理:請修正錯誤,並重新執行指定資料夾路徑的匯入。 如果您繼續看到此錯誤,請在 回報問題。https://aka.ms/ftk/ideas


DataExplorerIngestionTimeout

嚴重性:嚴重

在等待可用容量過程中,Data Explorer 的數據導入超過 2 小時後逾時。

風險降低:請重新執行此管線以重新嘗試擷取。 如果您繼續看到此錯誤,請在 回報問題。https://aka.ms/ftk/ideas


DataExplorer後置佇列移除失敗

嚴重性:嚴重

數據總管擷取後清除 (從最終數據表卸除範圍) 失敗。 來自先前導入的數據可能會出現在報告中,這可能會導致成本的重複計算和不正確。

當下列情況時,可能會發生此錯誤:

  • 資料探索器叢集正面臨容量不足或資源使用率過高的問題
  • drop extents 指令遇到無效的表達式或語法錯誤
  • 存取資料總管資料庫時存在權限問題
  • Data Factory 與 Data Explorer 之間的網路連線問題

避免方法:

  1. 請檢視詳細錯誤訊息:導航至 Azure Data Factory > 監控 > 管線運行 > 點擊失敗的執行 > ,查看「Post-Ingest Drop Failed Error」活動,以查看特定的 Data Explorer 錯誤代碼與訊息。

  2. 基於錯誤類型的常見解決方案

    • 如果你看到「無法解析 Post-Ingest Drop Failed Error 錯誤訊息或錯誤代碼」:這表示在名為 Fail 的活動中,動態運算式無法被評估。 這通常意味著:

      • 活動Post-Ingest Cleanup失敗,但沒有以預期格式回傳錯誤細節。
      • 請檢查 Post-Ingest Cleanup 活動輸出是否存在實際的 Data Explorer 錯誤
      • 關於此特定錯誤模式的更多細節,請參見 ErrorCodeNotString
    • 關於容量/資源問題

      • 等幾分鐘再重新跑管線
      • 在 Azure Monitor 中檢查 Data Explorer 叢集指標
      • 如果持續達到容量限制,可以考慮擴大叢集規模
    • 關於授權問題

      • 確認 Data Factory 管理的身份在 Data Explorer 資料庫中擁有適當的權限
      • 確保受管理身份至少擁有「資料庫匯入者」和「資料庫管理員」角色
    • 關於語法/表達式錯誤

      • 請使用 .show commands 資料總管查詢編輯器中檢視資料檔案管理器的指令日誌
      • 檢查最近的結構變更是否會影響刪除範圍查詢
  3. 重執行資料擷取:問題解決後,使用 ingestion_ExecuteETL Azure Data Factory的管線重新執行指定資料夾的資料擷取。

  4. 防止資料重複:如果錯誤持續存在,您可能需要在重新執行擷取前,使用 Data Explorer 指令手動清理重複的範圍。 請連絡支援部門以尋求協助。

如需詳細資訊,請參閱:

請回報未解決的問題到 https://aka.ms/ftk/ideas


資料探索器預處理移除失敗

嚴重性:嚴重

資料管理器的預處理清理失敗(從原始資料表中刪除範圍失敗)。 資料導入尚未完成。

此錯誤發生在資料總管清理步驟失敗時,該步驟在匯入新資料前執行。 此清理是為了防止原始資料表中資料重複。

避免方法:

  1. 請檢視詳細錯誤訊息:前往 Azure Data Factory > 監控 > 管線執行 > 選擇失敗的執行 > 查看「Pre-Ingest Drop Failed Error」活動,以查看特定的資料總管錯誤代碼與訊息。

  2. 基於錯誤類型的常見解決方案

    • 如果你看到「無法解讀 Pre-Ingest Drop Failed Error 的失敗訊息或錯誤代碼」:請參見 ErrorCodeNotString 以獲得故障排除步驟。

    • 關於容量/資源問題

      • 等幾分鐘再重新跑管線
      • 在 Azure Monitor 中檢查 Data Explorer 叢集指標
    • 關於授權問題

      • 確認資料工廠的受管理身份在 Data Explorer 資料庫中是否具有「資料庫管理員」角色
    • 關於語法/表達式錯誤

      • 請使用 .show commands 資料總管查詢編輯器中檢視資料檔案管理器的指令日誌
  3. 重執行資料擷取:問題解決後,使用 ingestion_ExecuteETL Azure Data Factory的管線重新執行指定資料夾的資料擷取。

更多資訊請參閱 DataExplorerPostIngestionDropFailed 的緩解步驟。

請回報未解決的問題到 https://aka.ms/ftk/ideas


部署輸出評估失敗

嚴重性:主要

FinOps 中心 0.8 會將 Azure 數據總管的「trustedExternaltenants」安全性設定設置為鎖定叢集,使其只能從特定的信任租戶進行存取。 此設定可以針對第一個部署進行設定,但無法在第二個部署中再次設定。 如果您嘗試在現有的 0.8 部署之上重新部署 FinOps 中樞 0.8,您可能會看到下列錯誤:

範本輸出 'clusterUri' 無效:語言表達式屬性 'uri' 不存在,可用屬性為 'trustedExternalTenants、enableStreamingIngest、publicNetworkAccess、enableAutoStop、provisioningState'。

我們會與 Azure 數據總管小組進行後續追蹤,以找出正確的解決方案。

緩解:部署 FinOps 中心 0.9。 此設定已從範本中移除。


未找到匯出資料

嚴重性:嚴重

在指定的儲存路徑中找不到匯出的文件。

風險降低:確認 已建立成本管理匯出 ,並使用正確的記憶體帳戶、容器和記憶體路徑進行設定。 建立之後,選取 [立即執行] 以啟動導出程式。 視帳戶大小而定,導出可能需要 15-30 分鐘才能完成。 如果您打算使用 FinOps 中樞,請更正儲存 URL 以指向「擷取」容器。 請參閱 FinOps 中樞部署的輸出以獲得完整的 URL。


匯出類型未定義 (ExportTypeNotDefined)

嚴重性:嚴重

受控導出不支援此計費範圍類型。

風險降低:從 settings.json移除不支援的計費範圍、確認 FinOps 中樞支援計費範圍,並手動為計費範圍建立新的成本管理導出。


匯出類型不支援

嚴重性:嚴重

受管理的導出不支援 Microsoft 客戶協議。

緩解措施:從 settings.json 移除 MCA 計費範圍,並針對 FOCUS 成本、價格表、預訂詳細數據、預訂交易和預訂建議,為每個 MCA 帳單設定檔手動建立新的成本管理匯出。


錯誤代碼非字串

嚴重性:嚴重

當 Azure Data Factory 失敗活動無法將其動態錯誤訊息或錯誤代碼表達式評估為有效字串時,會發生此錯誤。 錯誤訊息通常顯示為「無法解讀 [activity_name] 失敗訊息或錯誤代碼」,錯誤代碼 ErrorCodeNotString為 。

常見案例

  • 父活動(如 Post-Ingest CleanupPre-Ingest CleanupIngest Data)失敗,但未產生預期格式的錯誤輸出
  • 動態表達式嘗試存取一個活動輸出中不存在的屬性
  • 活動輸出為 null、空,或不符合預期的 JSON 結構。

避免方法:

  1. 找出根本原因活動:查看是哪個活動觸發了失敗活動(例如,如果你看到「Post-Ingest Drop Failed Error」,請檢查「Post-Ingest Clean up」活動)。

  2. 檢視父活動產出

    • 請移至 Azure Data Factory > 監控 > 管道執行
    • 點擊失敗的流水線執行
    • 找到並點擊在失敗任務前執行的活動
    • 請查看「輸出」標籤以查看實際錯誤細節
    • 尋找任何錯誤訊息或代碼,解釋活動失敗的原因
  3. 檢查資料總管是否有特定問題 (例如匯入管線錯誤):

    • 資源容量:Data Explorer 叢集可能已達到容量。 在 Azure Monitor 中檢查叢集指標。
    • 指令語法錯誤:請使用 .show commands 查詢編輯器檢視資料檔案管理器的指令歷史。
    • 權限問題:確認受管理身份是否擁有適當的資料庫權限。
    • 網路連線:確保 Data Factory 能存取 Data Explorer 叢集。
  4. 常見的資料檔案總管故障排除指令

    // Check recent failed operations
    .show operations
    | where StartedOn > ago(4h) and State == "Failed"
    
    // Check ingestion failures
    .show ingestion failures
    | where FailedOn > ago(4h)
    
    // Check command history
    .show commands
    | where StartedOn > ago(4h)
    
  5. 解決根本問題後:從 Azure Data Factory 重跑失敗的管線。

相關錯誤:此錯誤常與以下情況同時出現:

如需詳細資訊,請參閱:

請回報未解決的問題到 https://aka.ms/ftk/ideas


中樞資料未找到

嚴重性:嚴重

在指定的記憶體帳戶中找不到 FinOps 中樞數據。

緩解:此錯誤假設您正在連線到 FinOps 中心部署。 如果使用原始匯出,請更正記憶體路徑,不要參考 ingestion 容器。 確認下列項目:

  1. 儲存 URL 應該符合 FinOps 中樞部署的輸出。
  2. 成本管理匯出應該設定為使用 msexports 容器指向相同的記憶體帳戶。
  3. 成本管理匯出應該會在執行歷程記錄中顯示成功的匯出。
  4. 應全部啟動 FinOps 中樞數據處理站觸發程式。
  5. FinOps 中樞的數據工廠管線應當運作成功。

如需詳細資訊和偵錯步驟,請參閱 驗證您的 FinOps 中樞部署


找不到匯入檔案

嚴重性:嚴重

無法從指定的資料夾路徑匯入 parquet 檔案。

減輕影響:確認資料夾路徑是完整路徑,包括匯入容器,且路徑不以斜線開頭或結尾。/ 從上次成功的 ingestion_ExecuteETL 管線執行中複製路徑。


內部服務錯誤

Microsoft Fabric Real-Time Intelligence 可能會在匯入數據時傳回「InternalServiceError (520-UnknownError)」錯誤碼。 詳細的錯誤訊息可能會說:

Kusto 用戶端無法傳送要求給服務:「無法從傳輸連線讀取數據:遠端主機強制關閉現有的連線。」`

此錯誤的確切原因不明。 如果您遇到,請向 Microsoft Fabric 提出支援要求,以進一步調查。

緩解措施:因應措施是,將 Fabric 事件存放區的最低耗用量變更為 中(18 個 CUs),等候 30 分鐘,然後重新執行該數據集和月份的 ingestion_ExecuteETL 管線。 若要深入瞭解最低耗用量,請參閱 Eventhouse 概觀中的 最小耗用量


無效的有效成本

嚴重性:主要

自 2024 年 11 月起,成本管理有一個已知的 Bug,其中節省方案購買會在內部追蹤為實際成本和攤銷成本。 因此,FOCUS 在計算 EffectiveCost 時包含節約計劃的購買,這會導致 FinOps 工具組報告中的數字不準確。

減輕:提交包含問題詳細資訊的支援要求給 Microsoft 成本管理小組,以修正基礎數據。 自 2024 年 11 月起,小組知道問題,但修正尚未排定優先順序。 在過渡期間,更新為 FinOps 工具組 0.7,其中包含對於 FinOps 中樞和儲存基礎 Power BI 報表的因應措施。


無效的匯出容器

嚴重性:嚴重

此檔案看起來像是從成本管理匯出,但不是在正確的容器中。

風險緩解:更新您的成本管理匯出設定以指向 'msexports' 儲存體容器。 「擷取」容器僅用於查詢擷取的成本數據。


無效的導出版本

嚴重性:嚴重

FinOps 中樞需要FOCUS成本匯出,但此檔案看起來像是舊版成本管理匯出。

風險降低:為FOCUS成本創建新的成本管理匯出,同時選擇停止現有的匯出或更改其匯出至不同的存儲容器。


無效的 Hub 版本

嚴重性:嚴重

FinOps 中樞 0.1.1 和更早版本不適用於 數據擷取 Power BI 報表

風險降低:升級至最新版的 FinOps 中樞,或從 0.1.1 版下載 Power BI 報表。


無效的範圍ID

嚴重性:僅供參考

匯出路徑不是有效的範圍標識碼。 FinOps 中樞預期匯出路徑會是建立匯出範圍的 Azure 資源識別碼,以簡化管理。 它不應該造成失敗,但可能會導致與範圍相關的報告產生令人混淆的結果。

風險降低:更新成本管理導出的記憶體路徑,以針對範圍使用完整的 Azure 資源識別符。


LegacyFocusVersion

嚴重性:僅供參考

當內嵌的數據使用舊版FOCUS時,會顯示此錯誤碼。 在數據行中找到 x_SourceChanges 時,程式代碼僅供參考。 當 Power BI 記憶體報表中當成本查詢無法載入時,這表示已 淘汰:執行額外的查詢優化 參數已停用。

FinOps 中樞會將數據轉換成最新的 FOCUS 版本,因此這不應該造成問題;不過,現代化轉換無法考慮所有案例,而且在某些情況下可能會導致非預期的結果。 如需已知問題,請參閱檔。

緩解:根據您使用的工具,可以採取幾種不同方式來緩解此訊息的影響。

如果您在使用 FinOps 中心與數據探查器時,在成本表或相關功能的 x_SourceChanges 欄中看到此情況,請更新成本管理的成本匯出以使用最新版本的 FOCUS。 不需要進行其他變更,所有數據都會在數據總管擷取期間合併。

如果使用記憶體報告並在成本查詢的數據行中看到此 x_SourceChanges 情況,則此訊息是警告,指出未來更新中將會移除此 FOCUS 版本。 雖然您可以放心地忽略此訊息,但未來版本將會需要更新。 若要避免訊息,請更新成本管理匯出至最新的FOCUS版本、使用舊版FOCUS刪除或行動任何較舊的數據,以及重新匯出歷程記錄數據。 如果使用 FinOps 中樞,請在 匯入 容器外部刪除或移動資料。 如果在儲存空間中裝載您自己的匯出,請將 儲存空間 URL 參數變更為另一個不包含舊 FOCUS 版本的資料夾路徑。

從 FinOps 工具組 0.7 開始,舊版 FOCUS 版本的支援已被取代,以改善效能和延展性。 建議您更新至最新的FOCUS版本並重新匯出數據,以改善您的體驗。 設定 已淘汰:執行額外的查詢優化 參數為 TRUE 以確保支援較舊的FOCUS版本;將參數設定為 FALSE 則可以提高效能,並支持處理包含更多成本或更長時間的大型數據集。 自 0.7 起,預設會啟用此參數以提供回溯相容性。 在 FinOps 工具組 0.8 中,預設會停用它,但仍可在 2025 年 6 月前後提供回溯相容性。 如果您無法升級或遷移舊版 FOCUS,或是為了提升效能及更好地支援大型帳戶或長期使用,我們建議您使用 FinOps 中樞與數據總管。


列表成本低於合約成本

嚴重性: 警告

ListCost (根據公眾零售價格)在成本管理數據中,低於 ContractedCost (根據談判折扣)。 這不應該發生。 這會導致您的節省計算總和不準確。

緩解:確認 ListUnitPrice 成本數據是否匹配價格數據中的內容。 如果價目表正確,請向成本管理小組提出支援要求,以確認 ListUnitPriceContractedUnitPrice 都正確無誤,並說明談判折扣之後的價格為何會高於公用零售費率。

關於資料品質問題如何影響節省計算的詳細資訊,請參閱「了解節省計算」。


清單讀取失敗

嚴重性:嚴重

FinOps 中樞 msexports_ExecuteETL 管線無法讀取成本管理指令清單檔案。

避免方法:

  1. 如果在沒有對中樞或匯出進行變更時,工作中樞實例發生錯誤,則成本管理可能會變更現有 API 版本的指令清單架構。
  2. 如果您在建立新的或變更現有的匯出之後發生錯誤,則匯出 API 版本可能會使用新的不支援的指令清單架構。
  3. 如果在中樞部署之後發生錯誤(初始安裝或升級),則部署可能會失敗,或管線中可能有錯誤。

若要確認指令清單架構 (#1) 或 API 版本 (#2):

  1. 在 Azure 入口網站或儲存體總管中開啟中樞儲存帳戶。
  2. 如果您在 Azure 入口網站,請移至 功能表中的 [儲存體] 瀏覽器
  3. 選取 msexports 容器。
  4. 向下瀏覽有問題的導出檔案階層(請參閱錯誤訊息中的清單位置)。
  5. 尋找manifest.json檔案並選擇菜單(),然後選擇檢視/編輯
  6. 識別下列屬性:
    {
      "exportConfig": {
        "resourceId": "<scope-id>/providers/Microsoft.CostManagement/exports/<export-name>",
        "dataVersion": "<dataset-version>",
        "apiVersion": "2023-07-01-preview",
        "type": "<dataset-type>",
        ...
      },
      ...
    }
    
  7. 確認它們已設定為下列支援的值:
    • resourceId 可以是任何範圍標識符和任何匯出名稱,但必須存在 「Microsoft.CostManagement/export」 資源類型。 不區分大小寫。
    • 類型 必須存在,但不應該因為任何非空值而發生此錯誤。
    • dataVersion 必須存在,但不應該因為任何非空值而發生此錯誤。
    • apiVersion 不會明確使用,但可以表示指令清單架構的變更。 如需詳細資訊,請參閱 支援的 API 版本
  8. 如果您使用較新的 API 版本:
    1. 若要追蹤新 API 版本的新增支援, 請在 GitHub 中建立變更要求問題。
    2. 刪除成本管理中的匯出。
    3. 使用支援的 API 版本,使用 New-FinOpsCostExport PowerShell 命令 來建立導出。

      提示

      如果您認為自己是強大的使用者,建議您嘗試自行更新管線,以取得最快的解決方案。 若要這樣做,請開啟 Data Factory,導航到 [撰寫>管線>] msexports_ExecuteETL,然後選取適用的「Set」活動,並視需要更新 設定> 屬性。 如果您這樣做,就不需要使用舊版重新建立導出。 請仍然回報問題,並考慮從管線設計介面的右上角圖示中共用新的 JSON。

  9. 如果您注意到支援 API 版本的屬性已變更:
    1. 若要追蹤重大變更, 請在 GitHub 中建立變更要求問題。 請包含 typedataVersionapiVersion,它們來自你的 manifest.json 檔案。
    2. 向 Cost Management 提出支援請求,要求恢復更改,因為此更改會影響所有使用 FinOps 平台或其他自訂解決方案的人。 包含下列詳細數據,以協助成本管理支援小組找出其系統內的問題。 成本管理對於 FinOps 樞紐缺乏上下文理解,因此您應該將詳細資訊集中在成本管理功能上。 以下是範例:

      我使用成本管理匯出將成本數據提取到ADLS。 我有一個ADF管線,它在清單檔案寫入時處理數據。 我的管線是以 API 版本 <your-supported-api-version> 為基礎所建置,預期 exportConfig.resourceIdexportConfig.typeexportConfig.dataVersion 屬性會一致地傳遞。 我注意到這些檔案未包含在此 API 版本的清單檔中,而我的匯出是在<your-export-date>上進行的。 我的期許是,manifest 檔案不應更改既有的 API 版本。 您可以還原這些變更嗎?

      為了協助您進行疑難解答,以下是我的指令清單檔案: {your-manifest-json}

如果清單屬性看起來良好,並且它是新的或升級的 FinOps 中樞實例,請確認部署:

  1. 在 Azure 入口網站 中開啟中樞資源群組。
  2. 在左側功能表中選取設定>和部署
  3. 確認所有部署都成功。 具體來說,尋找下列部署名稱:
    • 主要
    • 中樞
    • dataFactoryResources
    • 儲存空間
    • keyVault
  4. 如果有任何部署失敗,請檢閱錯誤訊息,以判斷其是否為您可以自行解決的專案(例如名稱衝突、可修正的原則違規)。
  5. 如果錯誤看似暫時性,請嘗試再次部署。
  6. 如果錯誤持續發生,請建立 討論 ,以查看是否有其他人遇到問題或知道可能的因應措施(特別是針對原則問題)。
  7. 如果錯誤顯然是 Bug 或功能差距, 請在 GitHub 中建立 Bug 或功能要求問題。

我們會盡量在三個工作天內回應問題和討論。 需要現場協助嗎? 歡迎參加我們 每兩週一次的諮詢時間


缺少合同成本

嚴重性:僅供參考

x_SourceChanges為 Null 或 0 且ContractedCost大於 0 時,EffectiveCost列中會顯示此錯誤碼。 錯誤顯示 Microsoft 成本管理未包含指定數據列的 ContractedCost,這表示無法計算節省。

緩解措施:為了因應遺漏數據,FinOps 工具組報告會將 EffectiveCost 複製到 ContractedCost 欄,針對標示為此錯誤碼的數據列。 這些記錄無法節省成本。

要計算完整的節省金額,您可以將成本和使用量數據與價格結合起來。 如需詳細資訊,請參閱 問題 #873


缺少合約單位價格

嚴重性:僅供參考

x_SourceChanges為 Null 或 0 且ContractedUnitPrice大於 0 時,EffectiveUnitPrice列中會顯示此錯誤碼。 錯誤顯示 Microsoft 成本管理未包含指定數據列的 ContractedUnitPrice,這表示無法計算節省。

緩解措施:為了因應遺漏數據,FinOps 工具組報告會將 EffectiveUnitPrice 複製到 ContractedUnitPrice 欄,針對標示為此錯誤碼的數據列。 這些記錄無法節省成本。

要計算完整的節省金額,您可以將成本和使用量數據與價格結合起來。 如需詳細資訊,請參閱 問題 #873

關於缺失價格如何影響儲蓄計算的詳細資訊,請參見「理解節省計算」。


遺漏清單成本

嚴重性:僅供參考

x_SourceChanges為 Null 或 0 且ListCost大於 0 時,ContractedCost列中會顯示此錯誤碼。 錯誤顯示 Microsoft 成本管理未包含指定數據列的 ListCost,這表示無法計算節省。

緩解措施:為了因應遺漏數據,FinOps 工具組報告會將 ContractedCost 複製到 ListCost 欄,針對標示為此錯誤碼的數據列。 這些記錄無法節省成本。

要計算完整的節省金額,您可以將成本和使用量數據與價格結合起來。 如需詳細資訊,請參閱 問題 #873


缺少清單單價

嚴重性:僅供參考

x_SourceChanges為 Null 或 0 且ListUnitPrice大於 0 時,ContractedUnitPrice列中會顯示此錯誤碼。 錯誤顯示 Microsoft 成本管理未包含指定數據列的 ListUnitPrice,這表示無法計算節省。

緩解措施:為了因應遺漏數據,FinOps 工具組報告會將 ContractedUnitPrice 複製到 ListUnitPrice 欄,針對標示為此錯誤碼的數據列。 這些記錄無法節省成本。

要計算完整的節省金額,您可以將成本和使用量數據與價格結合起來。 如需詳細資訊,請參閱 問題 #873

關於缺失價格如何影響儲蓄計算的詳細資訊,請參見「理解節省計算」。


缺少提供者名稱

嚴重性:僅供參考

x_SourceChanges為 null 時,這個錯誤碼會顯示在ProviderName欄中。 錯誤指出數據集的提供者(例如,Microsoft成本管理)不包含 ProviderName 指定數據列的值。

緩解措施:作為缺失數據的解決方案,FinOps 工具包報告會根據可用的欄位嘗試識別供應商。


查詢 '...' 引用其他查詢或步驟

嚴重性:次要

此錯誤的來源未知。 重新整理 Power BI 資料時,可能會隨機顯示此錯誤。

緩解措施:如果您收到此錯誤,請再次選取 [ 套用變更 ]。

此錯誤只會在記憶體報告中回報。 如果您的資料更新時間過長或經常遇到此錯誤,請考慮使用 Data Explorer 切換至 FinOps 中樞 。 數據總管會使用不需要排程或累加式重新整理的 KQL 報表。 開啟報表時會提取數據,因此報表一律會顯示最新的數據。


ResourceAccessForbiddenException(資源存取被禁止例外)

嚴重性:主要

Power BI:擲回 'Microsoft.Mashup.Engine.Interface.ResourceAccessForbiddenException' 類型的例外狀況

指出在Power BI 中載入資料的帳戶沒有 記憶體 Blob 資料讀取者角色。 將此角色授權給 Power BI 中載入資料的帳戶。


回應承載大小為...和已超過限制

嚴重性:主要

治理和工作負載優化 Power BI 報表中的 Azure Resource Graph 查詢可能會傳回類似下列的錯誤:

OLE DB 或 ODBC 錯誤: [Expression.Error] 當要求支持時,請提供下列資訊: timestamp = {timestamp}, correlationId = {guid}。 詳細數據:響應承載大小為 {number},且已超過16777216的限制。 請考慮一次查詢較少的數據,並視需要進行編頁呼叫。

此錯誤表示您的資源比未篩選的 Resource Graph 查詢中支援的資源還多。 這是因為 FinOps 工具組報告是設計來顯示資源層級的詳細數據,而且不會匯總。 它們專為中小型環境所設計,並非設計為支援具有數百萬個資源的組織。

緩解措施:如果您遇到此錯誤,有數個選項:

  • 移除您不需要的欄。
  • 根據您認為最重要的內容過濾查詢以返回較少的資源(例如訂閱、標籤)。
  • 停用查詢,使其不會封鎖其他查詢執行。

不允許更新角色分配

嚴重性:次要

如果您已刪除 FinOps 中樞,並嘗試使用相同的值重新部署,包括受控識別名稱,您可能會遇到下列已知問題:

"code": "RoleAssignmentUpdateNotPermitted",
"message": "Tenant ID, application ID, principal ID, and scope are not allowed to be updated."

緩解:若要修正此問題,您必須移除過時的身份:

  • 流覽至記憶體帳戶,然後選取 功能表中的 [存取控制][IAM ]。
  • 選取 [角色指派] 索引標籤。
  • 尋找具有「未知」身分識別的任何角色指派,並加以刪除。

角色指派已存在

嚴重性:次要

將 FinOps 中樞從某個版本升級為另一個版本時,如果先前部署中建立的角色指派仍然存在,您可能會遇到下列錯誤:

"code": "RoleAssignmentExists",
"message": "The role assignment already exists."

這可能是因為已明確刪除受控識別,而不需要先移除其所有角色指派。

緩解措施:若要修正此問題,請在 Azure 入口中刪除孤立的角色指派:

  • 流覽至資源群組或受影響的資源(例如數據總管叢集)。
  • 在功能表中選取 存取控制 (IAM)
  • 選取 [角色指派] 索引標籤。
  • 尋找具有未知身分識別的任何角色指派,並加以刪除。

Schema載入失敗

嚴重性:嚴重

FinOps 中樞 msexports_ETL_ingestion 管線無法載入架構檔案。

緩解措施:檢閱錯誤訊息以記下數據集類型和版本,其格式為底線符號(例如 <type>_<version>FocusCost_1.0)。 確認已部署的 FinOps 中樞版本都支援數據集和類型。 如需詳細資訊,請參閱支持的數據集。


Schema 未找到

嚴重性:嚴重

FinOps 中樞 msexports_ExecuteETL 管線找不到匯出數據集的架構對應檔案。

風險降低:確認數據集類型和版本是否被支持。 如需詳細資訊,請參閱支持的數據集。 如果數據集受到支持,請使用數據擷取報表確認中樞版本。

若要新增對另一個資料集的支援,請建立自訂對應檔案,並將它儲存至 config/schemas/<dataset-type>_<dataset-version>.json。 這些<dataset-type><dataset-version>值與成本管理所使用的值非常相符。 若要識別每個數據行的數據類型,請使用現有的架構檔案作為範本。 某些數據集針對 EA 和 Microsoft 客戶合約 (MCA) 有不同的架構。 您無法透過這些屬性來識別它們,而且如果您有這兩種帳戶類型,可能會造成問題。 我們正在調整並新增數據集,以校準 EA 和 MCA 之間的差異,對齊 FOCUS。


匯入的儲存位置 URL 未匹配任何匯出

嚴重性:主要

如果您在 FinOps 工具組 0.8 中遇到此問題,則錯誤是因為參考不存在的參數。

風險降低:這是在 FinOps 工具組 0.9 中修正的。 更新至最新版本以套用修正程式。 如果您需要將修正直接套用至 0.8 報表,請在進階編輯器中編輯 ftk_DemoFilter 函式,並將內容變更為: () => ""。 儲存,然後關閉並套用所有變更。


未知的匯出文件

嚴重性:僅供參考

中樞記憶體中的檔案看起來不像是從成本管理導出。 會忽略檔案。

風險降低msexports 容器僅適用於成本管理導出。 在另一個記憶體容器中移動其他檔案。


未知焦點版本

嚴重性:僅供參考

當無法識別 FOCUS 版本時,此錯誤碼會顯示在 x_SourceChanges 資料行中。

緩解措施:驗證 FOCUS 數據集是否使用支援的 FOCUS 版本。 使用匿名 https://aka.ms/ftk/ideas 數據範例回報此問題,以進一步調查。


UnknownHubVersion

嚴重性:嚴重

無法從配置檔中識別 FinOps 中樞的版本。 確認設定正確無誤。 FinOps 中樞 0.1.1 和更早版本無法使用此 Power BI 報表。

風險降低:升級至最新版 FinOps 中樞,或從 FinOps 工具組 v0.1.1 版下載 Power BI 報表。


不支援的匯出檔案類型

嚴重性:嚴重

無法擷取指定的導出檔案,因為不支援檔類型。

緩解措施:將檔案轉換成支援的檔格式,然後新增至 msexports 容器,或新增支援以將新檔類型轉換為 msexports_ETL_ingestion 管線。


不支持的匯出類型(UnsupportedExportType)

嚴重性: 警告

中樞記憶體中的匯出指令清單表示匯出是針對不支持的數據集。 匯出的數據會回報為擷取錯誤。

風險降低:為FOCUS成本創建新的成本管理匯出,同時選擇停止現有的匯出或更改其匯出至不同的存儲容器。


{name} 資源提供者未在訂用帳戶 {guid} 中註冊

嚴重性:次要

在 Azure 入口網站 中開啟訂用帳戶,然後選取 [設定>資源提供者]、選取資源提供者數據列(例如,Microsoft.EventGrid),然後選取頁面頂端的 [註冊] 命令。 註冊可能需要幾分鐘的時間。


x_PricingSubcategory顯示承諾折扣標識碼

在 2024 年 2 月 28 日之前,成本管理匯出有一個錯誤,其中 x_PricingSubcategory 附加到認可使用量時設定不正確。 您應該會看到像Committed SpendCommitted Usage這樣的值。 相反地,您可能會看到如下的值:

  • Committed /providers/Microsoft.BillingBenefits/savingsPlanOrders/###/savingsPlans/###
  • Committed /providers/Microsoft.Capacity/reservationOrders/###/reservations/###

如果您看到這些值,請重新匯出該月份的成本數據。 如果您需要匯出無法使用的較舊月份數據,請連絡支持人員以要求匯出數據,以便解決先前匯出執行的數據質量問題。


Power BI:報表遺漏特定日期的數據

如果您的報表遺失一或多個月的所有數據,請檢查 月份數、 RangeStartRangeEnd 參數,以確保數據不會被篩選掉。

若要檢查參數,請選取功能區中的 [轉換數據>編輯參數],或從查詢編輯器視窗中選取 [ 設定🛠

  • 如果您想要一律顯示最近幾個月的特定數目,請將 [月數] 設定為 [已關閉(已完成) 月數]。 除了關閉的月數之外,當月是額外的月份。
  • 如果您想要固定的日期範圍不會隨著時間變更(例如會計年度報告),請設定 RangeStartRangeEnd
  • 如果您想要報告所有可用的數據,請確認這三個日期參數都是空的。

如需詳細資訊,請參閱 設定您的第一個報表


Power BI:報表是空的(沒有數據)

如果您在 Power BI 或其他報表或工具中看不到任何數據,請根據您的數據源嘗試下列專案:

  1. 如果在 Power BI 中使用成本管理連接器,請檢查 Billing Account IDNumber of Months 參數,以確保它們已正確設定。 請記住,最近幾個月,舊的計費帳戶可能沒有數據。
  2. 如果使用 FinOps 中樞,請檢查記憶體帳戶,以確保數據已填入擷取容器中。 您應該會看到提供者訂用帳戶資料夾。 使用下列各節進一步進行疑難解答。

FinOps 中樞:擷取容器是空的

如果引入容器是空的,請在 Data Factory Studio 中開啟 Data Factory 實例,然後選取 [管理]、[作者]、[觸發程式],並確認 msexports_FileAdded 觸發程式是否已啟動。 如果沒有,就啟動它。

如果觸發程式無法以「資源提供者未註冊」錯誤啟動,請在 Azure 入口網站 中開啟訂用帳戶,然後選取 >],選取 [Microsoft.EventGrid] 數據列,然後選取頁面頂端的 [註冊] 命令。 註冊可能需要幾分鐘的時間。

註冊完成之後,請再次啟動 msexports_FileAdded 觸發程式。

啟動觸發程式之後,請重新執行所有連線的成本管理匯出。 數據應該在 10-20 分鐘內完整擷取,視帳戶大小而定。

如果問題持續發生,請檢查成本管理匯出是否設定為已啟用檔案分割。 如果您發現它已停用,請開啟並重新執行導出。

確認匯入容器已包含內容,並重新整理報表或其他連接的工具。

FinOps 中樞:在擷取容器中可用的檔案

如果擷取容器不是空的,請鑽研資料夾來確認您是否有 parquetcsv.gz 檔案。

一旦知道,請確認 FileType 參數已設定為 .parquet.gz Power BI 報表中的 。 如需詳細資訊,請參閱 連線至您的資料

如果您使用另一個工具,請確定它支援您使用的檔案類型。


Power BI:無法解析遠端名稱:「<storage-account.dfs.core.windows.net>」

指出記憶體帳戶名稱不正確。 如果使用 FinOps 中樞,請從部署確認 StorageUrl 參數。 如需詳細資訊,請參閱 連線至您的資料


Power BI:我們無法將 null 值轉換成邏輯類型

表示計費帳戶標識碼參數是空的。 如果使用 FinOps 中樞,請將值設定為所需的計費帳戶標識碼。 如果您沒有計費帳戶的存取權,或不想包含承諾用量購買和退款,請將值設定為 0 ,並在進階編輯器中開啟 CostDetails 查詢,並將 變更 21。 它會通知報表不要從成本管理連接器載入實際/計費的成本數據。 如需詳細資訊,請參閱 連線至您的資料

適用版本:0.1 - 0.1.1(已在0.2 修正)


Power BI:我們無法將 null 值轉換成 Table 型別

嚴重性:嚴重

此錯誤可能發生在使用 Blob 端點而非必要的 Data Lake Storage (DFS) 端點,將 Power BI 儲存報告連接到儲存帳號時。

緩解措施:更新您的儲存 URL 參數以使用 Data Lake Storage 端點:

  1. 將你的儲存網址中的 .blob.core.windows.net 更改為 .dfs.core.windows.net
  2. 如果使用 Azure 入口網站:
    • 開設您的儲存帳戶
    • 選擇 設定>端點
    • 複製 Data Lake Storage 的 URL(不是 Blob 服務的 URL)

例如:

  • ❌ 不正確:https://mystorageaccount.blob.core.windows.net/container
  • ✅ 正確: https://mystorageaccount.dfs.core.windows.net/container

如果你使用正確的端點後仍遇到問題,請參閱 FinOps hubs:我們無法將 null 值轉換成 Table 類型以了解更多故障排除步驟。


FinOps 中樞:我們無法將 null 值轉換成 Table 類型

此錯誤通常表示數據未內嵌至 取容器。

如果您剛升級至 FinOps 中樞 0.2,問題可能是因為 Power BI 報表舊了(從 0.1.x 起),或是因為您未使用 FOCUS 導出。 如需詳細資訊, 請參閱升級指南

如需更多疑難解答步驟,請參閱報表是空的(沒有數據)。


提供意見反應

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

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


如果您沒有看到您遇到的錯誤,請逐步檢查疑難解答指南。 如果您有任何問題, 請在 GitHub 中開始討論建立問題