Gegevenssets met kleine kosten op aanvraag ophalen

Gebruik de API kostendetails om onbewerkte, niet-samengevoegde kostengegevens op te halen die overeenkomen met uw Azure-factuur. De API is handig wanneer uw organisatie een programmatische oplossing voor het ophalen van gegevens nodig heeft. Overweeg het gebruik van de API als u kleinere kostengegevenssets van 2 GB (2 miljoen rijen) of minder wilt analyseren. U moet echter Exports gebruiken voor lopende werkbelastingen voor gegevensopname en voor het downloaden van grotere gegevenssets.

Als u regelmatig grote hoeveelheden geëxporteerde gegevens wilt ophalen, raadpleegt u Gegevenssets met grote kosten die regelmatig worden opgehaald met exports.

Zie Gegevens over kostengegevens opnemen voor meer informatie over de gegevens in kostengegevens (voorheen gebruiksgegevens genoemd).

Het rapport Kostendetails is alleen beschikbaar voor klanten met een Enterprise Overeenkomst of Microsoft-klantovereenkomst. Als u een MSDN-, betalen per gebruik- of Visual Studio-klant bent, raadpleegt u Kostendetails voor een abonnement op basis van betalen per gebruik.

Bevoegdheden

Als u de API kostendetails wilt gebruiken, hebt u alleen-lezenmachtigingen nodig voor ondersteunde functies en bereiken.

Notitie

De COST Details-API biedt geen ondersteuning voor beheergroepen voor EA- of MCA-klanten.

Zie voor meer informatie:

Best practices voor de API voor kostendetails

Microsoft raadt de volgende aanbevolen procedures aan wanneer u de API Voor kostendetails gebruikt.

Aanvraagschema

Als u de meest recente kostengegevens wilt ophalen, raden we u aan om maximaal één keer per dag een query uit te voeren. Rapporten worden elke vier uur vernieuwd. Als u vaker belt, ontvangt u identieke gegevens. Zodra u uw kostengegevens voor historische facturen hebt gedownload, worden de kosten niet gewijzigd, tenzij u expliciet op de hoogte wordt gesteld. We raden u aan om uw kostengegevens in een doorzoekbare opslag aan uw zijde in de cache op te slaan om herhaalde aanroepen voor identieke gegevens te voorkomen.

Uw aanvragen segmenteer

Deel uw aanroepen in kleine datumbereiken om meer beheerbare bestanden te krijgen die u via het netwerk kunt downloaden. We raden u bijvoorbeeld aan om te segmenteren op dag of per week als u een groot Azure-kostenbestand per maand hebt. Als u bereiken hebt met een grote hoeveelheid kostengegevens (bijvoorbeeld een factureringsaccount), kunt u overwegen om meerdere aanroepen naar onderliggende bereiken te plaatsen, zodat u beter beheerbare bestanden krijgt die u kunt downloaden. Zie Understand and work with scopes (Engelstalig) voor meer informatie over bereiken in Cost Management. Nadat u de gegevens hebt gedownload, gebruikt u Excel om gegevens verder te analyseren met filters en draaitabellen.

Als uw gegevensset meer dan 2 GB (of ongeveer 2 miljoen rijen) maandelijks is, kunt u Overwegen om Exports te gebruiken als een schaalbare oplossing.

Latentie- en frequentielimieten

Aanroepen op aanvraag naar de API zijn beperkt. De tijd die nodig is om uw bestand met kostendetails te genereren, wordt rechtstreeks gecorreleerd met de hoeveelheid gegevens in het bestand. Als u de verwachte hoeveelheid tijd wilt begrijpen voordat uw bestand beschikbaar is voor downloaden, kunt u de retry-after header in het API-antwoord gebruiken.

Ondersteunde tijdsbereiken voor gegevenssets

De Api voor kostendetails ondersteunt een maximale tijdsbereik voor gegevenssets van één maand per rapport. Historische gegevens kunnen maximaal 13 maanden vóór de huidige datum worden opgehaald. Als u een historische gegevensset van 13 maanden wilt seeden, raden we u aan om gedurende de afgelopen 13 maanden 13 aanroepen in gegevenssets van één maand te plaatsen. Gebruik de EXPORTS REST API om historische gegevens op te halen die ouder zijn dan 13 maanden.

Voorbeeld van API-aanvragen voor kostendetails

De volgende voorbeeldaanvragen worden door Microsoft-klanten gebruikt om veelvoorkomende scenario's aan te pakken. De gegevens die door de aanvraag worden geretourneerd, komen overeen met de datum waarop de kosten zijn ontvangen door het factureringssysteem. Dit kan kosten van meerdere facturen bevatten. Het is een asynchrone API. Als zodanig plaatst u een eerste aanroep om uw rapport aan te vragen en een polling-koppeling te ontvangen in de antwoordheader. Van daaruit kunt u de opgegeven koppeling peilen totdat het rapport voor u beschikbaar is.

Gebruik de retry-after header in het API-antwoord om te bepalen wanneer de API hierna moet worden gepeild. De header biedt een geschatte minimale tijd die uw rapport nodig heeft om te genereren.

Zie de API voor kostendetails voor meer informatie over het API-contract.

Werkelijke kosten versus afgeschreven kosten

Als u wilt bepalen of u een werkelijke kosten- of afgeschreven kostenrapport wilt zien, wijzigt u de waarde die wordt gebruikt voor het metrische veld in de eerste aanvraagbody. De beschikbare metrische waarden zijn ActualCost of AmortizedCost.

