Obtener registros de uso de un cliente para Azure
Se aplica a: Centro de partners | Centro de partners para Microsoft Cloud for US Government
Puede obtener los registros de uso de la suscripción de Azure de un cliente durante un período de tiempo especificado mediante la API de uso de Azure.
Requisitos previos
Credenciales tal como se describen en el artículo Autenticación del Centro de partners. Este escenario admite la autenticación con credenciales de aplicación independiente y App+User.
Un id. de cliente (
customer-tenant-id
). Si no conoce el identificador del cliente, puede buscarlo en el Centro de partners seleccionando el área de trabajo Clientes , luego el cliente de la lista de clientes y, a continuación , Cuenta. En la página Cuenta del cliente, busque el identificador de Microsoft en la sección Información de la cuenta de cliente. El id. de Microsoft es el mismo que el de cliente (customer-tenant-id
).Identificador de suscripción.
Esta API devuelve el consumo diario y por hora sin clasificar para un intervalo de tiempo arbitrario. Sin embargo, esta API no es compatible con los planes de Azure. Si tiene un plan de Azure, consulte los artículos Obtención de los elementos de línea de consumo sin facturar y Obtención de los elementos de línea de consumo facturados en su lugar. En estos artículos se describe cómo obtener el consumo clasificado en un nivel diario por medidor por recurso. Este consumo de velocidad es equivalente a los datos detallados diarios proporcionados por la API de uso de Azure. Deberá usar el identificador de factura para recuperar los datos de uso facturados. O bien, puede usar períodos actuales y anteriores para obtener estimaciones de uso no facturadas. Actualmente no se admiten datos detallados por horas ni filtros de intervalo de fechas arbitrarios para los recursos de suscripción del plan de Azure.
API Azure Utilization
Esta API de uso de Azure proporciona acceso a los registros de uso durante un período de tiempo que representa cuándo se notificó el uso en el sistema de facturación. Proporciona acceso a los mismos datos de uso que se usan para crear y calcular el archivo de conciliación. Sin embargo, no tiene conocimiento de la lógica del archivo de conciliación del sistema de facturación. No debe esperar que los resultados del resumen del archivo de conciliación coincidan con el resultado recuperado de esta API exactamente durante el mismo período de tiempo.
Por ejemplo, el sistema de facturación toma los mismos datos de uso y aplica reglas de latencia para determinar lo que se tiene en cuenta en un archivo de conciliación. Cuando se cierra un período de facturación, todo el uso hasta el final del día en que finaliza el período de facturación se incluye en el archivo de conciliación. Cualquier uso retrasado dentro del período de facturación que se notifique en un plazo de 24 horas después de que finalice el período de facturación se contabiliza en el siguiente archivo de conciliación. Para conocer las reglas de latencia de cómo se factura al asociado, consulte Obtención de datos de consumo para una suscripción de Azure.
Esta API REST está paginada. Si la carga de respuesta es mayor que una sola página, debe seguir el vínculo siguiente para obtener la siguiente página de registros de uso.
Escenario: El asociado A ha transferido la propiedad de facturación de la suscripción heredada de Azure (145P) al asociado B
Si un asociado transfiere la propiedad de facturación de una suscripción heredada de Azure a otro asociado, cuando el nuevo asociado llama a la API de uso de la suscripción transferida, tiene que usar el identificador de suscripción comercial (que se muestra en su cuenta del Centro de partners) en lugar del identificador de derecho de Azure. El identificador de derecho de Azure solo aparece para el partner B cuando se Administración en nombre de (AOBO) en Azure Portal del cliente.
Para llamar correctamente a la API de uso para la suscripción transferida, el nuevo asociado debe usar el identificador de suscripción de Comercio.
C#
Para obtener los registros de uso de Azure:
Obtenga el identificador de cliente y el identificador de suscripción.
Llame al método IAzureUtilizationCollection.Query para devolver una resourceCollection que contiene los registros de uso.
Obtenga un enumerador de registros de uso de Azure para recorrer las páginas de uso. Este paso es necesario, ya que la colección de recursos está paginada.
- Ejemplo: Aplicación de prueba de consola
- Proyecto: Ejemplos del SDK del Centro de partners
- Clase: GetAzureSubscriptionUtilization.cs
// IAggregatePartner partnerOperations;
// string customerId;
// string subscriptionId;
IPartner partner = PartnerService.Instance.CreatePartnerOperations(credentials);
// Retrieve the utilization records for the last year in pages of 100 records.
var utilizationRecords = partner.Customers[customerId].Subscriptions[subscriptionId].Utilization.Azure.Query(
DateTimeOffset.Now.AddYears(-1),
DateTimeOffset.Now,
size: 100);
// Create an Azure utilization enumerator which will aid us in traversing the utilization pages.
var utilizationRecordEnumerator = partner.Enumerators.Utilization.Azure.Create(utilizationRecords);
while (utilizationRecordEnumerator.HasValue)
{
//
// Insert code here to work with this page.
//
// Get the next page.
utilizationRecordEnumerator.Next();
}
Java
El SDK de Java del Centro de partners se puede usar para administrar los recursos del Centro de partners. Es un proyecto de código abierto mantenido por la comunidad de partners y no es compatible oficialmente con Microsoft. Puedes obtener ayuda de la comunidad o abrir una incidencia en GitHub si se produce un problema.
Para obtener los registros de uso de Azure, primero necesita un identificador de cliente y un identificador de suscripción. Luego, debe llamar a la función IAzureUtilizationCollection.query para que se devuelva un objeto ResourceCollection que contenga los registros de uso. Debido a que la colección de recursos está paginada, debe obtener un enumerador de registros de uso de Azure para recorrer las páginas de uso.
// IAggregatePartner partnerOperations;
// String customerId;
// String subscriptionId;
ResourceCollection<AzureUtilizationRecord> utilizationRecords = partnerOperations.getCustomers()
.byId(customerId).getSubscriptions().byId(subscriptionId)
.getUtilization().getAzure().query(
new DateTime().minusYears(1),
new DateTime(),
AzureUtilizationGranularity.Daily,
true,
100);
// Create an Azure utilization enumerator which will aid us in traversing the utilization pages
IResourceCollectionEnumerator<ResourceCollection<AzureUtilizationRecord>> utilizationRecordEnumerator =
partnerOperations.getEnumerators().getUtilization().getAzure().create(utilizationRecords);
while (utilizationRecordEnumerator.hasValue())
{
//
// Insert code here to work with this page.
//
// get the next page
utilizationRecordEnumerator.next();
}
PowerShell
El módulo de PowerShell del Centro de partners se puede usar para administrar los recursos del Centro de partners. Es un proyecto de código abierto mantenido por la comunidad de partners y no es compatible oficialmente con Microsoft. Puedes obtener ayuda de la comunidad o abrir una incidencia en GitHub si se produce un problema.
Para obtener los registros de uso de Azure, primero necesita un identificador de cliente y un identificador de suscripción. A continuación, llame a Get-PartnerCustomerSubscriptionUtilization. Este comando devolverá todos los registros disponibles durante el período de tiempo especificado.
# $customerId
# $subscriptionId
Get-PartnerCustomerSubscriptionUtilization -CustomerId $customerId -SubscriptionId $subscriptionId -StartDate (Get-Date).AddDays(-2).ToUniversalTime() -Granularity Hourly -ShowDetails
Solicitud REST
Sintaxis de la solicitud
Método | URI de solicitud |
---|---|
GET | {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/utilizations/azure?start_time={start-time}&end_time={end-time}&granularity={granularity}&show_details={True} |
Parámetros del identificador URI
Use la siguiente ruta de acceso y parámetros de consulta para obtener los registros de uso.
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
customer-tenant-id | string | Sí | Cadena con formato de GUID que identifica al cliente. |
subscription-id | string | Sí | Cadena con formato de GUID que identifica la suscripción. |
start_time | cadena en formato de desplazamiento de fecha y hora UTC | Sí | Inicio del intervalo de tiempo que representa cuándo se notificó el uso en el sistema de facturación. |
end_time | cadena en formato de desplazamiento de fecha y hora UTC | Sí | El final del intervalo de tiempo que representa cuándo se notificó el uso en el sistema de facturación. |
granularidad | string | No | Define la granularidad de las agregaciones de uso. Las opciones disponibles son: daily (valor predeterminado) y hourly . |
show_details | boolean | No | Especifica si se van a obtener los detalles de uso a nivel de instancia. El valor predeterminado es true . |
size | number | No | Especifica el número de agregaciones que devuelve una sola llamada de API. El valor predeterminado es 1000. El máximo es 1000. |
Encabezados de solicitud
Para obtener más información, consulta Encabezados REST del Centro de partners.
Cuerpo de la solicitud
None
Ejemplo de solicitud
La solicitud de ejemplo siguiente genera resultados similares a los que mostrará el archivo de conciliación durante el período 7/2 - 8/1. Estos resultados podrían no coincidir exactamente (consulte la sección API de uso de Azure para obtener más información).
Esta solicitud de ejemplo devuelve los datos de uso notificados en el sistema de facturación entre las 7/2 a las 12:00 (UTC) y las 8/2 a las 12:00 (UTC).
GET https://api.partnercenter.microsoft.com/v1/customers/E499C962-9218-4DBA-8B83-8ADC94F47B9F/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/utilizations/azure?start_time=2017-07-02T00:00:00-08:00&end_time=2017-08-02T00:00:00-08:00 HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: e6a3b6b2-230a-4813-999d-57f883b60d38
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
Host: api.partnercenter.microsoft.com
Respuesta REST
Si se ejecuta correctamente, este método devuelve una colección de recursos de registro de uso de Azure en el cuerpo de la respuesta. Si los datos de uso de Azure aún no están listos en un sistema dependiente, este método devuelve un código de estado HTTP 204 con un encabezado Retry-After.
Códigos de error y de respuesta correctos
Cada respuesta incluye un código de estado HTTP que indica si la operación se ha realizado correctamente o con errores y proporciona información de depuración adicional. Use una herramienta de seguimiento de red para leer el código de estado HTTP, el tipo de código de error y parámetros adicionales.
Ejemplo de respuesta
HTTP/1.1 200 OK
Content-Length: 2630
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: e6a3b6b2-230a-4813-999d-57f883b60d38
MS-CV: PjuGoYrw806o6A3Y.0
MS-ServerId: 030020525
Date: Fri, 04 Aug 2017 23:48:28 GMT
{
"totalCount": 2,
"items": [
{
"usageStartTime": "2017-06-07T17:00:00-07:00",
"usageEndTime": "2017-06-08T17:00:00-07:00",
"resource": {
"id": "8767aeb3-6909-4db2-9927-3f51e9a9085e",
"name": "Storage Admin",
"category": "Storage",
"subcategory": "Block Blob",
"region": "Azure Stack"
},
"quantity": 0.217790327034891,
"unit": "1 GB/Hr",
"infoFields": {},
"instanceData": {
"resourceUri": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourcegroups/system.local/providers/Microsoft.Storage/storageaccounts/srphealthaccount",
"location": "azurestack",
"partNumber": "",
"orderNumber": "",
"additionalInfo": {
"azureStack.MeterId": "09F8879E-87E9-4305-A572-4B7BE209F857",
"azureStack.SubscriptionId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"azureStack.Location": "local",
"azureStack.EventDateTime": "06/05/2017 06:00:00"
}
},
"attributes": {
"objectType": "AzureUtilizationRecord"
}
},
{
"usageStartTime": "2017-06-07T17:00:00-07:00",
"usageEndTime": "2017-06-08T17:00:00-07:00",
"resource": {
"id": "8767aeb3-6909-4db2-9927-3f51e9a9085e",
"name": "Storage Admin",
"category": "Storage",
"subcategory": "Block Blob",
"region": "Azure Stack"
},
"quantity": 0.217790327034891,
"unit": "1 GB/Hr",
"infoFields": {},
"instanceData": {
"resourceUri": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourcegroups/system.local/providers/Microsoft.Storage/storageaccounts/srphealthaccount",
"location": "azurestack",
"partNumber": "",
"orderNumber": "",
"additionalInfo": {
"azureStack.MeterId": "09F8879E-87E9-4305-A572-4B7BE209F857",
"azureStack.SubscriptionId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"azureStack.Location": "local",
"azureStack.EventDateTime": "06/05/2017 06:00:00"
},
"attributes": {
"objectType": "AzureUtilizationRecord"
}
},
"links": {
"self": {
"uri": "customers/E499C962-9218-4DBA-8B83-8ADC94F47B9F/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/utilizations/azure?start_time=2017-06-10T00:00:00Z&end_time=2017-07-09T00:00:00Z&granularity=Daily&show_details=True&size=1000",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Collection"
}
}
]
}