Share via


Ottenere set di dati con costi ridotti su richiesta

Usare l'API Dettagli dei costi per ottenere dati sui costi non elaborati e non aggregati che corrispondono alla fattura di Azure. L'API è utile quando l'organizzazione necessita di una soluzione di recupero dei dati a livello di codice. È consigliabile usare l'API se si vogliono analizzare set di dati con costi ridotti fino a 2 GB (2 milioni di righe). È tuttavia consigliabile usare le Esportazioni per i carichi di lavoro di inserimento dati in corso e per il download di set di dati di dimensioni maggiori.

Per ottenere regolarmente grandi quantità di dati esportati, leggere Recuperare set di dati di costi di grandi dimensioni in modo ricorrente con le esportazioni.

Leggere altre informazioni sui dettagli dei costi (in precedenza denominati dettagli di utilizzo) in Inserire i dati sui dettagli dei costi.

Il report Dettagli dei costi è disponibile solo per i clienti con contratto Enterprise o Contratto del cliente Microsoft. Per i clienti MSDN, con pagamento in base al consumo o Visual Studio, leggere Ottenere i dettagli dei costi per una sottoscrizione con pagamento in base al consumo.

Autorizzazioni

Per usare l'API Dettagli dei costi, sono necessarie autorizzazioni di sola lettura per le funzionalità e gli ambiti supportati.

Nota

L'API Dettagli dei costi non supporta i gruppi di gestione per i clienti EA o MCA.

Per altre informazioni, vedi:

Procedure consigliate per l'API Dettagli dei costi

Microsoft consiglia le procedure seguenti quando si usa l'API Dettagli dei costi.

Pianificazione delle richieste

Per ottenere i dati sui costi più recenti, è consigliabile eseguire una query al massimo una volta al giorno. I report vengono aggiornati ogni quattro ore. Se si chiama più frequentemente, si ricevono dati identici. Dopo aver scaricato i dati sui costi per le fatture della cronologia, gli addebiti non cambiano a meno che non si riceva una notifica esplicita. È consigliabile memorizzare nella cache i dati dei costi in un archivio su cui è possibile eseguire query, per evitare chiamate ripetute per dati identici.

Suddividere le richieste in blocchi

Suddividere le chiamate in intervalli di date di piccole dimensioni per ottenere file più gestibili che è possibile scaricare in rete. Ad esempio, è consigliabile creare una suddivisione in blocchi per giorno o per settimana se si dispone di un file di costi di Azure di grandi dimensioni mensile. Se si dispone di ambiti con una grande quantità di dati di costo (ad esempio un account di fatturazione), è possibile l'inserimento di più chiamate agli ambiti figlio in modo da ottenere file più gestibili che è possibile scaricare. Per altre informazioni sugli ambiti di Gestione costi, vedere Informazioni e utilizzo degli ambiti. Dopo aver scaricato i dati, usare Excel per analizzare ulteriormente i dati con filtri e tabelle pivot.

Se il set di dati è superiore a 2 GB (o approssimativamente 2 milioni di righe), è possibile usare le Esportazioni come soluzione più scalabile.

Latenza dei dati e limiti di velocità

Le chiamate su richiesta all'API sono limitate. Il tempo necessario per generare il file dei dettagli dei costi è direttamente correlato alla quantità di dati nel file. Per prevedere in quanto tempo il file diventerà disponibile per il download, è possibile usare l'intestazione retry-after nella risposta dell'API.

Intervalli di tempo del set di dati supportati

L'API Dettagli dei costi supporta un intervallo di tempo massimo del set di dati di un mese per ogni report. I dati cronologici possono essere recuperati fino a un massimo di 13 mesi prima della data attuale. Se si vuole eseguire il seeding di un set di dati cronologico di 13 mesi, è consigliabile inserire 13 chiamate in set di dati di un mese per gli ultimi 13 mesi. Per recuperare i dati cronologici precedenti a 13 mesi, usare l'API REST Esportazioni.

Esempi di richieste all'API Dettagli dei costi

Le richieste di esempio seguenti vengono usate dai clienti Microsoft per la gestione di scenari comuni che si potrebbero presentare. I dati restituiti dalla richiesta corrispondono alla data in cui i costi sono stati ricevuti dal sistema di fatturazione. Possono includere i costi di più fatture. Si tratta di un'API asincrona. Di conseguenza, si inserisce una chiamata iniziale per richiedere il report e si riceve un collegamento di polling nell'intestazione della risposta. Da qui è possibile eseguire il polling del collegamento fornito fino a quando il report non è disponibile automaticamente.

Usare l'intestazione retry-after nella risposta dell'API per determinare quando eseguire il polling dell'API successivo. L'intestazione offre un tempo minimo stimato necessario per la generazione del report.

Leggere altre informazioni sul contratto API nell'API Dettagli dei costi.

Costo effettivo e costo ammortizzato

Per controllare se si vuole visualizzare un report sui costi effettivi o ammortizzati, modificare il valore usato per il campo metrica nel corpo della richiesta iniziale. I valori delle metriche disponibili sono ActualCost o AmortizedCost.

