若要深入瞭解成本詳細數據中的數據(先前稱為使用量詳細數據),請參閱擷取成本詳細數據。
[成本詳細資料] 報表僅適用於有 Enterprise 合約或 Microsoft 客戶合約的客戶。 如果您是 MSDN、隨用隨付或 Visual Studio 的客戶,請參閱取得隨用隨付訂閱的成本詳細資料。
Permissions
若要使用成本詳細數據 API,您需要支援功能和範圍的唯讀許可權。
Note
成本詳細數據 API 不支援 EA 或 MCA 客戶的管理群組。
如需詳細資訊,請參閱:
費用明細 API 最佳做法
Microsoft當您使用成本詳細數據 API 時,建議下列最佳做法。
請求時間表
如果您想要取得最新的成本數據,建議您每天最多查詢一次。 報表會每隔四小時重新整理一次。 如果您更頻繁地呼叫 ,您會收到相同的數據。 下載您歷史發票的成本數據後,除非您已明確收到通知,否則這些費用不會變更。 建議您在您這邊的可查詢數據庫中緩存您的成本數據,以防止重複請求相同的數據。
將您的要求區塊化
將您的呼叫區塊化為小型日期範圍,以取得您可以透過網路下載的可管理檔案。 例如,如果您有每月計算的大型 Azure 成本檔案,建議您依日或依週進行區塊化。 如果您有包含大量成本數據的範圍(例如計費帳戶),請考慮對子範疇進行多次 API 呼叫,以便獲取更易於管理且可下載的檔案。 如需成本管理範圍的詳細資訊,請參閱 瞭解和使用範圍。 下載數據之後,請使用 Excel 進一步使用篩選和數據透視表來分析數據。
如果您的數據集每月超過 2 GB(或大約 2 百萬個數據列),請考慮使用 匯出 作為更可調整的解決方案。
延遲和速率限制
對 API 的隨選呼叫會受到速率限制。 產生成本詳細數據檔案所需的時間與檔案中的數據量直接相關。 若要瞭解檔案可供下載之前的預期時間量,您可以在 retry-after API 回應中使用標頭。
支援的數據集時間範圍
成本詳細數據 API 支援每個報表一個月的數據集時間範圍上限。 在目前日期之前,最多可以擷取 13 個月的歷史數據。 如果您想要植入 13 個月的歷程記錄資料集,我們建議在過去 13 個月內的一個月資料集中進行 13 次呼叫。。 若要擷取超過 13 個月的歷程記錄資料,請使用匯出 REST API。
範例成本詳細數據 API 要求
Microsoft客戶會使用下列範例要求來解決常見案例。 要求返回的資料與計費系統收到成本的日期相符。 其中可能包含來自多張發票的成本。 這是異步 API。 因此,您會發出初始呼叫來要求您的報表,並在回應標頭中接收輪詢連結。 您可以從該處輪詢提供的連結,直到報表可供使用為止。
retry-after使用 API 回應中的標頭來決定下一步輪詢 API 的時機。 標頭會提供報表產生所需的估計最短時間。
若要深入瞭解 API 合約,請參閱 成本詳細數據 API。
實際成本與攤銷成本
若要控制您想要查看實際成本或分攤成本報告,請變更初始要求本文中計量欄位所使用的值。 可用的計量值為 ActualCost 或 AmortizedCost。
分攤成本會將您購買的保留容量細分成每日區塊,並將其分散到保留容量期間的整個時段。 例如,您不會在 1 月 1 日看到 $365 美元的購買,而是會看到從 1 月 1 日到 12 月 31 日每天購買 $1.00 美元。 除了基本分攤,這些成本也會透過使用已使用該保留容量的特定資源來重新配置並建立關聯。 例如,如果每日 $1.00 的費用在兩部虛擬機器之間分攤,您將看到當天有兩筆 $0.50 的收費。 如果當天並未使用部分保留容量,您會看到一筆與適用虛擬機器相關聯的 0.50 美元費用,以及一筆收費類型為 UnusedReservation 的 0.50 美元費用。 只有在檢視分攤成本時,才會看到未使用的保留成本。
因為成本的呈現方式會改變,請務必注意實際成本和分攤成本檢視所顯示的總額會不同。 一般來說,購買保留容量一段時間的每月成本,將在檢視分攤成本時減少。 預訂購買後幾個月的成本會增加。 分攤功能僅適用於購買的保留容量,目前並不適用 Azure Marketplace 的購買項目。
建立報表的初始要求
POST https://management.azure.com/{scope}/providers/Microsoft.CostManagement/generateCostDetailsReport?api-version=2022-05-01
請求內文:
以下是指定日期範圍的 ActualCost 資料集範例要求。
{
"metric": "ActualCost",
"timePeriod": {
"start": "2020-03-01",
"end": "2020-03-15"
}
}
如需建置適當 URI 的可用 {scope} 選項,請參閱 識別範圍的資源識別符。
以下是您可以在報告請求主體中提供的可用欄位。
- metric - 要求的報表類型。 它可以是 ActualCost 或 AmortizedCost。 非必要。 如果未指定欄位,API 會預設為 ActualCost 報表。
- timePeriod - 數據所要求的日期範圍。 非必要。 此參數不能與 invoiceId 或 billingPeriod 參數搭配使用。 如果在要求本文中未提供 timePeriod、invoiceId 或 billingPeriod 參數,API 會傳回當月的成本。
- invoiceId - 數據所要求的發票。 此參數僅供 Microsoft 客戶合約客戶使用。 此外,其只能用於帳單設定檔或客戶範圍。 此參數不能與 billingPeriod 或 timePeriod 參數搭配使用。 如果在要求本文中未提供 timePeriod、invoiceId 或 billingPeriod 參數,API 會傳回當月的成本。
- billingPeriod - 數據所要求的計費期間。 此參數僅供 Enterprise 合約客戶使用。 使用 YearMonth 格式。 例如,202008。 此參數不能與 invoiceId 或 timePeriod 參數搭配使用。 如果在要求本文中未提供 timePeriod、invoiceId 或 billingPeriod 參數,API 會傳回當月的成本。
API 回應:
Response Status: 202 – Accepted :表示已接受要求。 使用Location標頭來檢查狀態。
回應標頭:
| Name | 類型 | Format | Description |
|---|---|---|---|
| Location | String | 檢查異步操作結果的 URL。 | |
| Retry-After | Integer | Int32 | 產生報表的預期時間。 再次輪詢之前,請等待這段時間間隔。 |
報表輪詢和下載
在您提出建立成本詳細資料報告的要求之後,使用 API 回應 location 標頭中提供的端點來輪詢報表。 以下是輪詢要求的範例。
報表輪詢要求:
GET https://management.azure.com/{scope}/providers/Microsoft.CostManagement/costDetailsOperationStatus/{operationId}?api-version=2022-05-01
Response Status 200 – Succeeded:表示要求成功。
{
"id": "subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.CostManagement/operationResults/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"name": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"status": "Completed",
"manifest": {
"manifestVersion": "2022-05-01",
"dataFormat": "Csv",
"blobCount": 1,
"byteCount": 160769,
"compressData": false,
"requestContext": {
"requestScope": "subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"requestBody": {
"metric": "ActualCost",
"timePeriod": {
"start": "2020-03-01",
"end": "2020-03-15"
}
}
},
"blobs": [
{
"blobLink": "{downloadLink}",
"byteCount": 32741
}
]
},
"validTill": "2022-05-10T08:08:46.1973252Z"
}
以下是 API 回應中主要欄位的摘要:
- manifestVersion - 回應中使用的指令清單合約版本。 此時,指定 API 版本的指令清單版本會維持不變。
- dataFormat - CSV 是 API 目前唯一支援的檔案格式。
- blobCount - 代表報表數據集中存在的個別數據 Blob 數目。 請務必注意,此 API 可能會在回應中提供多個檔案的分割數據集。 設計您的數據管線,以便據以處理分割的檔案。 分割可讓您未來能更快速地導入較大的資料集。
- byteCount - 報表數據集所有分割區的總位元組計數。
- compressData - 第一個版本的壓縮一律設定為 false。 不過,API 未來將支援壓縮。
- requestContext - 針對報表要求的初始組態。
-
blob - 組成完整報表的 n 個 Blob 檔案清單。
- blobLink - 個別 Blob 分割區的下載 URL。
- byteCount - 個別 Blob 分割區的位元組計數。
- validTill - 無法再存取報表的日期。
相關內容
- 閱讀 導入成本詳細資料 文章。
- 深入了解選擇成本詳細資料解決方案。
- 瞭解成本詳細數據欄位。
- 在 Azure 入口網站中使用匯出功能建立及管理匯出的數據。
- 使用 API 大規模自動化匯出建立和擷取。