使用自動化管理成本

您可以使用成本管理自動化來建置一組自訂的解決方案,以擷取及管理成本資料。 此文章涵蓋成本管理自動化的常見案例,以及根據您的情況所提供的選項。 如果您想要使用 API 進行開發,可使用常見的 API 要求範例,以幫助加快開發程序。

將成本資料擷取作業自動化以用於離線分析

您可能需要下載您的 Azure 成本資料,以將其與其他資料集合併。 或者,您可能需要將成本資料整合到您自己的系統中。 視涉及的資料量而定,會有不同的選項可用。 在任何情況下,您都必須擁有適當範圍的成本管理權限,才能使用 API 與工具。 如需詳細資訊,請參閱指派資料存取權

處理大型資料集的相關建議

如果您的組織擁有跨許多資源或訂用帳戶運作的大型 Azure,您將會有大量的使用量詳細資料結果。 Excel 通常無法載入這類大型檔案。 在此情況下,我們建議您採用下列選項:

Power BI

Power BI 可用來內嵌及處理大量資料。 如果您是 Enterprise 合約客戶,可以使用 Power BI 範本應用程式來分析您計費帳戶的成本。 報表會包含客戶所使用的重要檢視。 如需詳細資訊,請參閱使用 Power BI 範本應用程式分析 Azure 成本

Power BI 資料連接器

如果您想要每天分析資料,建議使用 Power BI 資料連接器取得資料以進行詳細分析。 連接器會將您建立的任何報表保持在最新狀態,因而會導致產生更多成本。

成本管理匯出

您可能並不需要每天分析資料。 如果是這樣,請考慮使用成本管理的匯出功能,來排定將資料匯出到 Azure 儲存體帳戶的排程。 然後您可以視需要將資料載入到 Power BI 中,或如果檔案夠小時,就可以在 Excel 中分析。 Azure 入口網站提供匯出功能,或者您可以使用匯出 API \(部分機器翻譯\) 設定匯出作業。

使用量詳細資料 API

如果您有小型成本資料集,請考慮採用使用量詳細資料 API \(部分機器翻譯\)。 以下是建議的最佳做法:

  • 如果您想要取得最新的成本資料,建議您每天最多查詢一次。 報表會每隔四小時重新整理一次。 如果更頻繁地呼叫,您會收到相同的資料。
  • 下載歷程記錄發票的成本資料之後,除非您明確收到通知,否則費用不會變更。 建議您在可查詢存放區中快取成本資料,以避免重複呼叫相同的資料。
  • 將您的呼叫區塊化為小型日期範圍,以取得您可以下載的可管理檔案。 例如,如果您有每月計算的大型 Azure 使用量檔案,建議您依日或依週進行區塊化。
  • 如果您有包含大量使用量資料的範圍 (例如計費帳戶),請考慮對子範圍進行多個呼叫,以便取得可下載的可管理檔案。
  • 如果您的資料集每月超過 2 GB,請考慮使用匯出做為更可調整的解決方案。

運用使用量詳細資料 API 將擷取自動化

使用量詳細資料 API 提供一個簡單的方法,來取得與您的 Azure 帳單相對應的原始未彙總成本資料。 當您的組織需要程式設計資料擷取解決方案時,API 會很有用。 如果您想要分析較小型的成本資料集,請考慮使用 API。 但如果您有較大型的資料集,應該使用先前已經確定的其他解決方案。 使用量詳細資料中的資料是依據每天每一計量的方式提供的。 計算您的每月帳單時就是使用這個方式。 這些 API 的公開推出 (GA) 版本是 2019-10-01。 使用 2019-04-01-preview 來存取保留的預覽版本及使用 API 購買的 Azure Marketplace 項目。

如果您想要定期取得大量的匯出資料,請參閱使用匯出定期擷取大型成本資料集

使用量詳細資料 API 的相關建議

要求排程

我們建議您每天對使用量詳細資料 API 發出的要求「不要超過一個」。 如需成本資料重新整理頻率,以及如何處理進位的詳細資訊,請參閱了解成本管理資料

以最上層範圍為目標但不篩選

使用 API 可取得您在最高層級範圍所需的所有資料。 等到所有需要的資料都內嵌之後,再執行任何篩選、群組或彙總分析。 API 已特別針對提供大量未彙總的原始成本資料最佳化。 若要深入了解成本管理中可用的範圍,請參閱了解並使用範圍。 當您下載了某個範圍需要的資料之後,請使用 Excel 搭配篩選條件與樞紐分析表進一步分析資料。

關於定價的注意事項

如果您想要透過價位表或發票來核對使用量和費用,請參閱成本詳細資料中的定價行為

單一資源一天可能有多個記錄

Azure 資源提供者會向計費系統發出使用量和費用,並填入使用量記錄的 Additional Info 欄位。 有時候,資源提供者可能會發出指定日期的使用量,並在使用量記錄的 Additional Info 欄位中,對帶有不同資料中心的記錄加上戳記。 這可能會導致計量/資源的多個記錄出現在您一天的使用量檔案中。 在此情況下,您不會遭到過度收費。 多筆記錄代表當天資源計量的完整成本。

