Mendapatkan himpunan data biaya kecil sesuai dengan permintaan

Gunakan API Detail Biaya untuk mendapatkan data biaya mentah yang tidak teragregasi yang sesuai dengan tagihan Azure Anda. API berguna saat organisasi Anda memerlukan solusi pengambilan data terprogram. Pertimbangkan untuk menggunakan API jika Anda ingin menganalisis himpunan data biaya yang lebih kecil sebesar 2 GB (2 juta baris) atau kurang. Namun, Anda harus menggunakan Ekspor untuk beban kerja penyerapan data yang sedang berlangsung dan untuk mengunduh himpunan data yang lebih besar.

Jika Anda ingin mendapatkan data yang diekspor dalam jumlah besar secara teratur, lihat Mengambil himpunan data biaya besar berulang dengan ekspor.

Untuk mempelajari selengkapnya tentang data dalam detail biaya (sebelumnya disebut sebagai detail penggunaan), lihat Menyerap data detail biaya.

Laporan Detail Biaya hanya tersedia untuk pelanggan dengan Perjanjian Enterprise atau Perjanjian Pelanggan Microsoft. Jika Anda adalah pelanggan MSDN, bayar sesuai penggunaan, atau Visual Studio, lihat Mendapatkan detail biaya untuk langganan bayar sesuai penggunaan.

Izin

Untuk menggunakan API Detail Biaya, Anda memerlukan izin baca saja untuk fitur dan cakupan yang didukung.

Catatan

API Detail Biaya tidak mendukung grup manajemen untuk pelanggan EA atau MCA.

Untuk informasi selengkapnya, lihat:

Praktik terbaik API Detail Biaya

Microsoft merekomendasikan praktik terbaik berikut ketika Anda menggunakan API Detail Biaya.

Jadwal permintaan

Jika Anda ingin mendapatkan data biaya terbaru, sebaiknya Anda melakukan kueri paling banyak sekali per hari. Laporan diperbarui setiap empat jam. Jika Anda lebih sering menelepon, Anda menerima data yang identik. Setelah Anda mengunduh data biaya untuk faktur historis, biaya tidak berubah kecuali Anda diberi tahu secara eksplisit. Kami merekomendasikan untuk menyimpan data biaya Anda dalam cache di penyimpanan yang dapat dimintai keterangannya di sisi Anda untuk mencegah panggilan berulang untuk data yang sama.

Membagi permintaan Anda

Bagi panggilan Anda ke dalam rentang tanggal yang kecil untuk mendapatkan lebih banyak file yang dapat dikelola yang dapat Anda unduh melalui jaringan. Misalnya, kami merekomendasikan pembagian menurut hari atau minggu jika Anda memiliki file biaya Azure yang besar dari bulan ke bulan. Jika Anda memiliki cakupan dengan data biaya dalam jumlah besar (misalnya Akun Penagihan), pertimbangkan untuk melakukan beberapa panggilan ke cakupan turunan, sehingga Anda mendapatkan lebih banyak file yang dapat dikelola dan dapat Anda unduh. Untuk informasi selengkapnya tentang cakupan Cost Management, lihat Memahami dan bekerja dengan lingkup. Setelah Anda mengunduh data, gunakan Excel untuk menganalisis data lebih lanjut dengan filter dan tabel pivot.

Jika himpunan data Anda lebih dari 2 GB (atau kira-kira 2 juta baris) dari bulan ke bulan, pertimbangkan untuk menggunakan Ekspor sebagai solusi yang lebih scalable.

Latensi dan batas tarif

Panggilan sesuai permintaan ke API dibatasi tarifnya. Waktu yang diperlukan untuk menghasilkan file detail biaya Anda berkorelasi langsung dengan jumlah data dalam file. Untuk memahami jumlah waktu yang diharapkan sebelum file Anda tersedia untuk diunduh, Anda dapat menggunakan header retry-after dalam respons API.

Rentang waktu himpunan data yang didukung

API Detail Biaya mendukung rentang waktu himpunan data maksimum satu bulan per laporan. Data historis dapat diambil hingga 13 bulan sebelum tanggal saat ini. Jika Anda ingin menyemai himpunan data historis 13 bulan, sebaiknya tempatkan 13 panggilan dalam satu bulan himpunan data selama 13 bulan terakhir. Untuk mengambil data historis yang lebih lama dari 13 bulan, gunakan REST API Ekspor.

Contoh permintaan API Detail Biaya

Contoh permintaan berikut digunakan oleh pelanggan Microsoft untuk mengatasi skenario umum yang mungkin Anda temui. Data yang dikembalikan oleh permintaan sesuai dengan tanggal ketika biaya diterima oleh sistem penagihan. Mungkin termasuk biaya dari beberapa faktur. Ini adalah API asinkron. Dengan demikian, Anda melakukan panggilan awal untuk meminta laporan Anda dan menerima tautan polling di header respons. Dari sana, Anda dapat melakukan polling tautan yang disediakan hingga laporan tersedia untuk Anda.

Gunakan header retry-after dalam respons API untuk menentukan kapan harus melakukan polling API berikutnya. Header menyediakan perkiraan waktu minimum yang diperlukan laporan Anda untuk dihasilkan.

Untuk mempelajari selengkapnya tentang kontrak API, lihat API Detail Biaya.

Biaya aktual versus biaya yang diamortisasi

Untuk mengontrol apakah Anda ingin melihat biaya aktual atau laporan biaya yang diamortisasi, ubah nilai yang digunakan untuk bidang metrik di isi permintaan awal. Nilai metrik yang tersedia adalah ActualCost atau AmortizedCost.

