Condividi tramite


Ottenere i record di utilizzo di un cliente per Azure

si applica a: Centro per i partner | Centro per i partner per Microsoft Cloud per il governo degli Stati Uniti

È possibile ottenere i record di utilizzo della sottoscrizione di Azure di un cliente per un periodo di tempo specificato usando l'API di utilizzo di Azure.

Prerequisiti

  • Credenziali come descritto nell'autenticazione del Centro per i Partner . Questo scenario supporta l'autenticazione tramite credenziali per app autonome e per App+Utente.

  • ID cliente (customer-tenant-id). Se non si conosce l'ID del cliente, è possibile cercarlo in Centro per i partner selezionando l'area di lavoro clienti, quindi il cliente dall'elenco dei clienti, quindi Account. Nella pagina Account del cliente cercare l'ID Microsoft nella sezione Informazioni sull'account cliente. L'ID Microsoft corrisponde all'ID cliente (customer-tenant-id).

  • Identificatore di sottoscrizione.

Questa API restituisce un consumo giornaliero e orario non valutato per un intervallo di tempo arbitrario. Tuttavia, questa API non è supportata per i piani di Azure. Se si dispone di un piano di Azure, consulta gli articoli Consulta le voci di consumo non fatturate e Consulta le voci relative al consumo fatturate. Questi articoli descrivono come ottenere un consumo valutato a livello giornaliero per contatore per risorsa. Questo consumo di velocità equivale ai dati di granularità giornaliera forniti dall'API di utilizzo di Azure. È necessario usare l'identificatore della fattura per recuperare i dati di utilizzo fatturati. In alternativa, è possibile usare i periodi correnti e precedenti per ottenere stime di utilizzo non fatturate. i dati con granularità oraria e i filtri di intervallo di date arbitrari non sono attualmente supportati per le risorse della sottoscrizione del piano di Azure.

API di utilizzo di Azure

Questa API di utilizzo di Azure fornisce l'accesso ai record di utilizzo per un periodo di tempo che rappresenta quando l'utilizzo è stato segnalato nel sistema di fatturazione. Fornisce l'accesso agli stessi dati di utilizzo usati per creare e calcolare il file di riconciliazione. Tuttavia, non ha conoscenza della logica dei file di riconciliazione del sistema di fatturazione. Non è consigliabile che i risultati di riepilogo dei file di riconciliazione corrispondano al risultato recuperato da questa API esattamente per lo stesso periodo di tempo.

Ad esempio, il sistema di fatturazione accetta gli stessi dati di utilizzo e applica regole di ritardo per determinare cosa viene tenuto in considerazione in un file di riconciliazione. Quando un periodo di fatturazione viene chiuso, tutti gli utilizzi fino alla fine del giorno in cui termina il periodo di fatturazione vengono inclusi nel file di riconciliazione. Qualsiasi utilizzo in ritardo entro il periodo di fatturazione segnalato entro 24 ore dalla fine del periodo di fatturazione viene considerato nel file di riconciliazione successivo. Per le regole sui ritardi di fatturazione del partner, vedere come ottenere i dati di consumo per una sottoscrizione di Azure.

Questa API REST è paginata. Se il payload della risposta è maggiore di una singola pagina, è necessario seguire il collegamento successivo per ottenere la pagina successiva dei record di utilizzo.

Scenario: il partner A ha trasferito la titolarità della fatturazione dell'abbonamento legacy di Azure (145P) al partner B

Se un partner trasferisce la proprietà della fatturazione di una sottoscrizione legacy di Azure a un altro partner, quando il nuovo partner chiama l'API di utilizzo per la sottoscrizione trasferita, deve usare l'ID sottoscrizione commerciale (che viene visualizzato nell'account del Centro per i partner) anziché l'ID entitlement di Azure. L'ID entitlement di Azure viene visualizzato per il partner B solo quando è amministratore per conto di (AOBO) nel portale di Azure del cliente.

Per chiamare correttamente l'API di utilizzo per la sottoscrizione trasferita, il nuovo partner deve usare l'ID sottoscrizione commerciale.

C#

Per ottenere i record di utilizzo di Azure:

  1. Ottenere l'ID cliente e l'ID sottoscrizione.

  2. Chiamare il metodo IAzureUtilizationCollection.Query per restituire unResourceCollectionche contiene i record di utilizzo.

  3. Ottenere un enumeratore di record di utilizzo di Azure per navigare tra le pagine di utilizzo. Questo passaggio è obbligatorio perché la raccolta di risorse è suddivisa in pagine.

  • Esempio: app di test console
  • Project: Esempi di SDK del Centro per i partner
  • Classe: 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();
}

