Uzyskiwanie niewielkich kosztów zestawów danych na żądanie

Użyj interfejsu API szczegółów kosztów, aby uzyskać nieprzetworzone, nieagregowane dane kosztów odpowiadające rachunku za korzystanie z platformy Azure. Interfejs API jest przydatny, gdy organizacja potrzebuje rozwiązania pobierającego dane w sposób programistyczny. Rozważ użycie interfejsu API, jeśli chcesz przeanalizować mniejsze zestawy danych kosztów 2 GB (2 miliony wierszy) lub mniej. Jednak należy użyć opcji Eksporty dla bieżących obciążeń pozyskiwania danych i pobierania większych zestawów danych.

Jeśli chcesz regularnie pobierać duże ilości eksportowanych danych, zobacz Pobieranie zestawów danych z dużymi kosztami cyklicznie z eksportami.

Aby dowiedzieć się więcej na temat danych w szczegółach kosztów (wcześniej nazywanych szczegółami użycia), zobacz Pozyskiwanie danych szczegółów kosztów.

Raport Szczegóły kosztów jest dostępny tylko dla klientów z Umowa Enterprise lub Umowa z Klientem Microsoft. Jeśli jesteś klientem MSDN, płatnością zgodnie z rzeczywistym użyciem lub programem Visual Studio, zobacz Pobieranie szczegółów kosztów subskrypcji z płatnością zgodnie z rzeczywistym użyciem.

Uprawnienia

Aby korzystać z interfejsu API szczegółów kosztów, musisz mieć uprawnienia tylko do odczytu dla obsługiwanych funkcji i zakresów.

Uwaga

Interfejs API szczegółów kosztów nie obsługuje grup zarządzania dla klientów z umowami EA lub MCA.

Aby uzyskać więcej informacji, zobacz:

Najlepsze rozwiązania dotyczące interfejsu API szczegółów kosztów

Firma Microsoft zaleca następujące najlepsze rozwiązania podczas korzystania z interfejsu API szczegółów kosztów.

Harmonogram żądań

Jeśli chcesz uzyskać najnowsze dane dotyczące kosztów, zalecamy wykonywanie zapytań co najwyżej raz dziennie. Raporty są odświeżane co cztery godziny. Jeśli dzwonisz częściej, otrzymujesz identyczne dane. Po pobraniu danych kosztów dla faktur historycznych opłaty nie ulegają zmianie, chyba że jawnie otrzymasz powiadomienie. Zalecamy buforowanie danych kosztów w magazynie z możliwością wykonywania zapytań, aby zapobiec powtarzającym się wywołaniom identycznych danych.

Fragmentowanie żądań

Podziel wywołania na małe zakresy dat, aby uzyskać bardziej zarządzane pliki, które można pobrać za pośrednictwem sieci. Na przykład zalecamy fragmentowanie według dnia lub tygodnia, jeśli masz duży plik kosztów platformy Azure od miesiąca do miesiąca. Jeśli masz zakresy z dużą ilością danych kosztów (na przykład konto rozliczeniowe), rozważ umieszczenie wielu wywołań w zakresach podrzędnych, aby uzyskać bardziej zarządzane pliki, które można pobrać. Aby uzyskać więcej informacji na temat zakresów usługi Cost Management, zobacz Omówienie zakresów i praca z nimi. Po pobraniu danych użyj programu Excel, aby dokładniej analizować dane za pomocą filtrów i tabel przestawnych.

Jeśli zestaw danych jest większy niż 2 GB (lub około 2 miliony wierszy) miesięcznie, rozważ użycie opcji Eksporty jako bardziej skalowalne rozwiązanie.

Opóźnienia i limity szybkości

Wywołania na żądanie do interfejsu API są ograniczone. Czas potrzebny na wygenerowanie pliku szczegółów kosztów jest bezpośrednio skorelowany z ilością danych w pliku. Aby zrozumieć oczekiwany czas, zanim plik stanie się dostępny do pobrania, możesz użyć nagłówka retry-after w odpowiedzi interfejsu API.

