Obtención de pequeños conjuntos de datos de los costos por encargo

Use la API de Cost Details para obtener datos de costos sin procesar y sin agregar que se correspondan con la factura de Azure. La API es útil cuando su organización necesita una solución de recuperación de datos mediante programación. Considere la posibilidad de usar la API si quiere analizar conjuntos de datos de costos más pequeños de 2 GB (2 millones de filas) o menos. Sin embargo, debe usar Exportaciones para cargas de trabajo de ingesta de datos en curso y para la descarga de conjuntos de datos más grandes.

Si desea obtener grandes cantidades de datos exportados de forma periódica, consulte Recuperación recurrente de conjuntos de datos de costos de gran tamaño con exportaciones.

Para más información sobre los datos de los detalles de costos (anteriormente denominados detalles de uso), consulte Ingesta de datos de detalles de costos.

El informe de Cost Details solo está disponible para los clientes con un Contrato Enterprise o Contrato de cliente de Microsoft. Si es cliente de MSDN, pago por uso o Visual Studio, consulte Obtención de los detalles de los costos para suscripciones de pago por uso.

Permisos

Para usar la API Cost Details, necesita permisos de solo lectura para las características y ámbitos admitidos.

Nota

Cost Details API no admite grupos de administración para clientes de EA o MCA.

Para más información, consulte:

Procedimientos recomendados de la API de Cost Details

Microsoft recomienda los siguientes procedimientos recomendados a medida que se usa la API de Cost Details.

Solicitar programación

Si desea obtener los datos de costo más recientes, se recomienda consultar como máximo una vez al día. Los informes se actualizan cada cuatro horas. Si llama con más frecuencia, recibirá datos idénticos. Una vez descargados los datos de costos de las facturas históricas, los cargos no cambiarán a menos que se le notifique explícitamente. Recomendamos almacenar en caché los datos de costos en un almacén consultable para evitar que se repitan las llamadas a datos idénticos.

Fragmentación de solicitudes

Fragmente las llamadas en intervalos de fechas pequeños para obtener archivos más manejables que pueda descargar en la red. Por ejemplo, se recomienda fragmentar por día o por semana si tiene un archivo de costo de Azure de gran tamaño mes a mes. Si tiene ámbitos con una gran cantidad de datos de costo (por ejemplo, una cuenta de facturación), considere la posibilidad de hacer varias llamadas a ámbitos secundarios para obtener archivos más manejables que pueda descargar. Para más información sobre los ámbitos de Cost Management, consulte Descripción y uso de ámbitos. Tras descargar los datos, use Excel para analizar más datos con filtros y tablas dinámicas.

Si el conjunto de datos ocupa más de 2 GB (unos dos millones de columnas) mes a mes, considere la posibilidad de usar exportaciones como una solución más escalable.

Límites de latencia y velocidad

Las llamadas a petición a la API están limitadas. El tiempo necesario para generar el archivo de detalles de costos se correlaciona directamente con la cantidad de datos del archivo. Para comprender la cantidad de tiempo esperada antes de que el archivo esté disponible para su descarga, puede usar el encabezado retry-after en la respuesta de la API.

Intervalos de tiempo de conjuntos de datos admitidos

La API de Cost Details admite un intervalo de tiempo máximo del conjunto de datos de un mes por informe. Los datos históricos se pueden recuperar hasta 13 meses atrás desde la fecha actual. Si desea inicializar un conjunto de datos histórico de 13 meses, se recomienda colocar 13 llamadas en conjuntos de datos de un mes durante los últimos 13 meses. Para recuperar datos históricos anteriores a 13 meses, use la API de REST Exports.

Ejemplo de solicitudes de API de Cost Details

Los clientes de Microsoft usan las siguientes solicitudes de ejemplo para abordar situaciones comunes. Los datos que devuelve la solicitud se corresponden con la fecha en la que el sistema de facturación recibió el uso de los costos. Podría incluir los costos de varias facturas. Se trata de una API asincrónica. Por lo tanto, se realiza una llamada inicial para solicitar el informe y recibir un vínculo de sondeo en el encabezado de respuesta. Desde allí, puede sondear el vínculo proporcionado hasta que el informe esté disponible para usted.

Use el encabezado retry-after en la respuesta de la API para determinar cuándo sondear la API a continuación. El encabezado proporciona un tiempo mínimo estimado en el que el informe tarda en generarse.

Para más información sobre el contrato de la API, consulte detalles de costos API.

Costo real frente a costo amortizado

Para controlar si desea ver un informe de costo real o costo amortizado, cambie el valor usado para el campo de métrica en el cuerpo de la solicitud inicial. Los valores de métrica disponibles son ActualCost o AmortizedCost.

El costo amortizado desglosa las compras de reservas en fragmentos diarios y los distribuye a lo largo de la duración del plazo de la reserva. Por ejemplo, en lugar de ver una compra de 365 USD el 1 de enero, se verá una compra de 1,00 USD todos los días desde el 1 de enero al 31 de diciembre. Además de la amortización básica, los costos también se reasignan y se asocian con los recursos específicos que usó la reserva. Por ejemplo, si el cargo diario de 1,00 USD se divide entre dos máquinas virtuales, vería dos cargos de 0,50 USD cada día. Si una parte de la reserva no se usa en el día, se vería un cargo de 0,50 USD asociado con la máquina virtual aplicable y otro de la misma cantidad con el tipo de cargo de UnusedReservation. Los costos de las reservas sin usar solo se ven cuando se ve el costo amortizado.

