取得公開的 Google Cloud 定價資訊

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

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

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

事前準備

您必須先啟用 Cloud Billing API 並取得 API 金鑰,才能使用 Cloud Billing Catalog API。

啟用 Cloud Billing API (如果尚未啟用)。

啟用 API 所需的角色

您必須具備 serviceusage.services.enable 權限,才能啟用 API。如果您建立了專案,可能已透過擁有者角色 (roles/owner) 取得這項權限。否則,您可以透過 Service Usage 管理員角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

啟用 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,可用於取得接下來的 5,000 筆結果。如要擷取下一批結果,請設定 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」表示用量是以「Gibibytes」為單位。
  • [USAGE_UNIT_DESCRIPTION] 是人類可讀形式的用量單位,例如「Gibibyte」。
  • [BASE_UNIT] 是 SKU 的基本單位,也是用量匯出作業使用的單位。例如,baseUnit 為「By」表示用量是以「位元組」為單位。
  • [BASE_UNIT_DESCRIPTION] 是人類可讀形式的基本單位。例如「byte」。
  • [BASE_CONVERSION_FACTOR] 是轉換係數,用於將每 usage_unit 的價格轉換為每 base_unit 的價格,並將 start_usage 金額轉換為 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 USD」。
  • [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=1 和 nanos=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 的地理分類類型:GLOBAL、REGIONAL 或 MULTI_REGIONAL。
  • [REGION] 是與 SKU 相關聯的區域清單。全球 SKU 與所有 Google Cloud區域相關聯,因此這個欄位會留空。

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

您也可以在價目表報表或匯出至 BigQuery 的 Cloud Billing 定價中,查看定價和 SKU 資訊。