Condividi tramite


Ottenere record di utilizzo di Azure per un cliente

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 descritte in Autenticazione del Centro per i partner. Questo scenario supporta l'autenticazione con le credenziali app autonome e App+Utente.

  • ID cliente (customer-tenant-id). Se non si conosce l'ID del cliente, è possibile cercarlo nel 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 del cliente. L'ID Microsoft corrisponde all'ID del 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, vedere gli articoli Ottenere le voci relative al consumo non fatturate e Ottenere invece 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 di ritardo della fatturazione del partner, vedere Ottenere i dati sull'utilizzo per una sottoscrizione di Azure.

Questa API REST è di paging. 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 proprietà della fatturazione della sottoscrizione 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 viene Amministrazione per conto di (AOBO) al 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 un oggetto ResourceCollection contenente i record di utilizzo.

  3. Ottenere un enumeratore di record di utilizzo di Azure per attraversare le pagine di utilizzo. Questo passaggio è obbligatorio perché la raccolta di risorse è di paging.

  • Esempio: App di test della console
  • Progetto: 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();
}

Java

L'SDK Java del 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. In caso di problemi, puoi richiedere assistenza alla community o aprire un problema in GitHub.

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 recuperare una raccolta ResourceCollection contenente i record di utilizzo. Poiché tale raccolta è in più pagine, per percorrere le pagine è necessario ottenere un enumeratore di record di utilizzo di Azure.

// 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 del 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. In caso di problemi, puoi richiedere assistenza alla community o aprire un problema in GitHub.

Per ottenere i record di utilizzo di Azure, è necessario innanzitutto un identificatore del cliente e un identificatore di sottoscrizione. Chiamare quindi 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}&granularity={granularity}&show_details={True}

Parametri URI

Usare il percorso e i parametri di query seguenti per ottenere i record di utilizzo.

Nome Digita Obbligatorio Descrizione
customer-tenant-id string Stringa in formato GUID che identifica il cliente.
subscription-id string Stringa in formato GUID che identifica la sottoscrizione.
start_time 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.
end_time 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.
granularity string No Definisce la granularità delle aggregazioni di utilizzo. Le opzioni disponibili sono: daily (impostazione predefinita) e hourly.
show_details boolean No Specifica se ottenere i dettagli di utilizzo a livello di istanza. Il valore predefinito è true.
size number No Specifica il numero di aggregazioni restituite da una singola chiamata API. Il valore predefinito è 1000. Il valore massimo è 1000.

Intestazioni delle richieste

Per altre informazioni, vedi Intestazioni REST del Centro per i partner.

Testo della richiesta

None

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/FC8F8908-F918-4406-AF13-D5BC0FE41865/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: a687bc47-8d08-4b78-aff6-5a59aa2055c2
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 di esito della risposta

Ogni risposta viene fornita con un codice di stato HTTP che ne indica l'esito e con informazioni di debug aggiuntive. Usare uno strumento di traccia di rete per leggere il codice di stato HTTP, il tipo di codice di errore e i parametri aggiuntivi.

Risposta di esempio

HTTP/1.1 200 OK
Content-Length: 2630
Content-Type: application/json; charset=utf-8
MS-CorrelationId: a687bc47-8d08-4b78-aff6-5a59aa2055c2
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/ab7e2384-eeee-489a-a14f-1eb41ddd261d/resourcegroups/system.local/providers/Microsoft.Storage/storageaccounts/srphealthaccount",
        "location": "azurestack",
        "partNumber": "",
        "orderNumber": "",
        "additionalInfo": {
          "azureStack.MeterId": "09F8879E-87E9-4305-A572-4B7BE209F857",
          "azureStack.SubscriptionId": "dbd1aa30-e40d-4436-b465-3a8bc11df027",
          "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/ab7e2384-eeee-489a-a14f-1eb41ddd261d/resourcegroups/system.local/providers/Microsoft.Storage/storageaccounts/srphealthaccount",
        "location": "azurestack",
        "partNumber": "",
        "orderNumber": "",
        "additionalInfo": {
          "azureStack.MeterId": "09F8879E-87E9-4305-A572-4B7BE209F857",
          "azureStack.SubscriptionId": "dbd1aa30-e40d-4436-b465-3a8bc11df027",
          "azureStack.Location": "local",
          "azureStack.EventDateTime": "06/05/2017 06:00:00"
        },
        "attributes": {
          "objectType": "AzureUtilizationRecord"
        }
      },

      "links": {
        "self": {
          "uri": "customers/E499C962-9218-4DBA-8B83-8ADC94F47B9F/subscriptions/FC8F8908-F918-4406-AF13-D5BC0FE41865/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"
      }
    }
  ]
}