Obsługiwane zakresy czasu zestawu danych

Interfejs API szczegółów kosztów obsługuje maksymalny zakres czasu zestawu danych wynoszący jeden miesiąc na raport. Dane historyczne można pobrać przez maksymalnie 13 miesięcy przed bieżącą datą. Jeśli chcesz zainicjować 13-miesięczny zestaw danych historycznych, zalecamy umieszczenie 13 wywołań w zestawach danych z ostatnich 13 miesięcy. Aby pobrać dane historyczne starsze niż 13 miesięcy, użyj interfejsu API REST eksportów.

Przykładowe żądania interfejsu API szczegółów kosztów

Następujące przykładowe żądania są używane przez klientów firmy Microsoft do obsługi typowych scenariuszy. Dane zwrócone przez żądanie odpowiadają dacie odebrania kosztu przez system rozliczeniowy. Mogą obejmować koszty z wielu faktur. Jest to asynchroniczny interfejs API. W związku z tym należy umieścić początkowe wywołanie w celu zażądania raportu i odebrania linku sondowania w nagłówku odpowiedzi. Z tego miejsca możesz sondować podany link do momentu udostępnienia raportu.

Użyj nagłówka retry-after w odpowiedzi interfejsu API, aby określić, kiedy sondować interfejs API. Nagłówek zawiera szacowany minimalny czas generowania raportu.

Aby dowiedzieć się więcej na temat kontraktu interfejsu API, zobacz Interfejs API szczegółów kosztów.

Koszt rzeczywisty a koszt zamortyzowany

Aby określić, czy chcesz wyświetlić raport kosztów rzeczywistych, czy zamortyzowanych kosztów, zmień wartość używaną dla pola metryki w początkowej treści żądania. Dostępne wartości metryk to ActualCost lub AmortizedCost.

Koszt zamortyzowany dzieli zakupy rezerwacji na codzienne fragmenty i rozkłada je w czasie trwania okresu rezerwacji. Na przykład zamiast zakupu na kwotę 365 USD 1 stycznia, każdego dnia w okresie od 1 stycznia do 31 grudnia będzie wyświetlany zakup w wysokości 1,00 USD. Oprócz podstawowej amortyzacji koszty są również ponownie przydzielane i skojarzone przy użyciu określonych zasobów, które korzystały z rezerwacji. Jeśli na przykład opłata dzienna w wysokości 1,00 USD została podzielona między dwie maszyny wirtualne, zobaczysz dwa opłaty w wysokości 0,50 USD za dzień. Jeśli część rezerwacji nie została wykorzystana danego dnia, zobaczysz jedną opłatę 0,50 USD skojarzoną z odpowiednią maszyną wirtualną i drugą opłatę 0,50 USD typu UnusedReservation. Nieużywane koszty rezerwacji są widoczne tylko podczas wyświetlania kosztu zamortyzowanego.

Ze względu na zmianę sposobu przedstawiania kosztów należy pamiętać, że widoki kosztów rzeczywistych i amortyzowanych kosztów pokazują różne liczby całkowite. Ogólnie rzecz biorąc, całkowity koszt miesięcy w czasie zakupu rezerwacji zmniejszy się podczas wyświetlania kosztów zamortyzowanych. Koszt miesięcy po wzroście zakupu rezerwacji. Amortyzacja jest dostępna tylko w przypadku zakupów rezerwacji i obecnie nie ma zastosowania do zakupów w witrynie Azure Marketplace.

Początkowe żądanie utworzenia raportu

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

Treść żądania:

Oto przykładowe żądanie zestawu danych ActualCost dla określonego zakresu dat.

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

Dostępne opcje {scope} do utworzenia odpowiedniego identyfikatora URI są udokumentowane w temacie Identyfikowanie identyfikatora zasobu dla zakresu.

