次の方法で共有


必要に応じて小規模なコスト データセットを取得する

コストの詳細 (以前は 使用状況の詳細) のデータの詳細については、「 コストの詳細データを取り込む」を参照してください。

コスト詳細レポートは、Enterprise Agreement または Microsoft 顧客契約を結んでいるお客様のみが使用できます。 MSDN、従量課金制、または Visual Studio のお客様の場合は、「従量課金制 サブスクリプションのコストの詳細を取得する」を参照してください。

Permissions

Cost Details API を使用するには、サポートされている機能とスコープの読み取り専用アクセス許可が必要です。

Note

Cost Details API は、EA または MCA のお客様の管理グループをサポートしていません。

詳細については、以下を参照してください。

Cost Details API のベスト プラクティス

Cost Details API を使用する場合は、次のベスト プラクティスをお勧めします。

要求のスケジュール

最新のコスト データを取得する場合は、1 日に最大 1 回クエリを実行することをお勧めします。 レポートは 4 時間ごとに更新されます。 より頻繁に呼び出す場合は、同じデータを受信します。 過去の請求書のコスト データをダウンロードすると、明示的に通知されない限り、料金は変わりません。 同じデータを繰り返し呼び出さないように、コスト データをクエリ可能なストアにキャッシュすることをお勧めします。

要求をチャンクにする

呼び出しを小さな日付範囲にチャンクして、ネットワーク経由でダウンロードできるより管理しやすいファイルを取得します。 たとえば、Azure コスト ファイルが月単位で大きい場合は、日単位または週単位でチャンクすることをお勧めします。 コスト データの量が多いスコープ (課金アカウントなど) がある場合は、ダウンロードできる管理しやすいファイルを取得できるように、子スコープを複数呼び出して配置することを検討してください。 Azure Cost Management のスコープの詳細については、「スコープを理解して使用する」を参照してください。 データをダウンロードした後、Excel を使用して、フィルターとピボット テーブルを使用してさらにデータを分析します。

データセットが月単位で 2 GB (または約 200 万行) を超える場合は、よりスケーラブルなソリューションとして エクスポート を使用することを検討してください。

待機時間とレートの制限

API へのオンデマンド呼び出しはレート制限されます。 コスト詳細ファイルの生成にかかる時間は、ファイル内のデータ量と直接関連付けられます。 ファイルがダウンロード可能になるまでの予想時間を把握するには、API 応答で retry-after ヘッダーを使用します。

サポートされているデータセットの時間範囲

Cost Details API では、レポートごとに 1 か月の最大データ セット時間範囲がサポートされます。 履歴データは、現在の日付の前に最大 13 か月間取得できます。 13 か月の履歴データセットをシードする場合は、過去 13 か月間、1 か月のデータセットに 13 回の呼び出しを行うことをお勧めします。 13 か月より前の履歴データを取得するには、Exports REST API を使います。

Cost Details API リクエストの例

次の要求例は、一般的なシナリオに対処するために Microsoft のお客様によって使用されます。 要求によって返されるデータは、請求システムがコストを受け取った日付に対応します。 複数の請求書のコストが含まれる場合があります。 これは非同期 API です。 そのため、最初の呼び出しを行ってレポートを要求し、応答ヘッダーにポーリング リンクを受信します。 そこから、レポートが利用可能になるまで、提供されたリンクをポーリングできます。

API 応答の retry-after ヘッダーを使用して、次に API をポーリングするタイミングを指定します。 ヘッダーは、レポートの生成にかかる推定最小時間を提供します。

API コントラクトの詳細については、「 Cost Details API」を参照してください。

実績コストと償却コスト

実績コストレポートと償却コストレポートのどちらを表示するかを制御するには、初期要求本文のメトリック フィールドに使用される値を変更します。 使用可能なメトリック値は、 ActualCost または AmortizedCost

償却コストは、予約購入を毎日の単位に分割し、予約期間にわたって分散します。 たとえば、1 月 1 日に 365 ドルの購入を表示する代わりに、1 月 1 日から 12 月 31 日まで毎日 1.00 ドルの購入が表示されます。 基本的な償却に加えて、コストは予約を使用した特定のリソースを活用して再割り当てされ、関連付けられます。 たとえば、1 日 $1.00 の料金が 2 つの仮想マシンに分割された場合、その日の 2 つの $0.50 料金が表示されます。 予約の一部が 1 日に利用されていない場合は、該当する仮想マシンに関連付けられている 1 つの $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} オプションについては、 スコープのリソース ID の識別に関する記事を参照してください。

レポート要求本文で指定できるフィールドを次に示します。

  • metric - 要求されたレポートの種類。 ActualCost または AmortizedCost のいずれかを指定できます。 必要なし。 フィールドが指定されていない場合、API は既定で ActualCost レポートになります。
  • timePeriod - データの要求された日付範囲。 必要なし。 このパラメーターは、invoiceId パラメーターまたは billingPeriod パラメーターと共に使用することはできません。 要求本文に timePeriod、invoiceId、または billingPeriod パラメーターが指定されていない場合、API は現在の月のコストを返します。
  • invoiceId - データに対して要求された請求書。 このパラメーターは、Microsoft 顧客契約のお客様のみが使用します。 さらに、課金プロファイルまたは顧客スコープでのみ使用できます。 このパラメーターは、billingPeriod パラメーターまたは timePeriod パラメーターと共に使用することはできません。 要求本文に timePeriod、invoiceId、または billingPeriod パラメーターが指定されていない場合、API は現在の月のコストを返します。
  • billingPeriod - データに対して要求された請求期間。 このパラメーターは、Enterprise Agreement のお客様のみが使用します。 YearMonth 形式を使用します。 たとえば、202008。 このパラメーターは、invoiceId パラメーターまたは timePeriod パラメーターと共に使用することはできません。 要求本文に timePeriod、invoiceId、または billingPeriod パラメーターが指定されていない場合、API は現在の月のコストを返します。

API 応答:

Response Status: 202 – Accepted : 要求が受け入れられたことを示します。 Location ヘッダーを使用して状態を確認します。

応答ヘッダー:

Name タイプ Format Description
Location String 非同期操作の結果を確認する URL。
Retry-After Integer Int32 レポートが生成される予想される時間。 この期間待ってから、もう一度ポーリングします。

レポートのポーリングとダウンロード

Cost Details レポートの作成要求を行った後、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 - レポートにアクセスできなくなった日付。