使用量詳細資料 API 要求範例

Microsoft 客戶會使用下列範例要求來解決您可能會遇到的常見情況。

取得特定日期範圍期間某個範圍的使用量詳細資料

要求所傳回的資料會與計費系統收到使用量的日期相對應。 其中可能包含來自多張發票的成本。 所應使用的呼叫會隨著您的訂用帳戶類型而有所不同。

若為具有 Enterprise 合約 (EA) 或隨用隨付訂用帳戶的舊版客戶,請使用下列呼叫:

GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?$filter=properties%2FusageStart%20ge%20'2020-02-01'%20and%20properties%2FusageEnd%20le%20'2020-02-29'&$top=1000&api-version=2019-10-01

若為具有 Microsoft 客戶合約的新版客戶,請使用下列呼叫:

GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?startDate=2020-08-01&endDate=2020-08-05&$top=1000&api-version=2019-10-01

注意

Microsoft 客戶合約不支援 $filter 參數。

取得分攤成本詳細資料

如果您需要實際成本來顯示所產生的購買,請在下列要求中將「計量」變更為 ActualCost。 若要使用攤銷與實際成本,您必須使用 2019-04-01-preview 版本。 目前 API 版本的運作方式與 2019-10-01 版本相同,不同之處在於新的類型/計量屬性已變更的屬性名稱。 如果您有 Microsoft 客戶合約,您的篩選條件就會是下列範例中的 startDateendDate

GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?metric=AmortizedCost&$filter=properties/usageStart+ge+'2019-04-01'+AND+properties/usageEnd+le+'2019-04-30'&api-version=2019-04-01-preview

使用預算將警示和動作自動化

有兩個關鍵元件可讓您的雲端投資創造最大價值。 其中一個是自動建立預算。 另一個則是設定成本型協調流程,以回應預算警示。 有不同的方式可將預算建立作業自動化。 超過設定的警示閾值時,就會發生各種警示回應。

下列各節會說明可用的選項,並提供範例 API 要求,讓您可以開始使用預算自動化。

如何針對您的預算限額來評估成本

系統會每天一次針對您的預算限額來評估成本。 當您建立新預算或到達預算重設日的時候,相較於限額的成本就會變成零/Null,因為可能還未開始評估。

當 Azure 偵測到您的成本超過限額時,就會在偵測期間所在的該小時內觸發通知。

檢視您目前的成本

若要檢視您目前的成本,您需要使用查詢 API 進行 GET 呼叫。

針對預算 API 的 GET 呼叫不會傳回成本分析中顯示的目前成本。 相反地,該呼叫會傳回您上次評估時的成本。

自動建立預算

您可以使用預算 API,將預算的建立作業自動化。 您也可以使用預算範本來建立預算。 範本可讓您輕鬆地將 Azure 部署標準化,同時確保會正確設定和強制執行成本控制。

預算警示電子郵件支援的地區設定

有了預算,當成本超過設定的閾值時會收到警示。 每個預算對多可以設定五個電子郵件收件者。 收件者會在超過預算閾值的 24 小時內收到電子郵件警示。 不過,您的收件者可能需要收到不同語言的電子郵件。 您可以搭配預算 API 使用下列語言文化特性代碼。 使用與下列範例類似的 locale 參數來設定文化特性代碼。

{
  "eTag": "\"1d681a8fc67f77a\"",
  "properties": {
    "timePeriod": {
      "startDate": "2020-07-24T00:00:00Z",
      "endDate": "2022-07-23T00:00:00Z"
    },
    "timeGrain": "BillingMonth",
    "amount": 1,
    "currentSpend": {
      "amount": 0,
      "unit": "USD"
    },
    "category": "Cost",
    "notifications": {
      "actual_GreaterThan_10_Percent": {
        "enabled": true,
        "operator": "GreaterThan",
        "threshold": 20,
        "locale": "en-us",
        "contactEmails": [
          "user@contoso.com"
        ],
        "contactRoles": [],
        "contactGroups": [],
        "thresholdType": "Actual"
      }
    }
  }
}

文化特性代碼支援的語言:

文化特性代碼 語言
en-us 英文 (美國)
ja-jp 日文 (日本)
zh-cn 中文 (簡體,中國)
de-de 德文 (德國)
es-es 西班牙文 (西班牙,國際)
fr-fr 法文 (法國)
it-it 義大利文 (義大利)
ko-kr 韓文 (韓國)
pt-br 葡萄牙文 (巴西)
ru-ru 俄文 (俄羅斯)
zh-tw 中文 (繁體,台灣)
cs-cz 捷克文 (捷克共和國)
pl-pl 波蘭文 (波蘭)
tr-tr 土耳其文 (Türkiye)
da-dk 丹麥文 (丹麥)
en-gb 英文 (英國)
hu-hu 匈牙利文 (匈牙利)
nb-no 挪威文 (巴克摩) (挪威)
nl-nl 荷蘭文 (荷蘭)
pt-pt 葡萄牙文 (葡萄牙)
sv-se 瑞典文 (瑞典)

