Exporter des données d’émission à l’aide de l’API REST
Pour exporter des données d’émission à l’aide de l’API REST, vous devez créer et autoriser un principal de service à accéder à vos données d’émission. Vous pouvez ensuite utiliser le principal de service pour obtenir un jeton d’autorisation, puis exporter des données d’émission à l’aide de l’API REST.
Créer et autoriser un principal de service à exporter des données d’émission
Un principal de service est une application dont les jetons peuvent être utilisés pour authentifier et accorder l’accès à des ressources Azure spécifiques à l’aide de l’ID Microsoft Entra (anciennement Azure Active Directory). Les ressources incluent des applications utilisateur, des services ou des outils d’automatisation.
Créer une application Microsoft Entra et un principal de service qui peuvent accéder aux ressources.
Enregistrez l’ID de locataire, le nouvel ID client et la valeur de clé secrète client pour votre application à utiliser dans les demandes de jetons.
L’application doit être affectée au rôle Carbon Optimization Reader
pour les ressources pour lesquelles vous souhaitez exporter les données d’émission. Si vous envisagez d’utiliser l’application pour exporter des données d’émission pour de nombreuses ressources, vous pouvez attribuer le rôle au niveau du groupe de ressources ou de l’abonnement. Pour plus d’informations, consultez Attribuer des rôles Azure à l’aide du portail Azure.
Obtenir un jeton d’autorisation
Envoyez la requête suivante dans l’invite de commandes ou à l’aide d’un client comme 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'
Le corps de la réponse s’affiche :
{
"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"
}
Utilisez le jeton d’accès à partir de la réponse à utiliser dans les requêtes HTTP suivantes.
Exporter des données d’émission à l’aide de l’API REST
POST /providers/Microsoft.Carbon/carbonEmissionReports ?api-version=2023-04-01-preview Host : management.azure.com Content-Type : application/json Authorization : Bearer <valeur de jeton>
Exemple de requête
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"
}
}
exemple 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"
}
}
'
Exemple de sortie
{
"value": [
{
"dataType": "OverallSummaryData",
"totalCarbonEmission": 7000.622265493289,
"totalCarbonEmission12MonthsAgo": 0,
"totalCarbonEmissionLastMonth": 7480.374908590786,
"changeRatioFor12Months": 0,
"changeRatioForLastMonth": -0.06413483935765417,
"changeValueMonthOverMonth": 0
}
]
}
Types de rapports
Type de rapport |
Description |
Quand utiliser |
GlobalSummaryReport |
Émissions totales pour toutes les étendues d’abonnements et plage de dates spécifiées dans l’entrée. |
Données de rapport de haut niveau requises |
MonthlySummaryReport |
Émissions pour tous les abonnements et étendues d’émissions pour chaque mois spécifiés dans la plage de dates. |
Répartition mensuelle |
TopItemsSummaryReport |
Émissions des principaux éléments X agrégés entre les abonnements, les émissions, l’étendue, la catégorie et la plage de dates spécifiée, réparties par catégorie. |
Données pour les éléments principaux par catégorie |
TopItemsMonthlySummaryReport |
Émissions des principaux éléments X agrégés entre les abonnements, les émissions, les étendues et la catégorie pour chaque mois spécifié dans la plage de dates. Les émissions sont décomposées par catégorie. Les principaux éléments X sont basés sur les émissions du mois dernier. |
Données pour les éléments principaux par catégorie et par mois |
ItemDetailsReport |
Émissions agrégées entre les étendues sélectionnées et les ID d’abonnements pour une plage de dates donnée et décomposées par catégorie spécifiée. |
Données d’émission par catégorie |
Exporter les paramètres de l’API d’émission
Le tableau suivant décrit les paramètres que vous pouvez utiliser pour exporter des données d’émission à l’aide de l’API REST.
Paramètre |
Type |
Description |
reportType |
Corde |
Nom du type de rapport. Valeurs prises en charge : OverallSummaryReport
MonthlySummaryReport
TopItemsSummaryReport TopItemsMonthlySummaryReport ItemDetailsReport |
subscriptionList |
[String] |
Liste subscriptionId pour laquelle vous souhaitez rechercher. Le client doit avoir accès à ces abonnements. |
resourceGroupUrlList |
[String] |
Liste d’URL resourceGroup pour laquelle vous souhaitez obtenir des données. Par exemple: « resourceGroupUrlList » : [ « /subscriptions/sub-id-1111/resourcegroups/rg_name » ] La valeur de chaîne dans le tableau doit suivre ce format : « /subscriptions/{sub_id}/resourcegroups/{rg_name} » |
carbonScopeList |
[String] |
Liste de portée carbone. Valeurs prises en charge : Scope1 , Scope2 et Scope3 . Cette liste peut être n’importe quelle combinaison de ces trois étendues. |
dateRange |
Struct |
Prend en charge un mois à partir des 12 derniers mois. Le mois de début et de fin doit être égal et doit être le premier jour d’un mois. Une exception est levée lorsque ce critère n’est pas satisfait. Par exemple dateRange" : { « start » : « 2023-03-01 », « end » : « 2023-03-01} format start et end : aaaa-mm-dd. Actuellement, les données sur les émissions de carbone sont actualisées mensuellement. Ainsi, la valeur des propriétés dateRange start et end doit être le premier jour de chaque mois. |
Note
dateRange
prend en charge un mois à la fois (à partir des 12 derniers mois). Une exception est levée lorsque les dates de début et de fin sont différentes.
Paramètres spécifiques au rapport
Le tableau suivant présente des paramètres supplémentaires requis pour chaque type de rapport.
AdditionalParameter |
Type |
Description |
Rapports |
categoryType |
Corde |
Cinq types de catégories sont pris en charge : Subscription
Location
ServiceType
ResourceGroup
Resource
|
TopItemsSummaryReport TopItemsMonthlySummaryReport
ItemDetailsReport
|
topItemsCount |
Entier |
Éléments x principaux à afficher (>5) |
TopItemsSummaryReport TopItemsMonthlySummaryReport
|
ItemDetailsReport |
category |
Corde |
Nom de la catégorie. Par exemple, « category » : « ResourceGroup » |
pageSize |
Entier |
Taille de page pour le résultat de la requête. La valeur par défaut est 1 000. La valeur maximale est 2000. |
ItemDetailsReport |
orderBy |
Corde |
Consultez le tableau ci-dessous pour afficher les valeurs prises en charge, ainsi que les types de catégories pris en charge. |
ItemDetailsReport |
sortDirection |
Corde |
Valeurs de prise en charge : Desc , Asc |
ItemDetailsReport |
groupCategory |
Corde |
Cela peut être défini en tant que chaîne vide. Valeurs valides : ResourceGroup et SubscriptionId |
ItemDetailsReport |
Ordre par colonnes
Les colonnes de résultats suivantes prennent en charge le paramètre orderBy
.
Ordre par nom de colonne |
Type de catégorie |
Name |
tout sauf Subscription |
TotalCarbonEmission |
tout |
TotalCarbonEmissionLastMonth |
tout |
ResourceGroup |
uniquement pour la catégorie Resource |
SubscriptionId |
catégorie Subscription , Resource et ResourceGroup |
ChangeRatioForLastMonth |
tout |
ChangeValueMonthOverMonth |
tout |
Pour plus d’informations sur les rapports de l’API REST, consultez Service carbone - Répertorier les rapports d’émission de carbone.