針對常見的 FinOps 工具組錯誤進行疑難解答
本文說明常見的 FinOps 工具組錯誤,並提供解決方案的相關信息。 如果您在使用您不瞭解或無法解決的 FinOps 工具組解決方案時收到錯誤,請尋找下列對應的錯誤碼,並採取緩和步驟解決問題。
以下是常見的錯誤碼清單及風險降低資訊。
如果提供的資訊無法解決問題,請嘗試 疑難解答指南。
BadHubVersion
嚴重性:嚴重
FinOps 中樞 0.2 無法運作。 升級至 0.3 版或更新版本。
風險降低:升級至最新版的 FinOps 中樞。
InvalidExportContainer
嚴重性:嚴重
此檔案看起來像是從成本管理匯出,但不是在正確的容器中。
風險降低:更新成本管理導出以指向 'msexports' 記憶體容器。 「擷取」容器僅用於查詢擷取的成本數據。
InvalidExportVersion
嚴重性:嚴重
FinOps 中樞需要FOCUS成本匯出,但此檔案看起來像是舊版成本管理匯出。
風險降低:為FOCUS成本建立新的成本管理匯出,並停止目前的匯出,或將其變更為匯出至不同的記憶體容器。
InvalidHubVersion
嚴重性:嚴重
FinOps 中樞 0.1.1 和更早版本不適用於 數據擷取 Power BI 報表。
風險降低:升級至最新版的 FinOps 中樞,或從 0.1.1 版下載 Power BI 報表。
InvalidScopeId
嚴重性:資訊
匯出路徑不是有效的範圍標識碼。 FinOps 中樞預期匯出路徑會是建立匯出範圍的 Azure 資源識別碼,以簡化管理。 它不應該造成失敗,但可能會導致範圍相關報告產生混淆的結果。
風險降低:更新成本管理導出的記憶體路徑,以針對範圍使用完整的 Azure 資源識別符。
ExportDataNotFound
嚴重性:嚴重
在指定的儲存路徑中找不到匯出。
風險降低:確認 已建立成本管理匯出 ,並使用正確的記憶體帳戶、容器和記憶體路徑進行設定。 建立之後,選取 [立即執行] 以啟動導出程式。 視帳戶大小而定,導出可能需要 15-30 分鐘才能完成。 如果您打算使用 FinOps 中樞,請更正記憶體 URL 以指向「擷取」容器。 如需完整的 URL, storageUrlForPowerBI
請參閱 FinOps 中樞部署的輸出。
HubDataNotFound
嚴重性:嚴重
在指定的記憶體帳戶中找不到 FinOps 中樞數據。
風險降低:此錯誤假設您正在連線到 FinOps 中樞部署。 如果使用原始匯出,請更正記憶體路徑,不要參考 ingestion
容器。 確認下列資訊:
- 記憶體 URL 應該符合
StorageUrlForPowerBI
FinOps 中樞部署上的輸出。 - 成本管理匯出應該設定為使用
msexports
容器指向相同的記憶體帳戶。 - 成本管理匯出應該會在執行歷程記錄中顯示成功的匯出。
- 應全部啟動 FinOps 中樞數據處理站觸發程式。
- FinOps 中樞數據處理站管線應該會成功。
如需詳細資訊和偵錯步驟,請參閱 驗證您的 FinOps 中樞部署。
MissingContractedCost
嚴重性:資訊
當 為 Null 或 0 且EffectiveCost
大於 0 時ContractedCost
,資料行中會顯示x_DatasetChanges
此錯誤碼。 錯誤表示成本管理未包含 ContractedCost
指定數據列Microsoft,這表示無法計算節省成本。
風險降低:為了因應遺漏數據,FinOps 工具組報告會將 複製到 EffectiveCost
數據行, ContractedCost
以取得標示為此錯誤碼的數據列。 這些記錄無法節省成本。
若要計算完整的節省成本,您可以使用價格聯結成本和使用量數據。 如需詳細資訊,請參閱 問題 #873。
MissingContractedUnitPrice
嚴重性:資訊
當 為 Null 或 0 且EffectiveUnitPrice
大於 0 時ContractedUnitPrice
,資料行中會顯示x_DatasetChanges
此錯誤碼。 錯誤表示成本管理未包含 ContractedUnitPrice
指定數據列Microsoft,這表示無法計算節省成本。
風險降低:為了因應遺漏數據,FinOps 工具組報告會將 複製到 EffectiveUnitPrice
數據行, ContractedUnitPrice
以取得標示為此錯誤碼的數據列。 這些記錄無法節省成本。
若要計算完整的節省成本,您可以使用價格聯結成本和使用量數據。 如需詳細資訊,請參閱 問題 #873。
MissingListCost
嚴重性:資訊
當 為 Null 或 0 且ContractedCost
大於 0 時ListCost
,資料行中會顯示x_DatasetChanges
此錯誤碼。 錯誤表示成本管理未包含 ListCost
指定數據列Microsoft,這表示無法計算節省成本。
風險降低:為了因應遺漏數據,FinOps 工具組報告會將 複製到 ContractedCost
數據行, ListCost
以取得標示為此錯誤碼的數據列。 這些記錄無法節省成本。
若要計算完整的節省成本,您可以使用價格聯結成本和使用量數據。 如需詳細資訊,請參閱 問題 #873。
MissingListUnitPrice
嚴重性:資訊
當 為 Null 或 0 且ContractedUnitPrice
大於 0 時ListUnitPrice
,資料行中會顯示x_DatasetChanges
此錯誤碼。 錯誤表示成本管理未包含 ListUnitPrice
指定數據列Microsoft,這表示無法計算節省成本。
風險降低:為了因應遺漏數據,FinOps 工具組報告會將 複製到 ContractedUnitPrice
數據行, ListUnitPrice
以取得標示為此錯誤碼的數據列。 這些記錄無法節省成本。
若要計算完整的節省成本,您可以使用價格聯結成本和使用量數據。 如需詳細資訊,請參閱 問題 #873。
ManifestReadFailed
嚴重性:嚴重
FinOps 中樞 msexports_ExecuteETL 管線無法讀取成本管理指令清單檔案。
避免方法:
- 如果在沒有對中樞或匯出進行變更時,工作中樞實例發生錯誤,則成本管理可能會變更現有 API 版本的指令清單架構。
- 如果您在建立新的或變更現有的匯出之後發生錯誤,則匯出 API 版本可能會使用新的不支援的指令清單架構。
- 如果在中樞部署之後發生錯誤(初始安裝或升級),則部署可能會失敗,或管線中可能有錯誤。
若要確認指令清單架構 (#1) 或 API 版本 (#2):
- 在 Azure 入口網站 或記憶體總管中開啟中樞記憶體帳戶。
- 如果在 Azure 入口網站,請移至功能表中的 [記憶體] 瀏覽器。
- 選取 msexports 容器。
- 使用問題向下瀏覽導出的檔案階層(請參閱錯誤訊息中的指令清單位置)。
- 尋找manifest.json檔案,然後選取功能表 (ー),然後選取 [檢視/編輯]。
- 識別下列屬性:
{ "exportConfig": { "resourceId": "<scope-id>/providers/Microsoft.CostManagement/exports/<export-name>", "dataVersion": "<dataset-version>", "apiVersion": "2023-07-01-preview", "type": "<dataset-type>", ... }, ... }
- 確認它們已設定為下列支援的值:
- resourceId 可以是任何範圍標識符和任何匯出名稱,但必須存在 「Microsoft.CostManagement/export」 資源類型。 不區分大小寫。
- 類型 必須存在,但不應該因為任何非 Null 值發生此錯誤而失敗。
- dataVersion 必須存在,但不應該因為任何非 Null 值發生此錯誤而失敗。
- apiVersion 不會明確使用,但可以表示指令清單架構的變更。 如需詳細資訊,請參閱 支援的 API 版本 。
- 如果您使用較新的 API 版本:
- 若要追蹤新 API 版本的新增支援, 請在 GitHub 中建立變更要求問題。
- 刪除成本管理中的匯出。
- 使用支援的 API 版本, 使用 New-FinOpsCostExport PowerShell 命令 建立導出。
提示
如果您認為自己是強大的使用者,建議您嘗試自行更新管線,以取得最快的解決方案。 若要這樣做,請開啟 Data Factory,流覽至 [撰寫>管線>] msexports_ExecuteETL,然後選取適用的「設定」活動,並視需要更新 [設定>值] 屬性。 如果您這樣做,就不需要使用舊版重新建立導出。 請仍回報問題,並考慮從
{}
管線右上角的圖示共用新的 JSON designer._
- 如果您注意到支援 API 版本的屬性已變更:
- 若要追蹤重大變更, 請在 GitHub 中建立變更要求問題。 包含來自manifest.json檔案的類型、dataVersion 和 apiVersion。
- 向成本管理提出支援要求,以要求其變更還原,因為它會中斷使用 FinOps 中樞或其他自定義解決方案的每個人。 包含下列詳細數據,以協助成本管理支援小組找出其系統內的問題。 成本管理沒有 FinOps 中樞的內容,因此您應該將詳細數據放在成本管理功能上。 以下是範例:
我使用成本管理匯出將成本數據提取到ADLS。 我有ADF管線,會在寫入指令清單檔案時處理數據。 我的管線是以 API 版本
<your-supported-api-version>
為基礎所建置,預期exportConfig.resourceId
、exportConfig.type
和exportConfig.dataVersion
屬性會一致地傳遞。 我注意到這些檔案未包含在此 API 版本的指令清單檔中,而我的匯出是在 上執行<your-export-date>
。 我的期望是,指令清單檔案不應該變更現有的 API 版本。 您可以還原這些變更嗎?為了協助您進行疑難解答,以下是我的指令清單檔案: {your-manifest-json}
如果指令清單屬性看起來不錯,而且它是新的或升級的 FinOps 中樞實例,請確認部署:
- 在 Azure 入口網站 中開啟中樞資源群組。
- 選取左側功能表中的 [設定>部署]。
- 確認所有部署都成功。 具體來說,尋找下列部署名稱:
- main
- 中樞
- dataFactoryResources
- 儲存體
- keyVault
- 如果有任何部署失敗,請檢閱錯誤訊息,以判斷其是否為您可以自行解決的專案(例如名稱衝突、可修正的原則違規)。
- 如果錯誤看似暫時性,請嘗試再次部署。
- 如果錯誤持續發生,請建立 討論 ,以查看是否有其他人遇到問題或知道可能的因應措施(特別是針對原則問題)。
- 如果錯誤顯然是 Bug 或功能差距, 請在 GitHub 中建立 Bug 或功能要求問題。
我們嘗試在兩個工作天內回應問題和討論。
ResourceAccessForbiddenException
Power BI:擲回 'Microsoft.Mashup.Engine.Interface.ResourceAccessForbiddenException' 類型的例外狀況
指出在Power BI 中載入資料的帳戶沒有 記憶體 Blob 資料讀取者角色。 將此角色授與 Power BI 中載入數據的帳戶。
RoleAssignmentUpdateNotPermitted
如果您刪除 FinOps Hub,並嘗試使用相同的值重新部署它,包括受控識別名稱,您可能會遇到下列已知問題:
"code": "RoleAssignmentUpdateNotPermitted",
"message": "Tenant ID, application ID, principal ID, and scope are not allowed to be updated."
若要修正此問題,您必須移除過時的身分識別:
- 流覽至記憶體帳戶,然後選取 功能表中的 [存取控制][IAM ]。
- 選取 [角色指派] 索引標籤。
- 尋找具有「未知」身分識別的任何角色指派,並加以刪除。
SchemaLoadFailed
嚴重性:嚴重
FinOps 中樞 msexports_ETL_ingestion 管線無法載入架構檔案。
風險降低:檢閱錯誤訊息以記下數據集類型和版本,其格式為底線(例如 <type>_<version>
或 FocusCost_1.0
)。 確認已部署的 FinOps 中樞版本都支援數據集和類型。 如需詳細資訊,請參閱支持的數據集。
SchemaNotFound
嚴重性:嚴重
FinOps 中樞 msexports_ExecuteETL 管線找不到匯出數據集的架構對應檔案。
風險降低:確認支持數據集類型和版本。 如需詳細資訊,請參閱支持的數據集。 如果支持數據集,請使用數據擷取報表確認中樞版本。
若要新增對另一個資料集的支援,請建立自訂對應檔案,並將它儲存至 config/schemas/<dataset-type>_<dataset-version>.json
。 這些<dataset-type>
<dataset-version>
值與成本管理所使用的值非常相符。 若要識別每個數據行的數據類型,請使用現有的架構檔案作為範本。 某些數據集針對 EA 和 Microsoft 客戶合約 (MCA) 有不同的架構。 您無法透過這些屬性來識別它們,而且如果您有這兩種帳戶類型,可能會造成問題。 我們正努力藉由對齊 FOCUS 來新增 EA 和 MCA 差異的數據集和帳戶。
UnknownExportFile
嚴重性:資訊
中樞記憶體中的檔案看起來不像是從成本管理導出。 會忽略檔案。
風險降低: msexports 容器僅適用於成本管理導出。 在另一個記憶體容器中移動其他檔案。
UnknownHubVersion
嚴重性:嚴重
無法從配置檔中識別 FinOps 中樞的版本。 確認設定正確無誤。 FinOps 中樞 0.1.1 和更早版本無法使用此 Power BI 報表。
風險降低:升級至最新版 的 FinOps 中樞 ,或從 FinOps 工具組 v0.1.1 版下載 Power BI 報表。
UnsupportedExportFileType
嚴重性:嚴重
無法擷取指定的導出檔案,因為不支援檔類型。
風險降低:將檔案轉換成支援的檔格式,再新增至 msexports 容器,或新增將新檔類型 轉換為msexports_ETL_ingestion 管線的支援。
UnsupportedExportType
嚴重性: 警告
中樞記憶體中的匯出指令清單表示匯出是針對不支持的數據集。 匯出的數據會回報為擷取錯誤。
風險降低:為FOCUS成本建立新的成本管理匯出,並停止目前的匯出,或將其變更為匯出至不同的記憶體容器。
<名稱>資源提供者未在訂<用帳戶 GUID 中註冊>
在 Azure 入口網站 中開啟訂用帳戶,然後選取 [設定>資源提供者]、選取資源提供者數據列(例如,Microsoft.EventGrid),然後選取頁面頂端的 [註冊] 命令。 註冊可能需要幾分鐘的時間。
x_PricingSubcategory顯示承諾折扣標識碼
在 2024 年 2 月 28 日之前,成本管理匯出有錯誤 x_PricingSubcategory
,因為未認可使用量而設定錯誤。 您應該會看到 和 Committed Usage
之類的Committed Spend
值。 相反地,您可能會看到如下的值:
Committed /providers/Microsoft.BillingBenefits/savingsPlanOrders/###/savingsPlans/###
Committed /providers/Microsoft.Capacity/reservationOrders/###/reservations/###
如果您看到這些值,請重新匯出該月份的成本數據。 如果您需要匯出無法使用的較舊月份數據,請連絡支持人員以要求匯出數據,以便解決先前匯出執行的數據質量問題。
Power BI:報表遺漏特定日期的數據
如果您的報表遺失一或多個月的所有數據,請檢查 月份數、 RangeStart 和 RangeEnd 參數,以確保數據不會被篩選掉。
若要檢查參數,請選取功能區中的 [轉換數據>編輯參數],或從查詢編輯器視窗中選取 [ 設定] 資料夾中的個別參數。🛠
- 如果您想要一律顯示最近幾個月的特定數目,請將 [月數] 設定為 [已關閉(已完成) 月數]。 除了關閉的月數之外,當月是額外的月份。
- 如果您想要固定的日期範圍不會隨著時間變更(例如會計年度報告),請設定 RangeStart 和 RangeEnd。
- 如果您想要報告所有可用的數據,請確認這三個日期參數都是空的。
如需詳細資訊,請參閱 設定您的第一個報表。
Power BI:報表是空的(沒有數據)
如果您在 Power BI 或其他報表或工具中看不到任何數據,請根據您的數據源嘗試下列專案:
- 如果在 Power BI 中使用成本管理連接器,請檢查
Billing Account ID
和Number of Months
參數,以確保它們已正確設定。 請記住,最近幾個月,舊的計費帳戶可能沒有數據。 - 如果使用 FinOps 中樞,請檢查記憶體帳戶,以確保數據已填入擷取容器中。 您應該會看到提供者或訂用帳戶資料夾。 使用下列各節進一步進行疑難解答。
FinOps 中樞:擷取容器是空的
如果擷取容器是空的,請在Data Factory Studio 中開啟Data Factory 實例,然後選取 [管理>作者>觸發程式],並確認已啟動msexports_FileAdded觸發程式。 如果沒有,請加以啟動。
如果觸發程式無法以「資源提供者未註冊」錯誤啟動,請在 Azure 入口網站 中開啟訂用帳戶,然後選取 [設定>資源提供者],選取 [Microsoft.EventGrid] 數據列,然後選取頁面頂端的 [註冊] 命令。 註冊可能需要幾分鐘的時間。
註冊完成之後,請再次啟動 msexports_FileAdded 觸發程式。
啟動觸發程式之後,請重新執行所有連線的成本管理匯出。 數據應該在 10-20 分鐘內完整擷取,視帳戶大小而定。
如果問題持續發生,請檢查成本管理匯出是否設定為已啟用檔案分割。 如果您發現它已停用,請開啟並重新執行導出。
確認擷取容器已填入並重新整理報表或其他已連線的工具。
FinOps 中樞:擷取容器中可用的檔案
如果擷取容器不是空的,請鑽研資料夾來確認您是否有 parquet 或 csv.gz 檔案。
一旦知道,請確認 FileType 參數已設定為 .parquet
或 .gz
Power BI 報表中的 。 如需詳細資訊,請參閱 連線至您的數據 。
如果您使用另一個工具,請確定它支援您使用的檔案類型。
Power BI:無法解析遠端名稱:'<storage-account.dfs.core.windows.net>'
指出記憶體帳戶名稱不正確。 如果使用 FinOps 中樞,請從部署確認 StorageUrl 參數。 如需詳細資訊,請參閱 連線至您的數據 。
Power BI:我們無法將 null 值轉換成邏輯類型
表示計費帳戶標識碼參數是空的。 如果使用 FinOps 中樞,請將值設定為所需的計費帳戶標識碼。 如果您沒有計費帳戶的存取權,或不想包含承諾用量購買和退款,請將值設定為 0
,並在進階編輯器中開啟 CostDetails 查詢,並將 變更 2
為 1
。 它會通知報表不要從成本管理連接器載入實際/計費的成本數據。 如需詳細資訊,請參閱 連線至您的數據 。
適用版本:0.1 - 0.1.1(0.2 中修正)
FinOps 中樞:我們無法將 null 值轉換成 Table 類型
此錯誤通常表示數據未內嵌至 擷 取容器。
如果您剛升級至 FinOps 中樞 0.2,問題可能是因為 Power BI 報表舊了(從 0.1.x 起),或是因為您未使用 FOCUS 導出。 如需詳細資訊, 請參閱升級指南 。
如需更多疑難解答步驟,請參閱報表是空的(沒有數據)。
相關內容
如果您沒有看到您遇到的錯誤,請逐步解 說疑難解答指南。 如果您有任何問題, 請在 GitHub 中開始討論 或 建立問題 。