Giava

Per gestire le risorse del Centro per i partner, è possibile usare Java SDK del Centro per i partner. Si tratta di un progetto open source gestito dalla community partner e non ufficialmente supportato da Microsoft. È possibile ottenere assistenza dalla community o aprire un problema in GitHub se si verifica un problema.

Per ottenere i record di utilizzo di Azure, è necessario innanzitutto un identificatore del cliente e un identificatore di sottoscrizione. Chiamare quindi la funzione IAzureUtilizationCollection.query per restituire un ResourceCollection che contiene i record di utilizzo. Poiché la raccolta di risorse è paginata, devi quindi ottenere un enumeratore di record di utilizzo di Azure per scorrere le pagine di utilizzo.

// 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

Il modulo PowerShell centro per i partner può essere usato per gestire le risorse del Centro per i partner. Si tratta di un progetto open source gestito dalla community partner e non ufficialmente supportato da Microsoft. È possibile ottenere assistenza dalla community o aprire un problema in GitHub se si verifica un problema.

Per ottenere i record di utilizzo di Azure, è necessario innanzitutto un identificatore del cliente e un identificatore di sottoscrizione. Chiamate quindi il Get-PartnerCustomerSubscriptionUtilization. Questo comando restituirà tutti i record disponibili per il periodo di tempo specificato.

# $customerId
# $subscriptionId

Get-PartnerCustomerSubscriptionUtilization -CustomerId $customerId -SubscriptionId $subscriptionId -StartDate (Get-Date).AddDays(-2).ToUniversalTime() -Granularity Hourly -ShowDetails

Richiesta REST

Sintassi della richiesta

Metodo URI della richiesta
GET {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/utilizations/azure?start_time={start-time}&end_time={end-time}&granularità={granularità}&mostra_dettagli={True}

Parametri URI

Utilizzare il seguente percorso e i parametri di query per ottenere i record d'uso.

Nome Digitare Obbligatorio Descrizione
ID cliente-inquilino corda Stringa in formato GUID che identifica il cliente.
ID di sottoscrizione corda Stringa in formato GUID che identifica la sottoscrizione.
tempo di inizio stringa nel formato di offset di data e ora UTC Inizio dell'intervallo di tempo che rappresenta il momento in cui l'utilizzo è stato segnalato nel sistema di fatturazione.
orario di fine stringa nel formato di offset di data e ora UTC Fine dell'intervallo di tempo che rappresenta quando l'utilizzo è stato segnalato nel sistema di fatturazione.
granularità corda No Definisce la granularità delle aggregazioni di utilizzo. Le opzioni disponibili sono: daily (impostazione predefinita) e hourly.
mostra_dettagli boolean No Specifica se ottenere i dettagli di utilizzo a livello di istanza. Il valore predefinito è true.
grandezza numero No Specifica il numero di aggregazioni restituite da una singola chiamata API. Il valore predefinito è 1000. Il valore massimo è 1000.

Intestazioni della richiesta

Per maggiori dettagli, consultare le intestazioni REST del Partner Center.

Corpo della richiesta

Nessuno

Esempio di richiesta

La richiesta di esempio seguente produce risultati simili a quanto mostrato dal file di riconciliazione per il periodo 7/2 - 8/1. Questi risultati potrebbero non corrispondere esattamente (vedere la sezione api di utilizzo di Azure per informazioni dettagliate).

Questa richiesta di esempio restituisce i dati di utilizzo segnalati nel sistema di fatturazione tra 7/2 alle 12:00 (UTC) e 8/2 alle 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

Risposta REST

In caso di esito positivo, questo metodo restituisce una raccolta di risorse record di utilizzo di Azure nel corpo della risposta. Se i dati di utilizzo di Azure non sono ancora pronti in un sistema dipendente, questo metodo restituisce un codice di stato HTTP 204 con un'intestazione Retry-After.

Codici di errore e esito positivo della risposta

Ogni risposta viene fornita con un codice di stato HTTP che indica l'esito positivo o negativo e altre informazioni di debug. Usare uno strumento di traccia di rete per leggere il codice di stato HTTP, tipo di codice di erroree parametri aggiuntivi.

Esempio di risposta

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"
      }
    }
  ]
}