Mendapatkan informasi harga Google Cloud yang tersedia secara publik

Halaman ini menunjukkan cara menggunakan Cloud Billing Catalog API untuk:

  • Mendapatkan daftar semua layanan publik termasuk metadata yang relevan tentang setiap layanan.
  • Dapatkan daftar semua SKU publik dalam layanan, termasuk:
    • Deskripsi SKU yang dapat dibaca manusia.
    • Harga publik SKU.
    • Region tempat SKU tersedia untuk dibeli.
    • Data kategorisasi tentang SKU.

Jika memiliki harga kontrak kustom, Anda dapat menggunakan Pricing API untuk mendapatkan harga yang berlaku untuk akun Penagihan Cloud Anda.

Sebelum memulai

Sebelum dapat menggunakan Cloud Billing Catalog API, Anda harus mengaktifkan Cloud Billing API dan mendapatkan kunci API.

Aktifkan API Cloud Billing.

Mengaktifkan API

Saat diminta untuk mengonfirmasi project Google Cloud yang ingin Anda gunakan untuk Cloud Billing Catalog API, sebaiknya gunakan project yang disiapkan untuk menampung semua kebutuhan FinOps dan administrasi penagihan untuk akun Penagihan Cloud, termasuk tempat Cloud Billing API diaktifkan.

Pelajari lebih lanjut manfaat menggunakan project yang berfokus pada FinOps untuk kasus penggunaan administrasi penagihan Anda.

Mendapatkan kunci API

Memanggil Cloud Billing Catalog API memerlukan Kunci API. Anda dapat menemukan detail tentang Kunci API di artikel Menggunakan Kunci API.

Mencantumkan layanan publik dari katalog

Pada langkah ini, Anda akan mendapatkan daftar semua layanan publik, termasuk metadata yang relevan tentang setiap layanan.

Cuplikan kode berikut mencantumkan semua layanan publik dalam katalog.

Permintaan:

GET https://cloudbilling.googleapis.com/v1/services?key=<var>API_KEY</var>

Respons:

{
  "services": [
    {
      "name": "[SERVICE_NAME]",
      "serviceId": "[SERVICE_ID]",
      "displayName": "[DISPLAY_NAME]",
    },
    [...]
  ],
  "nextPageToken": "[NEXT_PAGE_TOKEN]"
}

Dengan keterangan:

  • [SERVICE_NAME] adalah nama resource untuk layanan.
  • [SERVICE_ID] adalah ID untuk layanan.
  • [DISPLAY_NAME] adalah nama tampilan yang dapat dibaca manusia untuk layanan.

Hasil akan diberi nomor halaman dan dibatasi hingga 5.000 SKU per halaman. Responsnya mencakup nextPageToken yang dapat Anda gunakan untuk mendapatkan 5.000 hasil berikutnya. Untuk mengambil batch berikutnya, tetapkan pageToken=[NEXT_PAGE_TOKEN]. Untuk mengurangi jumlah SKU per halaman, tetapkan pageSize=[CUSTOM_PAGE_SIZE]. Setelah semua item tercantum, tidak akan ada token yang ditampilkan.

Mendapatkan daftar SKU untuk layanan

Cuplikan kode berikut mencantumkan SKU dalam katalog untuk layanan yang ditentukan:

Permintaan:

GET https://cloudbilling.googleapis.com/v1/services/SERVICE_ID/skus?key=<var>API_KEY</var>

Dengan keterangan:

  • SERVICE_ID adalah ID layanan induk.

Respons:

{
  "skus": [
    {
        "name": "[SKU_NAME]",
        "skuId": "[SKU_ID]",
        "description": "[SKU_DESCRIPTION]",
        "category": {
            "serviceDisplayName": "[SVC_DISPLAY_NAME]",
            "resourceFamily": "[FAMILY]",
            "resourceGroup": "[GROUP]",
            "usageType": "[USAGE]",
        },
        "serviceRegions": [
          "[REGION]"
        ],
        "pricingInfo": [
          {
              "effectiveTime": "[TIME]",
              "summary": "[SUMMARY]",
              "pricingExpression": {
                  "usageUnit": "[USAGE_UNIT]",
                  "usageUnitDescription": "[USAGE_UNIT_DESCRIPTION]",
                  "baseUnit": "[BASE_UNIT]",
                  "baseUnitDescription": "[BASE_UNIT_DESCRIPTION]",
                  "baseUnitConversionFactor": [BASE_CONVERSION_FACTOR],
                  "displayQuantity": [DISPLAY_QUANTITY],
                  "tieredRates": [
                    {
                        "startUsageAmount": [START_AMOUNT],
                        "unitPrice": {
                            "currencyCode": "[CURRENCY_CODE]",
                            "units": [UNITS],
                            "nanos": [NANOS],
                        },
                    }
                  ],
              },
              "aggregationInfo": {
                  "aggregationLevel": enum("[AGGREGATION_LEVEL]"),
                  "aggregationInterval": enum("[AGGREGATION_INTERVAL]"),
                  "aggregationCount": [AGGREGATION_COUNT],
              },
              "currencyConversionRate": [CONVERSION_RATE],
          }
        ],
        "serviceProviderName": "[SERVICE_PROVIDER]",
        "geoTaxonomy": {
          "type": "[TAXONOMY_TYPE]",
          "regions": [
          "[REGION]"
        ]
      }
    }
  ],
  "nextPageToken": "[NEXT_PAGE_TOKEN]"
}

