Esportare i dati sulle emissioni usando l'API REST
Per esportare i dati sulle emissioni usando l'API REST, è necessario creare e autorizzare un'entità servizio ad accedere ai dati sulle emissioni. È quindi possibile usare l'entità servizio per ottenere un token di autorizzazione e quindi esportare i dati sulle emissioni usando l'API REST.
Creare e autorizzare un'entità servizio a esportare i dati sulle emissioni
Un'entità servizio è un'applicazione i cui token possono essere usati per autenticare e concedere l'accesso a risorse di Azure specifiche usando Microsoft Entra ID (in precedenza Azure Active Directory). Le risorse includono app utente, servizi o strumenti di automazione.
Creare un'applicazione Microsoft Entra e un'entità servizio che possano accedere alle risorse.
Salvare l'ID tenant, il nuovo ID client e il valore del segreto client per l'app da usare nelle richieste di token.
All'app deve essere assegnato il ruolo Carbon Optimization Reader
per le risorse per cui si vogliono esportare i dati sulle emissioni. Se si prevede di usare l'app per esportare i dati sulle emissioni per molte risorse, è possibile assegnare il ruolo a livello di gruppo di risorse o sottoscrizione. Per altre informazioni, vedere Assegnare ruoli di Azure usando il portale di Azure.
Ottenere un token di autorizzazione
Inviare la richiesta seguente al prompt dei comandi o usando un client come 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'
Viene visualizzato il corpo della risposta:
{
"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"
}
Usare il token di accesso dalla risposta da usare nelle richieste HTTP seguenti.
Esportare i dati sulle emissioni usando l'API REST
POST /providers/Microsoft.Carbon/carbonEmissionReports?api-version=2023-04-01-preview Host: management.azure.com Content-Type: application/json Authorization: Bearer <valore del token>
Richiesta di esempio
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"
}
}
Esempio 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"
}
}
'
Output di esempio
{
"value": [
{
"dataType": "OverallSummaryData",
"totalCarbonEmission": 7000.622265493289,
"totalCarbonEmission12MonthsAgo": 0,
"totalCarbonEmissionLastMonth": 7480.374908590786,
"changeRatioFor12Months": 0,
"changeRatioForLastMonth": -0.06413483935765417,
"changeValueMonthOverMonth": 0
}
]
}
Tipi di report
Tipo di report |
Descrizione |
Quando usare |
OverallSummaryReport |
Emissioni totali per tutti gli ambiti delle sottoscrizioni e l'intervallo di date specificato nell'input. |
Dati di report di alto livello necessari |
MonthlySummaryReport |
Emissioni per tutte le sottoscrizioni e gli ambiti delle emissioni per ogni mese specificato nell'intervallo di date. |
Suddivisione mensile |
TopItemsSummaryReport |
Emissioni dei principali elementi X aggregati tra sottoscrizioni, emissioni, ambito, categoria e intervallo di date specificato, suddiviso per categoria. |
Dati per gli elementi principali per categoria |
TopItemsMonthlySummaryReport |
Emissioni degli elementi X principali aggregati tra sottoscrizioni, emissioni, ambiti e categoria per ogni mese specificato nell'intervallo di date. Le emissioni sono suddivise per categoria. Gli elementi X principali sono basati sulle emissioni del mese scorso. |
Dati per gli elementi principali per categoria e mese |
ItemDetailsReport |
Emissioni aggregate tra ambiti selezionati e sottoscrizioniID per un determinato intervallo di date e suddivise in base alla categoria specificata. |
Dati sulle emissioni per categoria |
Esportare i parametri dell'API per le emissioni
La tabella seguente descrive i parametri che è possibile usare per esportare i dati sulle emissioni tramite l'API REST.
Parametro |
Digitare |
Descrizione |
reportType |
Corda |
Nome del tipo di report. Valori supportati: OverallSummaryReport
MonthlySummaryReport
TopItemsSummaryReport TopItemsMonthlySummaryReport ItemDetailsReport |
subscriptionList |
[String] |
Elenco subscriptionId per cui si vuole eseguire una query. Il client deve avere accesso a queste sottoscrizioni. |
resourceGroupUrlList |
[String] |
Elenco di URL resourceGroup per cui si vogliono ottenere i dati. Per esempio: "resourceGroupUrlList": [ "/subscriptions/sub-id-1111/resourcegroups/rg_name" ] Il valore stringa nella matrice deve seguire questo formato: "/subscriptions/{sub_id}/resourcegroups/{rg_name}" |
carbonScopeList |
[String] |
Elenco di ambiti di carbonio. Valori supportati: Scope1 , Scope2 e Scope3 . Questo elenco può essere qualsiasi combinazione di questi tre ambiti. |
dateRange |
Struct |
Supporta un mese dagli ultimi 12 mesi. Il mese di inizio e di fine deve essere uguale e deve essere il primo giorno di un mese. Viene generata un'eccezione quando questo criterio non viene soddisfatto. Per esempio dateRange": { "start": "2023-03-01", "end": "2023-03-01}
start e formato di end : aaaa-mm-dd. Attualmente, i dati sulle emissioni di carbonio vengono aggiornati mensilmente. Pertanto, il valore delle proprietà dateRange start e end deve essere il primo giorno di ogni mese. |
Nota
dateRange
supporta un mese alla volta (dall'ultimo 12 mese). Viene generata un'eccezione quando le date di inizio e di fine sono diverse.
Parametri specifici del report
La tabella seguente mostra parametri aggiuntivi necessari per ogni tipo di report.
AdditionalParameter |
Digitare |
Descrizione |
Rapporti |
categoryType |
Corda |
Sono supportati cinque tipi di categoria: Subscription
Location
ServiceType
ResourceGroup
Resource
|
TopItemsSummaryReport TopItemsMonthlySummaryReport
ItemDetailsReport
|
topItemsCount |
Numero intero |
Elementi x principali da visualizzare (>5) |
TopItemsSummaryReport TopItemsMonthlySummaryReport
|
ItemDetailsReport |
category |
Corda |
Nome della categoria. Ad esempio, "category": "ResourceGroup" |
pageSize |
Numero intero |
Dimensioni della pagina per il risultato della query. Il valore predefinito è 1000. Il valore massimo è 2000. |
ItemDetailsReport |
orderBy |
Corda |
Vedere la tabella seguente per visualizzare i valori supportati, insieme ai tipi di categoria supportati. |
ItemDetailsReport |
sortDirection |
Corda |
Valori di supporto: Desc , Asc |
ItemDetailsReport |
groupCategory |
Corda |
Può essere impostata come stringa vuota. Valori validi: ResourceGroup e SubscriptionId |
ItemDetailsReport |
Ordina per colonne
Le colonne dei risultati seguenti supportano il parametro orderBy
.
Ordina per nome colonna |
Tipo di categoria |
Name |
tutti tranne Subscription |
TotalCarbonEmission |
tutto |
TotalCarbonEmissionLastMonth |
tutto |
ResourceGroup |
solo per Resource categoria |
SubscriptionId |
categoria Subscription , Resource e ResourceGroup |
ChangeRatioForLastMonth |
tutto |
ChangeValueMonthOverMonth |
tutto |
Per altre informazioni sui report dell'API REST, vedere Carbon Service - Elencare i report sulle emissioni di carbonio.