Exportación de datos de emisiones mediante la API REST
Para exportar datos de emisiones mediante la API REST, debe crear y autorizar a una entidad de servicio para acceder a los datos de emisiones. Después, puede usar la entidad de servicio para obtener un token de autorización y, a continuación, exportar datos de emisiones mediante la API REST.
Creación y autorización de una entidad de servicio para exportar datos de emisiones
Una entidad de servicio es una aplicación cuyos tokens se pueden usar para autenticar y conceder acceso a recursos específicos de Azure mediante el identificador de Microsoft Entra (anteriormente Azure Active Directory). Los recursos incluyen aplicaciones de usuario, servicios o herramientas de automatización.
Crear una aplicación de Microsoft Entra y una entidad de servicio que puedan acceder a los recursos.
Guarde el identificador de inquilino, el nuevo identificador de cliente y el valor del secreto de cliente de la aplicación para usarlo en las solicitudes de token.
A la aplicación se le debe asignar el rol de Carbon Optimization Reader
para los recursos para los que desea exportar los datos de emisiones. Si planea usar la aplicación para exportar datos de emisiones para muchos recursos, puede asignar el rol en el nivel de suscripción o grupo de recursos. Para más información, consulte Asignación de roles de Azure mediante Azure Portal.
Obtención de un token de autorización
Envíe la siguiente solicitud en el símbolo del sistema o mediante un cliente como 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'
Aparece el cuerpo de la respuesta:
{
"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"
}
Use el token de acceso de la respuesta para su uso en las siguientes solicitudes HTTP.
Exportación de datos de emisiones mediante la API REST
POST /providers/Microsoft.Carbon/carbonEmissionReports?api-version=2023-04-01-preview Host: management.azure.com Content-Type: application/json Authorization: Bearer <token value>
Solicitud de ejemplo
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"
}
}
ejemplo de 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"
}
}
'
Salida de ejemplo
{
"value": [
{
"dataType": "OverallSummaryData",
"totalCarbonEmission": 7000.622265493289,
"totalCarbonEmission12MonthsAgo": 0,
"totalCarbonEmissionLastMonth": 7480.374908590786,
"changeRatioFor12Months": 0,
"changeRatioForLastMonth": -0.06413483935765417,
"changeValueMonthOverMonth": 0
}
]
}
Tipos de informe
Tipo de informe |
Descripción |
Cuándo usar |
OverallSummaryReport |
Emisiones totales para todos los ámbitos de suscripciones y intervalo de fechas especificados en la entrada. |
Datos de informes de alto nivel necesarios |
MonthlySummaryReport |
Emisiones para todas las suscripciones y ámbitos de emisión de cada mes especificados en el intervalo de fechas. |
Desglose mensual |
TopItemsSummaryReport |
Emisiones de elementos X principales agregados entre suscripciones, emisiones, ámbito, categoría y intervalo de fechas especificado, desglosados por categoría. |
Datos de los elementos principales por categoría |
TopItemsMonthlySummaryReport |
Emisiones de los elementos X principales agregados en suscripciones, emisiones, ámbitos y categoría para cada mes especificado en el intervalo de fechas. Las emisiones se desglosan por categoría. Los elementos X principales se basan en las emisiones del mes pasado. |
Datos de los elementos principales por categoría y mes |
ItemDetailsReport |
Emisiones agregadas entre ámbitos y suscripciones seleccionadosID para un intervalo de fechas determinado y desglosados por categoría especificada. |
Datos de emisiones por categoría |
Exportación de parámetros de la API de emisiones
En la tabla siguiente se describen los parámetros que puede usar para exportar datos de emisiones mediante la API REST.
Parámetro |
Tipo |
Descripción |
reportType |
Cuerda |
Nombre del tipo de informe. Valores admitidos: OverallSummaryReport
MonthlySummaryReport
TopItemsSummaryReport TopItemsMonthlySummaryReport ItemDetailsReport |
subscriptionList |
[String] |
Lista subscriptionId a la que desea consultar. El cliente debe tener acceso a estas suscripciones. |
resourceGroupUrlList |
[String] |
Lista de direcciones URL de resourceGroup para la que desea obtener datos. Por ejemplo: "resourceGroupUrlList": [ "/subscriptions/sub-id-1111/resourcegroups/rg_name" ] El valor de cadena de la matriz debe seguir este formato: "/subscriptions/{sub_id}/resourcegroups/{rg_name}" |
carbonScopeList |
[String] |
Lista de ámbitos de carbono. Valores admitidos: Scope1 , Scope2 y Scope3 . Esta lista puede ser cualquier combinación de estos tres ámbitos. |
dateRange |
Estructura |
Admite un mes de los últimos 12 meses. El mes inicial y final debe ser igual y debe ser el primer día de un mes. Se produce una excepción cuando no se cumplen estos criterios. Por ejemplo dateRange": { "start": "2023-03-01", "end": "2023-03-01}
start y formato de end : aaaa-mm-dd. Actualmente, los datos de emisiones de carbono se actualizan mensualmente. Por lo tanto, el valor de las propiedades dateRange start y end debe ser el primer día de cada mes. |
Nota
dateRange
admite un mes a la vez (desde los últimos 12 meses). Se produce una excepción cuando las fechas de inicio y finalización son diferentes.
Parámetros específicos del informe
En la tabla siguiente se muestran parámetros adicionales necesarios para cada tipo de informe.
AdditionalParameter |
Tipo |
Descripción |
Informes |
categoryType |
Cuerda |
Se admiten cinco tipos de categoría: Subscription
Location
ServiceType
ResourceGroup
Resource
|
TopItemsSummaryReport TopItemsMonthlySummaryReport
ItemDetailsReport
|
topItemsCount |
Entero |
Los elementos x principales que se van a mostrar (>5) |
TopItemsSummaryReport TopItemsMonthlySummaryReport
|
ItemDetailsReport |
category |
Cuerda |
Nombre de categoría. Por ejemplo, "category": "ResourceGroup" |
pageSize |
Entero |
Tamaño de página del resultado de la consulta. El valor predeterminado es 1000. El valor máximo es 2000. |
ItemDetailsReport |
orderBy |
Cuerda |
Consulte la tabla siguiente para ver los valores admitidos, junto con los tipos de categoría admitidos. |
ItemDetailsReport |
sortDirection |
Cuerda |
Valores de compatibilidad: Desc , Asc |
ItemDetailsReport |
groupCategory |
Cuerda |
Esto se puede establecer como una cadena vacía. Valores válidos: ResourceGroup y SubscriptionId |
ItemDetailsReport |
Ordenar por columnas
Las columnas de resultados siguientes admiten el parámetro orderBy
.
Ordenar por nombre de columna |
Tipo de categoría |
Name |
todo excepto Subscription |
TotalCarbonEmission |
todo |
TotalCarbonEmissionLastMonth |
todo |
ResourceGroup |
solo para Resource categoría |
SubscriptionId |
Subscription , Resource y categoría de ResourceGroup |
ChangeRatioForLastMonth |
todo |
ChangeValueMonthOverMonth |
todo |
Para obtener más información sobre los informes de la API rest, consulte Carbon Service - List Carbon Emission Reports.