Exportera utsläppsdata med hjälp av REST-API:et
Om du vill exportera utsläppsdata med hjälp av REST-API:et måste du skapa och auktorisera ett huvudnamn för tjänsten för att få åtkomst till dina utsläppsdata. Du kan sedan använda tjänstens huvudnamn för att hämta en auktoriseringstoken och sedan exportera utsläppsdata med hjälp av REST-API:et.
Skapa och auktorisera ett huvudnamn för tjänsten för att exportera utsläppsdata
Ett huvudnamn för tjänsten är ett program vars token kan användas för att autentisera och bevilja åtkomst till specifika Azure-resurser med hjälp av Microsoft Entra-ID (tidigare Azure Active Directory). Resurser omfattar användarappar, tjänster eller automatiseringsverktyg.
Skapa ett Microsoft Entra-program och ett tjänsthuvudkonto som kan komma åt resurser.
Lagra hyresgäst-ID, nytt klient-ID och klienthemlighet för din app för användning i tokenbegäranden.
Appen måste tilldelas rollen Carbon Optimization Reader
för de resurser som du vill exportera utsläppsdata för. Om du planerar att använda appen för att exportera utsläppsdata för många resurser kan du tilldela rollen på resursgrupps- eller prenumerationsnivå. Mer information finns i Tilldela Azure-roller med hjälp av Azure-portalen.
Hämta en auktoriseringstoken
Skicka följande begäran i kommandotolken eller med hjälp av en klient som 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'
Svarstexten visas:
{
"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"
}
Använd åtkomsttoken från svaret för användning i följande HTTP-begäranden.
Exportera utsläppsdata med hjälp av REST-API:et
POST /providers/Microsoft.Carbon/carbonEmissionReports?api-version=2023-04-01-preview Host: management.azure.com Content-Type: application/json Authorization: Bearer <token value>
Exempelbegäran
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 Exempel:
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"
}
}
'
Exempelutdata
{
"value": [
{
"dataType": "OverallSummaryData",
"totalCarbonEmission": 7000.622265493289,
"totalCarbonEmission12MonthsAgo": 0,
"totalCarbonEmissionLastMonth": 7480.374908590786,
"changeRatioFor12Months": 0,
"changeRatioForLastMonth": -0.06413483935765417,
"changeValueMonthOverMonth": 0
}
]
}
Rapporttyper
Rapporttyp |
Beskrivning |
När du ska använda |
Övergripande Sammanfattningsrapport |
Totala utsläpp för alla prenumerationsomfång och datumintervall som anges i indata. |
Rapportdata på hög nivå krävs |
Månadssammanfattningsrapport |
Utsläpp för alla prenumerationer och utsläppsomfång för varje månad som anges i datumintervallet. |
Månadsuppdelning |
Sammanfattningsrapport för topprankade objekt |
Utsläpp av de X främsta objekten aggregerade mellan prenumerationer, utsläpp, omfattning, kategori och angivet datumintervall, uppdelade efter kategori. |
Data för de översta objekten efter kategori |
Månadsrapport för topplistor över artiklar |
Utsläpp av de översta X-objekten sammanställda över prenumerationer, omfattningar och kategorier för varje månad som anges i datumintervallet. Utsläppen delas upp efter kategori. De översta X-objekten baseras på förra månadens utsläpp. |
Data för de översta objekten efter kategori och månad |
ArtikelDetaljrapport |
Utsläpp aggregerade över valda omfång och prenumerations-ID:er för ett visst datumintervall och uppdelade efter angiven kategori. |
Utsläppsdata efter kategori |
Exportera API-parametrar för utsläpp
I följande tabell beskrivs de parametrar som du kan använda för att exportera utsläppsdata med hjälp av REST-API:et.
Parameter |
Typ |
Beskrivning |
reportType |
Sträng |
Rapporttypnamn. Värden som stöds: OverallSummaryReport
MonthlySummaryReport
TopItemsSummaryReport TopItemsMonthlySummaryReport ItemDetailsReport |
subscriptionList |
[Sträng] |
Den subscriptionId-lista som du vill fråga efter. Klienten bör ha åtkomst till dessa prenumerationer. |
resourceGroupUrlList |
[Sträng] |
URL-listan för resourceGroup som du vill hämta data för. Till exempel: "resourceGroupUrlList": [ /subscriptions/sub-id-1111/resourcegroups/rg_name ] Strängvärdet i matrisen måste följa det här formatet: "/subscriptions/{sub_id}/resourcegroups/{rg_name}" |
carbonScopeList |
[Sträng] |
Koldioxidomfångslistan. Värden som stöds: Scope1 , Scope2 och Scope3 . Den här listan kan vara valfri kombination av dessa tre omfång. |
dateRange |
Struct |
Stödjer en månad av de senaste 12 månaderna. Start- och slutmånaden ska vara lika och den bör vara den första dagen i en månad. Ett undantag utlöses när det här villkoret inte uppfylls. Till exempel dateRange": { "start": "2023-03-01", "end": "2023-03-01}
start och end format: åååå-mm-dd. För närvarande uppdateras data om koldioxidutsläpp varje månad. Så måste värdet av dateRange ,start och end egenskaperna vara den första dagen i varje månad. |
Obs.
dateRange
stöder en månad i taget (från den senaste 12 månaden). Ett undantag utlöses när start- och slutdatum skiljer sig.
Rapportspecifika parametrar
I följande tabell visas ytterligare parametrar som krävs för varje rapporttyp.
Ytterligare parameter |
Typ |
Beskrivning |
Rapporter |
categoryType |
Sträng |
Fem kategorityper stöds: Subscription
Location
ServiceType
ResourceGroup
Resource
|
TopItemsSummaryReport TopItemsMonthlySummaryReport
ItemDetailsReport
|
topItemsCount |
Heltal |
De översta x objekten som ska visas (>5) |
TopItemsSummaryReport TopItemsMonthlySummaryReport
|
ItemDetailsReport |
category |
Sträng |
Det kategorinamnet. Till exempel "kategori": "ResourceGroup" |
pageSize |
Heltal |
Sidstorleken för frågeresultatet. Standardvärdet är 1 000. Det maximala värdet är 2 000. |
ItemDetailsReport |
orderBy |
Sträng |
Se tabellen nedan för att se de värden som stöds, tillsammans med de kategorityper som stöds. |
ItemDetailsReport |
sortDirection |
Sträng |
Stödvärden: Desc , Asc |
ItemDetailsReport |
groupCategory |
Sträng |
Detta kan anges som en tom sträng. Giltiga värden: ResourceGroup och SubscriptionId |
ItemDetailsReport |
Sortera efter kolumner
Följande resultatkolumner stöder parametern orderBy
.
Order efter kolumnnamn |
Kategorityp |
Name |
alla utom Subscription |
TotalCarbonEmission |
alla |
TotalCarbonEmissionLastMonth |
alla |
ResourceGroup |
endast för Resource kategori |
SubscriptionId |
Subscription , Resource och ResourceGroup kategori |
ChangeRatioForLastMonth |
alla |
ChangeValueMonthOverMonth |
alla |
Mer information om REST API-rapporterna finns i Carbon Service – List Carbon Emission Reports.