Poniżej przedstawiono dostępne pola, które można podać w treści żądania raportu.

  • metric — żądany typ raportu. Może to być koszt rzeczywisty lub amortyzowany koszt. Niewymagane. Jeśli pole nie zostanie określone, interfejs API zostanie domyślnie ustawiony na raport ActualCost.
  • timePeriod — żądany zakres dat dla danych. Niewymagane. Tego parametru nie można używać razem z parametrami invoiceId lub billingPeriod. Jeśli parametr timePeriod, invoiceId lub billingPeriod nie jest podany w treści żądania interfejs API zwraca koszt bieżącego miesiąca.
  • invoiceId — żądana faktura dla danych. Ten parametr jest używany tylko przez klientów Umowa z Klientem Microsoft. Ponadto można go używać tylko w obszarze Profil rozliczeniowy lub Zakres klienta. Tego parametru nie można używać razem z parametrami billingPeriod lub timePeriod. Jeśli parametr timePeriod, invoiceId lub billingPeriod nie jest podany w treści żądania interfejs API zwraca koszt bieżącego miesiąca.
  • billingPeriod — żądany okres rozliczeniowy dla danych. Ten parametr jest używany tylko przez klientów Umowa Enterprise. Użyj formatu YearMonth. Na przykład 202008. Tego parametru nie można używać razem z parametrami invoiceId lub timePeriod. Jeśli parametr timePeriod, invoiceId lub billingPeriod nie jest podany w treści żądania interfejs API zwraca koszt bieżącego miesiąca.

Odpowiedź interfejsu API:

Response Status: 202 – Accepted : wskazuje, że żądanie zostało zaakceptowane. Użyj nagłówka Location , aby sprawdzić stan.

Nagłówki odpowiedzi:

Nazwisko Typ Format opis
Lokalizacja String Adres URL do sprawdzenia wyniku operacji asynchronicznej.
Ponów próbę po Integer Int32 Oczekiwany czas wygenerowania raportu. Poczekaj na ten czas trwania przed ponownym sondowaniem.

Sondowanie i pobieranie raportów

Sonduj raport przy użyciu punktu końcowego podanego w location nagłówku odpowiedzi interfejsu API po utworzeniu żądania utworzenia raportu Szczegóły kosztów. Oto przykładowe żądanie sondowania.

Żądanie sondowania raportu:

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

Response Status 200 – Succeeded: wskazuje, że żądanie zakończyło się pomyślnie.

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

Oto podsumowanie kluczowych pól w odpowiedzi interfejsu API:

  • manifestVersion — wersja kontraktu manifestu, która jest używana w odpowiedzi. Obecnie wersja manifestu pozostaje taka sama dla danej wersji interfejsu API.
  • dataFormat — plik CSV jest obecnie jedynym obsługiwanym formatem pliku udostępnianym przez interfejs API.
  • blobCount — reprezentuje liczbę pojedynczych obiektów blob danych znajdujących się w zestawie danych raportu. Należy pamiętać, że ten interfejs API może udostępnić partycjonowany zestaw danych zawierający więcej niż jeden plik w odpowiedzi. Zaprojektuj potoki danych, aby móc odpowiednio obsługiwać partycjonowane pliki. Partycjonowanie umożliwia szybsze pozyskiwanie większych zestawów danych.
  • byteCount — łączna liczba bajtów zestawu danych raportu we wszystkich partycjach.
  • compressData — kompresja jest zawsze ustawiona na wartość false dla pierwszej wersji. Jednak interfejs API będzie obsługiwać kompresję w przyszłości.
  • requestContext — początkowa konfiguracja żądana dla raportu.
  • Obiekty blob — lista n plików obiektów blob, które razem składają się na pełny raport.
    • blobLink — adres URL pobierania pojedynczej partycji obiektu blob.
    • byteCount — liczba bajtów pojedynczej partycji obiektu blob.
  • validTill — data, gdy raport nie jest już dostępny.

Następne kroki