取得公開的 Google Cloud 定價資訊

本頁面說明如何使用 Cloud Billing Catalog API 進行下列操作:

  • 取得所有公用服務的清單,包括各項服務的相關中繼資料。
  • 取得服務內所有公用 SKU 的清單,包括:
    • 使用者可理解的 SKU 說明。
    • SKU 的公開價格。
    • 可購買 SKU 的區域。
    • SKU 的分類資料。

如果您有自訂合約價格,可以使用 Pricing API 取得適用於 Cloud Billing 帳戶的價格。

事前準備

如要使用 Cloud Billing Catalog API,請先啟用 Cloud Billing API 並取得 API 金鑰。

Enable the Cloud Billing API.

Enable the API

系統提示您確認要用於 Cloud Billing Catalog API 的 Google Cloud 專案時,建議您使用已設定的專案,其中包含 Cloud Billing 帳戶的所有 FinOps 和帳單管理需求,包括啟用 Cloud Billing API 的位置。

進一步瞭解使用以 FinOps 為重點的專案,對帳單管理用途有何好處

取得 API 金鑰

呼叫 Cloud Billing Catalog API 需要 API 金鑰。如要瞭解 API 金鑰的詳細資料,請參閱「使用 API 金鑰」一文。

列出型錄中的公用服務

您可以透過本步驟取得所有公用服務的清單,包括各項服務的相關中繼資料。

下列程式碼片段會列出目錄中的所有公開服務。

要求:

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

回應:

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

其中:

  • [SERVICE_NAME] 為服務的資源名稱。
  • [SERVICE_ID] 為服務識別碼。
  • [DISPLAY_NAME] 為使用者可理解的服務顯示名稱。

結果會分頁顯示,每頁最多 5000 個 SKU。回應包含 nextPageToken,可用於取得下 5000 個結果。如要擷取下一批結果,請設定 pageToken=[NEXT_PAGE_TOKEN]。如要減少每頁的 SKU 數量,請設定 pageSize=[CUSTOM_PAGE_SIZE]。 列出所有項目後,系統不會傳回任何權杖。

取得服務的 SKU 清單

以下程式碼片段可列出指定服務型錄中的 SKU:

要求:

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

其中:

  • SERVICE_ID 為主要服務的識別碼。

回應:

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

其中:

  • [SKU_NAME] 為 SKU 的資源名稱,格式為 services/{SERVICE_ID}/skus/{SKU_ID}
  • [SKU_ID] 為 SKU 的專屬 ID。
  • [SKU_DESCRIPTION] 為使用者可理解的 SKU 說明。
  • [SVC_DISPLAY_NAME] 為 SKU 所屬服務的顯示名稱。
  • [FAMILY] 為 SKU 所屬產品類型,例如 Compute、Storage、Network 等。
  • [GROUP] 為相關 SKU 的群組分類,例如 RAM、GPU、Prediction 等。
  • [USAGE] 說明 SKU 的消費方式,例如 OnDemand、Preemptible、Commit1Mo、Commit1Yr 等。
  • [REGION] 為提供 SKU 的服務地區清單,例如「asia-east1」。
  • [TIME] 為代表價格生效時間點的時間戳記,格式為 2014-10-02T15:01:23.045123456Z
  • [SUMMARY] 為使用者可理解的價格資訊摘要。
  • [USAGE_UNIT] 為使用量的計價單位簡寫,例如 usageUnit 若為「GiBy」,則代表使用量是以「GiB」計價。
  • [USAGE_UNIT_DESCRIPTION] 為使用者可理解的使用量單位格式,例如 GiB。
  • [BASE_UNIT] 是 SKU 的基本單位,也是用量匯出作業所用的單位。例如「By」的 baseUnit 代表使用量是以「位元組」計價。
  • [BASE_UNIT_DESCRIPTION] 為使用者可理解的基本單位格式,例如「位元組」。
  • [BASE_CONVERSION_FACTOR] 是轉換係數,用於將每個 usage_unit 的價格轉換為每個 base_unit 的價格,以及將 start_usage amount 轉換為以 base_unit 為單位的 start_usage_amount。舉例來說,start_usage_amount * base_unit_conversion_factor = start_usage_amount in base_unit。
  • [DISPLAY_QUANTITY] 為所示價格資訊的建議單位數量。建議您在展示價格資訊時使用:(unitPrice * displayQuantity) per displayQuantity usageUnit。這個欄位僅供展示用途,不會影響計價公式。舉例來說,如果 unitPrice 是「0.0001 USD」,usageUnit 為「GB」,且 displayQuantity 為「1000」,則價格資訊的建議展示方式為「每 1000 GB 0.10 美元」。
  • [START_AMOUNT]:只有在耗用了這個數量的單位後,使用量才開始依費率計價。舉例來說,如果將 startUsageAmount 設為 10,則代表在使用了前 10 個 usage_units 之後,系統才會依照下述價格計價。
  • [CURRENCY_CODE] 為 ISO 4217 所定義的三碼貨幣代碼。
  • [UNITS] 為金額的整數單位。舉例來說,如果 currencyCode 為 USD,則 1 單位為一美元。
  • [NANOS] 為金額的十億分之一 (10^-9) 單位數量。這個值必須介於 -999,999,999 和 +999,999,999 (含) 之間。如果 units 為正值,nanos 必須為正值或零;如果 units 為零,則 nanos 可為正值、零或負值;如果 units 為負值,nanos 就必須為負值或零。

SKU 的費用為 units + nanos。舉例來說,1.75 美元的費用會表示為 units=1nanos=750,000,000

  • [AGGREGATION_LEVEL] 為使用量加總計算費用的層級。有效值為 ACCOUNT、PROJECT 和 AGGREGATION_LEVEL_UNSPECIFIED。
  • [AGGREGATION_INTERVAL] 為使用量加總計算費用的間隔單位。有效值為 DAILY、MONTHLY 和 AGGREGATION_INTERVAL_UNSPECIFIED。
  • [AGGREGATION_COUNT] 為前述加總計費間隔單位的數量。舉例來說,如果 aggregationLevel 為「DAILY」,且 aggregationCount 為 14,則系統會每 14 天加總計算一次費用。
  • [CONVERSION_RATE] 為貨幣從美元兌換為要求所指定貨幣的轉換匯率。如未指定貨幣,則預設值為 1.0。
  • [SERVICE_PROVIDER] 為服務供應商。Google Cloud Platform 的第一方服務均為 Google。
  • [TAXONOMY_TYPE] 是 SKU 的地理分類類型:GLOBALREGIONALMULTI_REGIONAL
  • [REGION] 為與 SKU 相關聯的區域清單,如果是全球 SKU,這個欄位會留空,因為這類 SKU 與所有 Google Cloud區域相關聯。

結果會分頁顯示,每頁最多 5000 個 SKU。回應包含 nextPageToken,可用於取得下 5000 個結果。如要擷取下一批結果,請設定 pageToken=[NEXT_PAGE_TOKEN]。如要減少每頁的 SKU 數量,請設定 pageSize=[CUSTOM_PAGE_SIZE]。 列出所有項目後,系統不會傳回任何權杖。

您也可以查看價目表報表匯出至 BigQuery 的 Cloud Billing 定價資料,藉此取得定價和 SKU 相關資訊。