Hämta små kostnadsdatauppsättningar på begäran

Använd API:et kostnadsinformation för att hämta råa, oaggregerade kostnadsdata som motsvarar din Azure-faktura. API:et är användbart när din organisation behöver en lösning för att hämta data programmatiskt. Överväg att använda API:et om du vill analysera mindre kostnadsdatauppsättningar på 2 GB (2 miljoner rader) eller mindre. Du bör dock använda Exporter för pågående datainmatningsarbetsbelastningar och för nedladdning av större datamängder.

Om du vill hämta stora mängder exporterade data regelbundet kan du läsa Hämta datauppsättningar med stora kostnader som är återkommande med exporter.

Mer information om data i kostnadsinformation (kallades tidigare användningsinformation) finns i Mata in information om kostnader.

Rapporten Kostnadsinformation är endast tillgänglig för kunder med en företagsavtal eller Microsoft-kundavtal. Om du är MSDN-, betala per användning- eller Visual Studio-kund kan du läsa Hämta kostnadsinformation för en betala per användning-prenumeration.

Behörigheter

Om du vill använda API:et kostnadsinformation behöver du skrivskyddade behörigheter för funktioner och omfång som stöds.

Kommentar

API:et för kostnadsinformation stöder inte hanteringsgrupper för ea- eller MCA-kunder.

Mer information finns i:

Metodtips för API för kostnadsinformation

Microsoft rekommenderar följande metodtips när du använder API:et kostnadsinformation.

Schema för begäranden

Om du vill hämta de senaste kostnadsdata rekommenderar vi att du frågar högst en gång per dag. Rapporter uppdateras var fjärde timme. Om du ringer oftare får du identiska data. När du har laddat ned dina kostnadsdata för historiska fakturor ändras inte avgifterna om du inte uttryckligen meddelas. Vi rekommenderar att du cachelagr dina kostnadsdata i ett frågebart lager på din sida för att förhindra upprepade anrop för identiska data.

Segmentera dina begäranden

Dela upp dina anrop i små datumintervall för att få mer hanterbara filer som du kan ladda ned via nätverket. Vi rekommenderar till exempel segmentering per dag eller vecka om du har en stor Azure-kostnadsfil från månad till månad. Om du har omfång med en stor mängd kostnadsdata (till exempel ett faktureringskonto) kan du överväga att göra flera anrop till underordnade omfång så att du får mer hanterbara filer som du kan ladda ned. Du kan läsa mer om Cost Management-omfång i Förstå och arbeta med omfång. När du har laddat ned data använder du Excel för att analysera data ytterligare med filter och pivottabeller.

Om datamängden är mer än 2 GB (eller ungefär 2 miljoner rader) från månad till månad bör du överväga att använda Exporter som en mer skalbar lösning.

Svarstids- och hastighetsgränser

Anrop på begäran till API:et är hastighetsbegränsade. Den tid det tar att generera kostnadsinformationsfilen korreleras direkt med mängden data i filen. Om du vill förstå den förväntade tiden innan filen blir tillgänglig för nedladdning kan du använda retry-after huvudet i API-svaret.

Tidsintervall för datauppsättning som stöds

API:et för kostnadsinformation stöder ett maximalt tidsintervall för datauppsättningar på en månad per rapport. Historiska data kan hämtas i upp till 13 månader före aktuellt datum. Om du vill skapa en 13-månaders historisk datamängd rekommenderar vi att du placerar 13 anrop i en månads datauppsättningar under de senaste 13 månaderna. Om du vill hämta historiska data som är äldre än 13 månader använder du REST API för export.

Exempel på API-begäranden om kostnadsinformation

Följande exempelbegäranden används av Microsoft-kunder för att hantera vanliga scenarier. De data som returneras av begäran motsvarar det datum då kostnaden togs emot av faktureringssystemet. Informationen kan omfatta kostnader från flera fakturor. Det är ett asynkront API. Därför gör du ett första anrop för att begära rapporten och ta emot en avsökningslänk i svarshuvudet. Därifrån kan du avsöka länken tills rapporten är tillgänglig för dig.

retry-after Använd huvudet i API-svaret för att bestämma när API:et ska avsökas härnäst. Huvudet ger en uppskattad minsta tid som rapporten tar att generera.

Mer information om API-kontraktet finns i API för kostnadsinformation .

Faktisk kostnad jämfört med amorterad kostnad

Om du vill kontrollera om du vill se en rapport över faktiska kostnader eller amorterade kostnader ändrar du det värde som används för måttfältet i den första begärandetexten. De tillgängliga måttvärdena är ActualCost eller AmortizedCost.