一般的預算 API 設定

有許多方法可在您的 Azure 環境中設定預算。 請先考慮您的案例,然後再找出可實現該案例的設定選項。 檢閱下列選項:

  • 時間粒紋 - 代表您的預算用來產生和評估成本的週期性期間。 最常見的選項有 [每月]、[每季] 和 [每年]。
  • 時間週期 - 代表預算的有效時間長度。 預算會主動監視,並且只有在仍然有效時才會向您發出警示。
  • 通知
    • 連絡人電子郵件 - 當預算產生成本且超過定義的限額時,電子郵件地址就會收到警示。
    • 連絡人角色 - 在給定範圍上具有相符 Azure 角色的所有使用者都會透過此選項而收到電子郵件警示。 例如,訂用帳戶擁有者會收到在訂用帳戶範圍上所建立預算的警示。
    • 連絡人群組 - 當超過警示限額時,預算會呼叫已設定的動作群組。
  • 成本維度篩選 - 您可以在成本分析或查詢 API 中執行的相同篩選,也可以在您的預算上進行。 使用此篩選可減少您所監視的預算成本範圍。

找出符合您需求的預算建立選項之後,請使用 API 建立預算。 下列範例可協助您開始使用一般的預算設定。

建立已針對多個資源和標籤來篩選的預算

要求 URL:PUT https://management.azure.com/subscriptions/{SubscriptionId} /providers/Microsoft.Consumption/budgets/{BudgetName}/?api-version=2019-10-01

{
  "eTag": "\"1d34d016a593709\"",
  "properties": {
    "category": "Cost",
    "amount": 100.65,
    "timeGrain": "Monthly",
    "timePeriod": {
      "startDate": "2017-10-01T00:00:00Z",
      "endDate": "2018-10-31T00:00:00Z"
    },
    "filter": {
      "and": [
        {
          "dimensions": {
            "name": "ResourceId",
            "operator": "In",
            "values": [
              "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{meterName}",
              "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{meterName}"
            ]
          }
        },
        {
          "tags": {
            "name": "category",
            "operator": "In",
            "values": [
              "Dev",
              "Prod"
            ]
          }
        },
        {
          "tags": {
            "name": "department",
            "operator": "In",
            "values": [
              "engineering",
              "sales"
            ]
          }
        }
      ]
    },
    "notifications": {
      "Actual_GreaterThan_80_Percent": {
        "enabled": true,
        "operator": "GreaterThan",
        "threshold": 80,
        "contactEmails": [
          "user1@contoso.com",
          "user2@contoso.com"
        ],
        "contactRoles": [
          "Contributor",
          "Reader"
        ],
        "contactGroups": [
          "/subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/actionGroups/{actionGroupName}
        ],
        "thresholdType": "Actual"
      }
    }
  }
}

針對預算警示來設定成本型協調流程

您可以設定預算,以使用 Azure 動作群組來啟動自動化動作。 若要深入了解如何使用預算將動作自動化,請參閱使用預算進行自動化

資料延遲與速率限制

我們建議您每天呼叫 API 的次數不要超過一次。 成本管理資料會在每四小時從 Azure 資源提供者處接收新使用量資料時重新整理一次。 呼叫較頻繁並不會提供更多資料。 這樣反而會加重負載。

查詢 API 查詢處理單位

除了現有的速率限制程序以外,查詢 API 也會根據 API 呼叫的成本來限制處理。 API 呼叫的成本會以查詢處理單位 (QPU) 表示。 QPU 是效能貨幣,例如 Cosmos DB RU。 它們會將 CPU 和記憶體之類的系統資源抽象化。

QPU 計算

目前,從分配的配額中查詢一個月的資料,會扣除一個 QPU。 此邏輯有可能變更,不另行通知。

QPU 因素

下列因素會影響 API 要求所使用的 QPU 數目。

  • 日期範圍:當要求中的日期範圍擴大時,使用的 QPU 數目就會增加。

有可能新增其他 QPU 因素,不另行通知。

QPU 配額

對每個租用戶都會設定下列配額。 當下列任何配額用盡時,要求就會受到節流。

  • 每 10 秒 12 個 QPU
  • 每 1 分鐘 60 個 QPU
  • 每 1 小時 600 個 QPU

配額可視需要而變更,且可以新增更多配額。

回應標頭

您可以檢查回應標頭,以追蹤 API 要求所使用的 QPU 數目,以及剩餘的 QPU 數目。

x-ms-ratelimit-microsoft.costmanagement-qpu-retry-after

表示要倒退的時間 (以秒為單位)。 以 429 對要求進行節流時,請先倒退此標頭中指定的時間,再重試要求。

x-ms-ratelimit-microsoft.costmanagement-qpu-consumed

API 呼叫所使用的 QPU。

x-ms-ratelimit-microsoft.costmanagement-qpu-remaining

剩餘配額清單。

下一步