Debido al cambio en la forma de representar los costos, es importante tener en cuenta que las vistas del costo real y del costo amortizado muestran números diferentes en el total. En general, el costo total de meses a lo largo del tiempo de una compra de reserva se reducirá cuando los costos se amorticen. El costo de los meses siguientes a una compra de reserva aumenta. La amortización solo está disponible para las compras de reservas y, en este momento, no se aplica a las compras realizadas en Azure Marketplace.

Solicitud inicial para crear un informe

POST https://management.azure.com/{scope}/providers/Microsoft.CostManagement/generateCostDetailsReport?api-version=2022-05-01

Cuerpo de la solicitud:

A continuación, se proporciona un ejemplo de solicitud para un conjunto de datos ActualCost en un intervalo de fechas especificado.

{
  "metric": "ActualCost",
  "timePeriod": {
    "start": "2020-03-01",
    "end": "2020-03-15"
  }
}

Las opciones {scope} disponibles para compilar el URI adecuado se documentan en Identificar el identificador de recurso de un ámbito.

A continuación, se muestran los campos disponibles que puede proporcionar en el cuerpo de la solicitud del informe.

  • metric: Tipo de informe solicitado. Puede ser ActualCost o AmortizedCost. No es necesario. Si no se especifica el campo, la API toma como valor predeterminado un informe ActualCost.
  • timePeriod: Intervalo de fechas solicitado para los datos. No es necesario. Este parámetro no se puede usar junto con los parámetros invoiceId o billingPeriod. Si no se proporciona un parámetro timePeriod, invoiceId o billingPeriod en el cuerpo de la solicitud, la API devuelve el costo del mes actual.
  • invoiceId: La factura solicitada para los datos. Este parámetro solo lo usan los clientes del Contrato de cliente de Microsoft. Además, solo se puede usar en el ámbito de Perfil de facturación o Cliente. Este parámetro no se puede usar junto con los parámetros billingPeriod o timePeriod. Si no se proporciona un parámetro timePeriod, invoiceId o billingPeriod en el cuerpo de la solicitud, la API devuelve el costo del mes actual.
  • billingPeriod: Período de facturación solicitado para los datos. Este parámetro solo lo usan los clientes del Contrato Enterprise. Use el formato YearMonth. Por ejemplo, 202008. Este parámetro no se puede usar junto con los parámetros invoiceId o timePeriod. Si no se proporciona un parámetro timePeriod, invoiceId o billingPeriod en el cuerpo de la solicitud, la API devuelve el costo del mes actual.

Respuesta de la API:

Response Status: 202 – Accepted: indica que se aceptó la solicitud. Use el encabezado Location para comprobar el estado.

Encabezados de respuesta:

Nombre Tipo Formato Descripción
Location String Dirección URL para comprobar el resultado de la operación asincrónica.
Retry-After Entero Int32 Tiempo esperado para que se genere el informe. Espere este tiempo antes de volver a sondear.

Informe de sondeo y descarga

Después de solicitar la creación de un informe de detalles de costos, sondee el informe mediante el punto de conexión proporcionado en el encabezado location de la respuesta de la API. Este es un ejemplo de solicitud de sondeo.

Solicitud de sondeo de informe:

GET https://management.azure.com/{scope}/providers/Microsoft.CostManagement/costDetailsOperationStatus/{operationId}?api-version=2022-05-01

Response Status 200 – Succeeded: indica que la solicitud se ha realizado correctamente.

{
  "id": "subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.CostManagement/operationResults/00000000-0000-0000-0000-000000000000",
  "name": "00000000-0000-0000-0000-000000000000",
  "status": "Completed",
  "manifest": {
    "manifestVersion": "2022-05-01",
    "dataFormat": "Csv",
    "blobCount": 1,
    "byteCount": 160769,
    "compressData": false,
    "requestContext": {
      "requestScope": "subscriptions/00000000-0000-0000-0000-000000000000",
      "requestBody": {
        "metric": "ActualCost",
        "timePeriod": {
          "start": "2020-03-01",
          "end": "2020-03-15"
        }
      }
    },
    "blobs": [
      {
        "blobLink": "{downloadLink}",
        "byteCount": 32741
      }
    ]
  },
  "validTill": "2022-05-10T08:08:46.1973252Z"
}

A continuación se muestra un resumen de los campos clave de la respuesta de la API:

  • manifestVersion: La versión del contrato de manifiesto que se usa en la respuesta. En este momento, la versión del manifiesto sigue siendo la misma para una versión de API determinada.
  • dataFormat: CSV es el único formato de archivo admitido proporcionado por la API en este momento.
  • blobCount: Representa el número de blobs de datos individuales presentes en el conjunto de datos del informe. Es importante tener en cuenta que esta API puede proporcionar un conjunto de datos con particiones de más de un archivo en la respuesta. Diseñe las canalizaciones de datos para poder controlar los archivos particionados en consecuencia. La creación de particiones le permite poder ingerir conjuntos de datos más grandes y de forma más rápida en el futuro.
  • byteCount: Recuento total de bytes del conjunto de datos del informe en todas las particiones.
  • compressData: la compresión siempre se establece en false para la primera versión. Sin embargo, la API admitirá la compresión en el futuro.
  • requestContext: La configuración inicial solicitada para el informe.
  • blobs: Lista de archivos de blob que forman el informe completo.
    • blobLink: La dirección URL de descarga de una partición de blob individual.
    • byteCount: Recuento de bytes de la partición de blob individual.
  • validTill: la fecha en que el informe deja de ser accesible.

Pasos siguientes