Dengan keterangan:

  • [SKU_NAME] adalah nama resource untuk SKU dalam bentuk services/{SERVICE_ID}/skus/{SKU_ID}.
  • [SKU_ID] adalah ID unik untuk SKU.
  • [SKU_DESCRIPTION] adalah deskripsi SKU yang dapat dibaca manusia.
  • [SVC_DISPLAY_NAME] adalah nama tampilan layanan yang memiliki SKU.
  • [FAMILY] adalah jenis produk yang dirujuk SKU. Misalnya, "Compute", "Storage", "Network", dll.
  • [GROUP] adalah klasifikasi grup untuk SKU terkait. Misalnya, "RAM", "GPU", "Prediction", dll.
  • [USAGE] menunjukkan cara SKU digunakan. Misalnya, "OnDemand", "Preemptible, "Commit1Mo", "Commit1Yr", dll.
  • [REGION] adalah daftar region layanan tempat SKU ditawarkan. Misalnya, "asia-east1".
  • [TIME] adalah stempel waktu yang menunjukkan waktu mulainya harga ini berlaku dalam format 2014-10-02T15:01:23.045123456Z.
  • [SUMMARY] adalah ringkasan informasi harga yang dapat dibaca manusia,
  • [USAGE_UNIT] adalah singkatan untuk unit penggunaan tempat harga ditentukan. Misalnya, usageUnit "GiBy" berarti penggunaannya ditentukan dalam "Gibibyte".
  • [USAGE_UNIT_DESCRIPTION] adalah unit penggunaan dalam bentuk yang dapat dibaca manusia, misalnya, "Gibibyte".
  • [BASE_UNIT] adalah unit dasar SKU, dan merupakan unit yang digunakan dalam ekspor penggunaan. Misalnya, baseUnit "By" berarti penggunaan ditentukan dalam "Byte".
  • [BASE_UNIT_DESCRIPTION] adalah unit dasar dalam bentuk yang dapat dibaca manusia. Misalnya, "byte".
  • [BASE_CONVERSION_FACTOR] adalah faktor konversi untuk mengonversi harga per usage_unit menjadi harga per base_unit, dan mengonversi jumlah start_usage menjadi start_usage_amount dalam base_unit. Misalnya, start_usage_amount * base_unit_conversion_factor = start_usage_amount dalam base_unit.
  • [DISPLAY_QUANTITY] adalah jumlah unit yang direkomendasikan untuk menampilkan info harga. Saat menampilkan info harga, sebaiknya tampilkan: (unitPrice * displayQuantity) per displayQuantity usageUnit. Kolom ini tidak memengaruhi formula harga dan hanya untuk tujuan tampilan. Misalnya, jika unitPrice adalah "0,0001 USD", usageUnit adalah "GB" dan displayQuantity adalah "1.000", maka cara yang direkomendasikan untuk menampilkan info harga adalah "0,10 USD per 1.000 GB".
  • [START_AMOUNT] Penggunaan akan dikenai tarif hanya setelah jumlah ini dikonsumsi. Misalnya, startUsageAmount yang bernilai 10 menunjukkan bahwa penggunaan akan diberi harga yang ditentukan di bawah ini setelah 10 usage_units pertama.
  • [CURRENCY_CODE] adalah kode mata uang tiga huruf yang ditentukan dalam ISO 4217.
  • [UNITS] adalah seluruh unit jumlah. Misalnya jika currencyCode adalah "USD", maka 1 unit adalah 1 dolar AS.
  • [NANOS] adalah jumlah satuan nano (10^-9) dari jumlah. Nilai harus antara -999.999.999 dan +999.999.999 inklusif. Jika units positif, angka nano harus positif atau nol. Jika unit nol, angka nano bisa positif, nol, atau negatif. Jika unit negatif, angka nano harus negatif atau nol.

Biaya SKU adalah units + nanos. Misalnya, biaya $1,75 direpresentasikan sebagai units=1 dan nanos=750,000,000.

  • [AGGREGATION_LEVEL] adalah tingkat penggabungan penggunaan untuk menghitung biaya. Nilai yang valid adalah ACCOUNT, PROJECT, dan AGGREGATION_LEVEL_UNSPECIFIED.
  • [AGGREGATION_INTERVAL] adalah interval saat penggunaan digabungkan dengan biaya komputasi. Nilai yang valid adalah DAILY, MONTHLY, dan AGGREGATION_INTERVAL_UNSPECIFIED.
  • [AGGREGATION_COUNT] adalah jumlah interval yang akan digabungkan. Misalnya, jika aggregationLevel adalah "DAILY" dan aggregationCount adalah 14, agregasi adalah lebih dari 14 hari.
  • [CONVERSION_RATE] adalah nilai tukar untuk konversi mata uang, dari USD ke mata uang yang ditentukan dalam permintaan. Jika mata uang tidak ditentukan, nilai defaultnya adalah 1,0.
  • [SERVICE_PROVIDER] mengidentifikasi penyedia layanan. Ini adalah 'Google' untuk layanan pihak pertama di Google Cloud Platform.
  • [TAXONOMY_TYPE] adalah jenis taksonomi geografis untuk SKU: GLOBAL, REGIONAL, atau MULTI_REGIONAL.
  • [REGION] adalah Daftar region yang terkait dengan SKU. Kolom ini kosong untuk SKU Global karena terkait dengan semua region Google Cloud.

Hasil akan diberi nomor halaman dan dibatasi hingga 5.000 SKU per halaman. Responsnya mencakup nextPageToken yang dapat Anda gunakan untuk mendapatkan 5.000 hasil berikutnya. Untuk mengambil batch berikutnya, tetapkan pageToken=[NEXT_PAGE_TOKEN]. Untuk mengurangi jumlah SKU per halaman, tetapkan pageSize=[CUSTOM_PAGE_SIZE]. Setelah semua item tercantum, tidak akan ada token yang ditampilkan.

Informasi harga dan SKU juga tersedia di laporan tabel harga atau ekspor harga Penagihan Cloud ke BigQuery.