Amorterade kostnader delar upp dina reservationsköp i dagliga segment och sprider dem under reservationsperiodens varaktighet. I stället för att se ett inköp på 365 USD den 1 januari ser du ett inköp på 1,00 USD varje dag från 1 januari till 31 december. Utöver grundläggande amorteringar omallokeras även kostnaderna och associeras med hjälp av de specifika resurser som använde reservationen. Om till exempel den dagliga kostnaden på 1,00 USD delades mellan två virtuella datorer skulle du se två avgifter på 0,50 USD för dagen. Om en del av reservationen inte används för dagen ser du en kostnad på USD 0,50 som är kopplad till den aktuella virtuella datorn och en annan avgift på USD 0,50 med kostnadstypen UnusedReservation. Oanvända reservationskostnader visas endast när amorterade kostnader visas.

På grund av förändringen i hur kostnaderna representeras är det viktigt att observera att vyer för faktisk kostnad och amorterade kostnader visar olika totala tal. I allmänhet minskar den totala kostnaden för månader över tid för ett reservationsköp när amorterade kostnader visas. Kostnaden för månader efter en ökning av reservationsköpet. Amortering är endast tillgängligt för reservationsköp och gäller för närvarande inte för Azure Marketplace-köp.

Första begäran om att skapa en rapport

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

Begärandetext:

Här är en exempelbegäran för en ActualCost-datamängd för ett angivet datumintervall.

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

Tillgängliga {scope} -alternativ för att skapa rätt URI finns dokumenterade i Identifiera resurs-ID:t för ett omfång.

Här är de tillgängliga fält som du kan ange i rapportförfrågningstexten.

  • metric – Den typ av rapport som begärs. Det kan vara antingen ActualCost eller AmortizedCost. Krävs inte. Om fältet inte har angetts är API:et standard för en ActualCost-rapport.
  • timePeriod – det begärda datumintervallet för dina data. Krävs inte. Den här parametern kan inte användas tillsammans med parametrarna invoiceId eller billingPeriod. Om parametern timePeriod, invoiceId eller billingPeriod inte anges i begärandetexten returnerar API:et den aktuella månadens kostnad.
  • invoiceId – den begärda fakturan för dina data. Den här parametern används endast av Microsoft-kundavtal kunder. Dessutom kan den endast användas i faktureringsprofilen eller kundomfånget. Den här parametern kan inte användas tillsammans med parametrarna billingPeriod eller timePeriod. Om parametern timePeriod, invoiceId eller billingPeriod inte anges i begärandetexten returnerar API:et den aktuella månadens kostnad.
  • billingPeriod – den begärda faktureringsperioden för dina data. Den här parametern används endast av företagsavtal kunder. Använd formatet YearMonth. Till exempel 202008. Den här parametern kan inte användas tillsammans med parametrarna invoiceId eller timePeriod. Om parametern timePeriod, invoiceId eller billingPeriod inte anges i begärandetexten returnerar API:et den aktuella månadens kostnad.

API-svar:

Response Status: 202 – Accepted : Anger att begäran godkändes. Location Använd rubriken för att kontrollera statusen.

Svarshuvuden:

Namn Type Format beskrivning
Location String URL:en för att kontrollera resultatet av den asynkrona åtgärden.
Försök igen efter Integer Int32 Den förväntade tiden för rapporten att genereras. Vänta tills den här varaktigheten har avsökts igen.

Rapportera avsökning och nedladdning

Sök efter rapporten med hjälp av slutpunkten som anges i location rubriken för API-svaret när du har skickat en begäran om att skapa en kostnadsinformationsrapport. Här är ett exempel på en avsökningsbegäran.

Begäran om rapportsökning:

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

Response Status 200 – Succeeded: Anger att begäran lyckades.

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

Här är en sammanfattning av nyckelfälten i API-svaret:

  • manifestVersion – versionen av manifestkontraktet som används i svaret. För närvarande förblir manifestversionen densamma för en viss API-version.
  • dataFormat – CSV är det enda filformat som stöds av API:et just nu.
  • blobCount – Representerar antalet enskilda datablobar som finns i rapportdatauppsättningen. Det är viktigt att observera att det här API:et kan ge en partitionerad datauppsättning med mer än en fil i svaret. Utforma dina datapipelines så att de kan hantera partitionerade filer i enlighet med detta. Med partitionering kan du mata in större datamängder snabbare framöver.
  • byteCount – det totala antalet byte för rapportdatauppsättningen för alla partitioner.
  • compressData – Komprimering är alltid inställt på false för den första versionen. API:et stöder dock komprimering i framtiden.
  • requestContext – den inledande konfigurationen som begärdes för rapporten.
  • blobar – En lista över n blobfiler som tillsammans utgör den fullständiga rapporten.
    • blobLink – nedladdnings-URL:en för en enskild blobpartition.
    • byteCount – byteantalet för den enskilda blobpartitionen.
  • validTill – det datum då rapporten inte längre är tillgänglig.

Nästa steg