I costi ammortizzati suddividono gli acquisti di prenotazioni in blocchi giornalieri e li distribuiscono per la durata del periodo di prenotazione. Ad esempio, invece di un acquisto di € 365 il 1° gennaio, verrà visualizzato un acquisto di € 1,00 ogni giorno dal 1° gennaio al 31 dicembre. Oltre all'ammortamento di base, questi costi vengono anche riallocati e associati usando le risorse specifiche che hanno usato la prenotazione. Ad esempio, se un addebito giornaliero di 1,00 USD viene diviso tra due macchine virtuali, per quel giorno vengono visualizzati due addebiti di 0,50 USD. Se parte della prenotazione non viene utilizzata quel giorno, vengono visualizzati un solo addebito di € 0,50 associato alla macchina virtuale applicabile e un altro addebito di € 0,50 con tipo di addebito UnusedReservation. I costi delle prenotazioni inutilizzate possono essere visualizzati solo tra i costi ammortizzati.

Dal momento che i costi vengono rappresentati diversamente, è importante notare che le visualizzazioni di costi effettivi e costi ammortizzati mostrano totali differenti. In generale, il costo totale dei mesi nel tempo per un acquisto di prenotazione diminuisce quando si visualizzano i costi ammortizzati. Il costo dei mesi successivi all'acquisto di una prenotazione aumenta. L'ammortamento è disponibile solo per gli acquisti di prenotazioni e non si applica agli acquisti in Azure Marketplace in questo momento.

Richiesta iniziale per la creazione di un report

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

Corpo della richiesta:

Ecco una richiesta di esempio per un set di dati ActualCost per un intervallo di date specificato.

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

Le opzioni disponibili {ambito} per compilare l'URI appropriato sono documentate in Identificare l'ID della risorsa per un ambito.

Ecco i campi disponibili che è possibile specificare nel corpo della richiesta del report.

  • metrica: tipo di report richiesto. Può essere ActualCost o AmortizedCost. Non obbligatorio. Se il campo non viene specificato, per impostazione predefinita l'API crea un report ActualCost.
  • timePeriod: intervallo di date richiesto per i dati. Non obbligatorio. Questo parametro non può essere usato insieme ai parametri invoiceId o billingPeriod. Se un parametro timePeriod, invoiceId o billingPeriod non viene fornito nel corpo della richiesta, l'API restituisce il costo del mese attuale.
  • invoiceId: fattura richiesta per i dati. Questo parametro viene usato solo dai clienti del Contratto del cliente Microsoft. Inoltre, può essere usato solo nell'ambito del profilo di fatturazione o del cliente. Questo parametro non può essere usato insieme ai parametri billingPeriod o timePeriod. Se un parametro timePeriod, invoiceId o billingPeriod non viene fornito nel corpo della richiesta, l'API restituisce il costo del mese attuale.
  • billingPeriod: periodo di fatturazione richiesto per i dati. Questo parametro viene usato solo dai clienti del Contratto Enterprise. Usare il formato YearMonth, ad esempio 202008. Questo parametro non può essere usato insieme ai parametri invoiceId o timePeriod. Se un parametro timePeriod, invoiceId o billingPeriod non viene fornito nel corpo della richiesta, l'API restituisce il costo del mese attuale.

Risposta dell'API:

Response Status: 202 – Accepted: indica che la richiesta è stata accettata. Usare l'intestazione Location per controllare lo stato.

Intestazioni della risposta:

Nome Type Formato Descrizione
Ubicazione String URL per controllare il risultato dell'operazione asincrona.
Retry-After Intero Int32 Tempo previsto per la generazione del report. Attendere questo intervallo prima di eseguire di nuovo il polling.

Polling e download dei report

Eseguire il polling del report usando l'endpoint indicato nell'intestazione location della risposta dell'API dopo aver effettuato una richiesta di creazione di un report Dettagli dei costi. Ecco un esempio di richiesta di polling.

Richiesta di polling del report:

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

Response Status 200 – Succeeded: indica che la richiesta ha avuto successo.

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

Ecco un riepilogo dei campi chiave nella risposta dell'API:

  • manifestVersion: versione del contratto manifesto usata nella risposta. Al momento, la versione del manifesto rimane invariata per una determinata versione dell'API.
  • dataFormat: CSV è l'unico formato di file supportato fornito dall'API in questo momento.
  • blobCount: rappresenta il numero di singoli BLOB di dati presenti nel set di dati del report. È importante notare che questa API potrebbe offrire un set di dati partizionato di più file nella risposta. Progettare le pipeline di dati in modo da poter gestire i file partizionati di conseguenza. Il partizionamento consente di poter inserire set di dati di dimensioni maggiori più rapidamente andando avanti.
  • byteCount: numero totale di byte del set di dati del report in tutte le partizioni.
  • compressData: la compressione è sempre impostata su falso per la prima versione. L'API supporterà tuttavia la compressione in futuro.
  • requestContext: configurazione iniziale richiesta per il report.
  • BLOB: elenco di n file BLOB che includono il report completo.
    • blobLink: URL di download di una singola partizione BLOB.
    • byteCount: numero di byte della singola partizione BLOB.
  • validTill: data in cui il report non è più accessibile.