Afgeschreven kosten worden uw reserveringsaankopen opgesplitst in dagelijkse segmenten en worden verdeeld over de duur van de reserveringsperiode. Zo ziet u in bijvoorbeeld in plaats van een aankoop van € 365 op 1 januari, een aankoop van € 1,00 voor elke dag van 1 januari tot en met 31 december. Naast de basisafschrijving worden de kosten ook opnieuw toegewezen en gekoppeld aan de specifieke resources die de reservering hebben gebruikt. Als de dagelijkse kosten van $ 1,00 bijvoorbeeld zijn gesplitst tussen twee virtuele machines, ziet u twee kosten voor $ 0,50 voor de dag. Als een deel van de reservering voor een bepaalde dag niet wordt gebruikt, ziet u één kostenpost van € 0,50 die is gekoppeld aan de desbetreffende virtuele machine en een extra kostenpost van € 0,50 met een kostentype UnusedReservation. Ongebruikte reserveringskosten worden alleen weergegeven bij het weergeven van afgeschreven kosten.

Vanwege de wijziging in de manier waarop kosten worden weergegeven, is het belangrijk om te weten dat de werkelijke kosten en afgeschreven kostenweergaven verschillende totale getallen weergeven. Over het algemeen nemen de totale kosten van maanden in de loop van de tijd voor een reserveringsaankoop af wanneer de afgeschreven kosten worden weergegeven. De kosten van maanden na een reserveringsaankoopverhoging. Afschrijving is alleen beschikbaar voor reserveringsaankopen en is momenteel niet van toepassing op Azure Marketplace-aankopen.

Eerste aanvraag voor het maken van een rapport

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

Aanvraagbody:

Hier volgt een voorbeeldaanvraag voor een ActualCost-gegevensset voor een opgegeven datumbereik.

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

Beschikbare {scope} -opties voor het bouwen van de juiste URI worden beschreven op De resource-id voor een bereik identificeren.

Dit zijn de beschikbare velden die u kunt opgeven in de hoofdtekst van de rapportaanvraag.

  • metrische waarde : het type rapport dat is aangevraagd. Dit kan ActualCost of AmortizedCost zijn. Niet vereist. Als het veld niet is opgegeven, wordt de API standaard ingesteld op een ActualCost-rapport.
  • timePeriod : het aangevraagde datumbereik voor uw gegevens. Niet vereist. Deze parameter kan niet worden gebruikt naast de parameters invoiceId of billingPeriod. Als een timePeriod-, invoiceId- of billingPeriod-parameter niet wordt opgegeven in de aanvraagbody, retourneert de API de kosten van de huidige maand.
  • invoiceId : de aangevraagde factuur voor uw gegevens. Deze parameter wordt alleen gebruikt door Microsoft-klantovereenkomst klanten. Bovendien kan deze alleen worden gebruikt op het bereik factureringsprofiel of klant. Deze parameter kan niet worden gebruikt naast de parameters billingPeriod of timePeriod. Als een timePeriod-, invoiceId- of billingPeriod-parameter niet wordt opgegeven in de aanvraagbody, retourneert de API de kosten van de huidige maand.
  • billingPeriod : de aangevraagde factureringsperiode voor uw gegevens. Deze parameter wordt alleen gebruikt door Enterprise Overeenkomst klanten. Gebruik de YearMonth-indeling. Bijvoorbeeld 202008. Deze parameter kan niet worden gebruikt naast de parameters invoiceId of timePeriod. Als een timePeriod-, invoiceId- of billingPeriod-parameter niet wordt opgegeven in de aanvraagbody, retourneert de API de kosten van de huidige maand.

API-antwoord:

Response Status: 202 – Accepted : Geeft aan dat de aanvraag is geaccepteerd. Gebruik de Location header om de status te controleren.

Antwoordheaders:

Name Type Indeling Beschrijving
Locatie String De URL om het resultaat van de asynchrone bewerking te controleren.
Opnieuw proberen na Geheel getal Int32 De verwachte tijd voor het genereren van uw rapport. Wacht op deze duur voordat de poll opnieuw wordt uitgevoerd.

Polling en downloaden van rapporten

Peiling voor het rapport met behulp van het eindpunt dat is opgegeven in de location header van het API-antwoord nadat u een aanvraag hebt ingediend om een rapport met kostendetails te maken. Hier volgt een voorbeeld van een polling-aanvraag.

Aanvraag voor polling rapporteren:

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

Response Status 200 – Succeeded: Geeft aan dat de aanvraag is geslaagd.

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

Hier volgt een samenvatting van de sleutelvelden in het API-antwoord:

  • manifestVersion : de versie van het manifestcontract dat wordt gebruikt in het antwoord. Op dit moment blijft de manifestversie hetzelfde voor een bepaalde API-versie.
  • dataFormat - CSV is de enige ondersteunde bestandsindeling die op dit moment door de API wordt geleverd.
  • blobCount : vertegenwoordigt het aantal afzonderlijke gegevens-blobs dat aanwezig is in de rapportgegevensset. Het is belangrijk te weten dat deze API mogelijk een gepartitioneerde gegevensset van meer dan één bestand in het antwoord biedt. Ontwerp uw gegevenspijplijnen om gepartitioneerde bestanden dienovereenkomstig te kunnen verwerken. Met partitionering kunt u sneller grotere gegevenssets opnemen.
  • byteCount : het totale byteaantal van de rapportgegevensset voor alle partities.
  • compressData - Compressie is altijd ingesteld op false voor de eerste release. De API biedt echter ondersteuning voor compressie in de toekomst.
  • requestContext : de initiële configuratie die is aangevraagd voor het rapport.
  • blobs : een lijst met n blobbestanden die samen het volledige rapport vormen.
    • blobLink : de download-URL van een afzonderlijke blobpartitie.
    • byteCount : het byteaantal van de afzonderlijke blobpartitie.
  • validTill : de datum waarop het rapport niet meer toegankelijk is.

Volgende stappen