チュートリアル: Exports API を使用して履歴コスト データセットをシードする
大規模な組織では、多くの場合、1 年以上前の履歴コストを分析する必要があります。 対象となる 1 回限りの問い合わせや、時間の経過に伴うコストの傾向を視覚化するためのレポート ダッシュボードの設定には、データセットの作成が必要になる場合があります。 どちらの場合も、クエリを実行できるデータ ストアにデータを読み込むことができるように、データを確実に取得する方法が必要です。 履歴コスト データセットをシードすると、新しいコストが入った際にデータ ストアが更新され、レポートが最新の状態を維持することができます。 履歴コストが変更されることはほとんどなく、変更された場合は通知されます。 そのため、履歴コストの更新は、月に 1 回以内にすることをお勧めします。
このチュートリアルでは、以下の内容を学習します。
- サービス プリンシパルのベアラー トークンを取得する
- 要求の書式を設定する
- 1 か月分のチャンクで要求を実行する
前提条件
Exports API を正常に呼び出すには、適切なアクセス許可が必要です。 自動化シナリオでは、サービス プリンシパルを使用することをお勧めします。
- 詳細については、「Cost Management API にアクセス許可を割り当てる」を参照してください。
- Exports API に必要な特定のアクセス許可の詳細については、スコープの理解と操作に関する記事を参照してください。
また、API に直接クエリを実行する方法も必要です。 API にクエリを実行する一般的な方法を次に示します。
- Visual Studio
- Insomnia
- Bruno
- PowerShell の Invoke-RestMethod
- Curl
サービス プリンシパルのベアラー トークンを取得する
サービス プリンシパルを使用してベアラー トークンを取得する方法については、アクセス トークンの取得に関するページを参照してください。
要求の書式を設定する
次の要求の例を参照し、独自の 1 回限りのデータ エクスポートを作成します。 次の要求の例では、指定した Azure ストレージ アカウントに 1 か月の実績コスト データセットを作成します。 レポートごとに 1 か月以下のデータを要求することをお勧めします。 毎月大きなデータセットがある場合は、1 回限りのエクスポートに partitionData = true
を設定して、複数のファイルに分割することをお勧めします。 詳細については、「大規模なデータセットのファイルのパーティション分割」を参照してください。
PUT https://management.azure.com/providers/Microsoft.Billing/billingAccounts/{enrollmentId}/providers/Microsoft.CostManagement/exports/{ExportName}?api-version=2021-10-01
要求ヘッダー
Authorization: <YOUR BEARER TOKEN>
Accept: /*/
Content-Type: application/json
要求本文
{
"properties": {
"definition": {
"dataset": {
"granularity": "Daily",
"grouping": []
},
"timePeriod": {
"from": "2021-09-01T00:00:00.000Z",
"to": "2021-09-30T00:00:00.000Z"
},
"timeframe": "Custom",
"type": "ActualCost"
},
"deliveryInfo": {
"destination": {
"container": "{containerName}",
"rootFolderPath": "{folderName}",
"resourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}"
}
},
"format": "Csv",
"partitionData": false
}
}
1 か月分のチャンクでエクスポートを作成する
1 か月のチャンクで 1 回限りのデータ エクスポートを作成することをお勧めします。 1 年間の履歴データセットをシードする場合は、12 個の Exports API 要求 (毎月 1 回) を実行する必要があります。 履歴データセットのシード後、スケジュールされたエクスポートを作成して、時間の経過とともに料金が発生しても Azure Storage にコスト データを引き続き取り込むことができます。
各エクスポートを実行する
毎月のエクスポートを作成したので、Execute API を呼び出してそれぞれを手動で実行する必要があります。 API への要求の例を次に示します。
POST https://management.azure.com/{scope}/providers/Microsoft.CostManagement/exports/{exportName}/run?api-version=2021-10-01
次のステップ
このチュートリアルでは、以下の内容を学習しました。
- サービス プリンシパルのベアラー トークンを取得する
- 要求の書式を設定する
- 1 か月分のチャンクで要求を実行する
コストの詳細については、「コスト詳細データを取り込む」を参照してください。
コスト詳細データセットで使用できるデータについて詳しくは、コスト詳細データ フィールドに関するページを参照してください。