REST API を使用して排出データをエクスポートする
REST API を使用して排出量データをエクスポートするには、サービス プリンシパルを作成して承認して、排出量データにアクセスする必要があります。 その後、サービス プリンシパルを使用して承認トークンを取得し、REST API を使用して排出量データをエクスポートできます。
排出量データをエクスポートするサービス プリンシパルを作成して承認する
サービス プリンシパルは、Microsoft Entra ID (以前は Azure Active Directory ) を使用して、トークンを使用して特定の Azure リソースへのアクセスを認証および付与できるアプリケーションです。 リソースには、ユーザー アプリ、サービス、または自動化ツールが含まれます。
リソースにアクセスできる Microsoft Entra アプリケーションとサービス プリンシパル を作成します。
トークン要求で使用するために、アプリのテナント ID、新しいクライアント ID、クライアント シークレットの値を保存します。
アプリには、排出量データをエクスポートするリソースの Carbon Optimization Reader
ロールが割り当てられている必要があります。 アプリを使用して多くのリソースの排出量データをエクスポートする場合は、リソース グループまたはサブスクリプション レベルでロールを割り当てることができます。 詳細については、Azure portalを使用した Azure ロールの割り当て に関するページを参照してください。
承認トークンを取得する
コマンド プロンプトで、または Postman などのクライアントを使用して、次の要求を送信します。
curl -X POST 'https://login.microsoftonline.com/<tennant ID>/oauth2/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<your apps client ID>' \
--data-urlencode 'client_secret=<your apps client secret' \
--data-urlencode 'resource=https://management.azure.com'
応答本文が表示されます。
{
"token_type": "Bearer",
"expires_in": "86399",
"ext_expires_in": "86399",
"expires_on": "1672826207",
"not_before": "1672739507",
"resource": "https://management.azure.com",
"access_token": "eyJ0eXAiOiJKV1Qi....gpHWoRzeDdVQd2OE3dNsLIvUIxQ"
}
次の HTTP 要求で使用するために、応答からのアクセス トークンを使用します。
REST API を使用して排出データをエクスポートする
POST /providers/Microsoft.Carbon/carbonEmissionReports?api-version=2023-04-01-preview Host: management.azure.com Content-Type: application/json Authorization: Bearer <トークン値>
要求の例
POST /providers/Microsoft.Carbon/carbonEmissionReports?api-version=2023-04-01-preview
Host: management.azure.com
Content-Type: application/json
Authorization: Bearer eyJ0eXAiOiJKJ...gVBNrsvg
{
"reportType": "OverallSummaryReport",
"subscriptionList": [
"abcd1234-a1b2-d3c4-e3f5-976543210abc"
],
"carbonScopeList": [
"Scope1",
"Scope2",
"Scope3"
],
"dateRange": {
"start": "2023-12-01",
"end": "2023-12-01"
}
}
curl の例:
curl --location 'https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2023-04-01-preview' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJ0eXA...2-KgVBNrsvg' \
--data '{
"reportType": "OverallSummaryReport",
"subscriptionList": [
"abcd1234-a1b2-d3c4-e3f5-976543210abc"
],
"carbonScopeList": [
"Scope1",
"Scope2",
"Scope3"
],
"dateRange": {
"start": "2023-12-01",
"end": "2023-12-01"
}
}
'
サンプル出力
{
"value": [
{
"dataType": "OverallSummaryData",
"totalCarbonEmission": 7000.622265493289,
"totalCarbonEmission12MonthsAgo": 0,
"totalCarbonEmissionLastMonth": 7480.374908590786,
"changeRatioFor12Months": 0,
"changeRatioForLastMonth": -0.06413483935765417,
"changeValueMonthOverMonth": 0
}
]
}
レポートの種類
レポートの種類 |
形容 |
使用するタイミング |
OverallSummaryReport |
入力で指定されたすべてのサブスクリプション スコープと日付範囲の合計排出量。 |
高レベルのレポート データが必要 |
MonthlySummaryReport |
日付範囲で指定された各月のすべてのサブスクリプションと排出量スコープの排出量。 |
毎月の内訳 |
TopItemsSummaryReport |
上位 X 項目の排出量は、サブスクリプション、排出量、スコープ、カテゴリ、および指定した日付範囲で集計され、カテゴリ別に分類されます。 |
カテゴリ別の上位アイテムのデータ |
TopItemsMonthlySummaryReport |
日付範囲で指定された各月のサブスクリプション、排出量、スコープ、カテゴリ全体で集計された上位 X 項目の排出量。 排出量はカテゴリ別に分類されます。 上位の X 項目は、先月の排出量に基づいています。 |
カテゴリ別および月別の上位アイテムのデータ |
ItemDetailsReport |
特定の日付範囲に対して選択したスコープとサブスクリプション ID にわたって集計され、指定されたカテゴリ別に分類された排出量。 |
カテゴリ別の排出量データ |
出力 API パラメーターをエクスポートする
次の表では、REST API を使用して排出量データをエクスポートするために使用できるパラメーターについて説明します。
パラメーター |
種類 |
形容 |
reportType |
糸 |
レポートの種類の名前。 サポートされている値: OverallSummaryReport
MonthlySummaryReport
TopItemsSummaryReport TopItemsMonthlySummaryReport ItemDetailsReport |
subscriptionList |
[文字列] |
クエリを実行する subscriptionId の一覧。 クライアントは、これらのサブスクリプションにアクセスできる必要があります。 |
resourceGroupUrlList |
[文字列] |
データを取得する resourceGroup URL リスト。 例えば: "resourceGroupUrlList": [ "/subscriptions/sub-id-1111/resourcegroups/rg_name" ] 配列内の文字列値は、次の形式に従う必要があります。 "/subscriptions/{sub_id}/resourcegroups/{rg_name}" |
carbonScopeList |
[文字列] |
カーボン スコープの一覧。 サポートされている値: Scope1 、Scope2 、Scope3 。 この一覧には、これら 3 つのスコープの任意の組み合わせを指定できます。 |
dateRange |
構造 体 |
過去 12 か月から 1 か月をサポートします。 開始月と終了月は等しく、月の最初の日にする必要があります。 この条件が満たされていない場合、例外がスローされます。 例えば dateRange": { "start": "2023-03-01", "end": "2023-03-01}
start 形式と end 形式: yyyy-mm-dd. 現在、炭素排出量データは毎月更新されています。 そのため、dateRange start プロパティと end プロパティの値は、毎月の最初の日である必要があります。 |
手記
dateRange
では、一度に 1 か月 (過去 12 か月間) がサポートされます。 開始日と終了日が異なる場合、例外がスローされます。
レポート固有のパラメーター
次の表は、各レポートの種類に必要な追加のパラメーターを示しています。
AdditionalParameter |
種類 |
形容 |
レポート |
categoryType |
糸 |
次の 5 種類のカテゴリがサポートされています。 Subscription
Location
ServiceType
ResourceGroup
Resource
|
TopItemsSummaryReport TopItemsMonthlySummaryReport
ItemDetailsReport
|
topItemsCount |
整数 |
表示する上位 x 項目 (>5) |
TopItemsSummaryReport TopItemsMonthlySummaryReport
|
ItemDetailsReport |
category |
糸 |
カテゴリ名。 たとえば、"category": "ResourceGroup" |
pageSize |
整数 |
クエリ結果のページ サイズ。 既定値は 1000 です。 最大値は 2000 です。 |
ItemDetailsReport |
orderBy |
糸 |
サポートされている値と、サポートされているカテゴリの種類については、次の表を参照してください。 |
ItemDetailsReport |
sortDirection |
糸 |
サポート値: Desc 、Asc |
ItemDetailsReport |
groupCategory |
糸 |
これは空の文字列として設定できます。 有効な値: ResourceGroup と SubscriptionId |
ItemDetailsReport |
列別に並べ替え
次の結果列は、orderBy
パラメーターをサポートしています。
列名で並べ替え |
カテゴリの種類 |
Name |
Subscription を除くすべて |
TotalCarbonEmission |
すべての |
TotalCarbonEmissionLastMonth |
すべての |
ResourceGroup |
Resource カテゴリの場合のみ |
SubscriptionId |
Subscription 、Resource 、ResourceGroup カテゴリ |
ChangeRatioForLastMonth |
すべての |
ChangeValueMonthOverMonth |
すべての |
REST API レポートの詳細については、「Carbon Service - List Carbon Emission Reports」を参照してください。