Biaya diamortisasi memecah pembelian reservasi Anda menjadi potongan harian dan menyebarkannya selama jangka waktu reservasi. Misalnya, alih-alih melihat pembelian sebesar $365 pada 1 Januari, Anda akan melihat pembelian sebesar $1,00 setiap hari dari 1 Januari hingga 31 Desember. Selain amortisasi dasar, biaya juga dialokasikan kembali dan dikaitkan dengan menggunakan sumber daya tertentu yang digunakan reservasi. Misalnya, jika biaya harian $1,00 dibagi antara dua komputer virtual, Anda akan melihat dua biaya sebesar $0,50 untuk hari itu. Jika bagian dari reservasi tidak digunakan untuk hari itu, Anda akan melihat satu biaya $0,50 yang terkait dengan komputer virtual yang berlaku dan biaya $0,50 lainnya dengan jenis biaya UnusedReservation. Biaya reservasi yang tidak digunakan hanya terlihat saat melihat biaya yang diamortisasi.

Karena perubahan bagaimana biaya diwakili, penting untuk dicatat bahwa biaya aktual dan tampilan biaya yang diamortisasi menunjukkan jumlah total yang berbeda. Secara umum, total biaya bulan dari waktu ke waktu untuk pembelian reservasi akan berkurang saat melihat biaya yang diamortisasi. Biaya bulan setelah peningkatan pembelian reservasi. Amortisasi hanya tersedia untuk pembelian reservasi dan saat ini tidak berlaku untuk pembelian Azure Marketplace.

Permintaan awal untuk membuat laporan

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

Isi permintaan:

Berikut adalah contoh permintaan himpunan data ActualCost untuk rentang tanggal tertentu.

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

Opsi {scope} yang tersedia untuk membangun URI yang tepat didokumenkan di Mengidentifikasi ID sumber daya untuk cakupan.

Berikut adalah bidang yang tersedia yang dapat Anda berikan di isi permintaan laporan.

  • metrik - Jenis laporan yang diminta. Ini dapat berupa ActualCost atau AmortizedCost. Tidak wajib. Jika bidang tidak ditentukan, API default ke laporan ActualCost.
  • timePeriod - Rentang tanggal yang diminta untuk data Anda. Tidak wajib. Parameter ini tidak dapat digunakan bersama dengan parameter invoiceId atau billingPeriod. Jika parameter timePeriod, invoiceId, atau billingPeriod tidak disediakan dalam isi permintaan, API mengembalikan biaya bulan ini.
  • invoiceId - Faktur yang diminta untuk data Anda. Parameter ini hanya digunakan oleh pelanggan Perjanjian Pelanggan Microsoft. Selain itu, parameter ini hanya dapat digunakan di Profil Penagihan atau cakupan Pelanggan. Parameter ini tidak dapat digunakan bersama parameter billingPeriod atau timePeriod. Jika parameter timePeriod, invoiceId, atau billingPeriod tidak disediakan dalam isi permintaan, API mengembalikan biaya bulan ini.
  • billingPeriod - Periode penagihan yang diminta untuk data Anda. Parameter ini hanya digunakan oleh pelanggan Perjanjian Enterprise. Gunakan format YearMonth. Misalnya, 202008. Parameter ini tidak dapat digunakan bersama dengan parameter invoiceId atau timePeriod. Jika parameter timePeriod, invoiceId, atau billingPeriod tidak disediakan dalam isi permintaan, API mengembalikan biaya bulan ini.

Respons API:

Response Status: 202 – Accepted : Menunjukkan bahwa permintaan diterima. Gunakan header Location untuk memeriksa status.

Header respons:

Nama Jenis Format Deskripsi
Lokasi String URL untuk memeriksa hasil operasi asinkron.
Retry-After Bilangan bulat Int32 Waktu yang diharapkan untuk membuat laporan Anda. Tunggu durasi ini sebelum polling lagi.

Laporkan polling dan unduh

Polling untuk laporan menggunakan titik akhir yang disediakan di location header respons API setelah Anda membuat permintaan untuk membuat laporan Detail Biaya. Berikut adalah contoh permintaan polling.

Laporkan permintaan polling:

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

Response Status 200 – Succeeded: Menunjukkan bahwa permintaan berhasil.

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

Berikut adalah ringkasan bidang utama dalam respons API:

  • manifestVersion - Versi kontrak manifes yang digunakan dalam respons. Saat ini, versi manifes tetap sama untuk versi API tertentu.
  • dataFormat - CSV adalah satu-satunya format file yang didukung yang disediakan oleh API saat ini.
  • blobCount - Menunjukkan jumlah blob data individual yang ada dalam himpunan data laporan. Penting untuk dicatat bahwa API ini mungkin menyediakan himpunan data yang dipartisi lebih dari satu file dalam respons. Desain alur data Anda agar dapat menangani file yang dipartisi dengan sesuai. Pemartisian memungkinkan Anda untuk dapat menyerap himpunan data yang lebih besar dengan lebih cepat bergerak maju.
  • byteCount - Jumlah byte total himpunan data laporan di semua partisi.
  • compressData - Kompresiesi selalu diatur ke false untuk rilis pertama. Namun, API akan mendukung kompresi di masa depan.
  • requestContext - Konfigurasi awal yang diminta untuk laporan.
  • blob - Daftar file blob n yang bersama-sama membentuk laporan lengkap.
    • blobLink - URL unduhan partisi blob individual.
    • byteCount - Jumlah byte partisi blob individu.
  • validTill - Tanggal saat laporan tidak lagi dapat diakses.

Langkah berikutnya