Google Cloud-Preisinformationen abrufen

Auf dieser Seite wird erläutert, wie Sie die Cloud Billing Catalog API für folgende Zwecke verwenden können:

  • Zum Anfordern einer Liste aller öffentlichen Dienste, einschließlich relevanter Metadaten zu jedem Dienst
  • Zum Abrufen einer Liste aller öffentlichen Artikelnummern innerhalb eines Dienstes, einschließlich:
    • Einer menschenlesbaren Beschreibung der Artikelnummer
    • Eines öffentlichen Preises der Artikelnummer
    • Regionen, in denen die Artikelnummer zum Kauf verfügbar ist
    • Kategorisierungsdaten zur Artikelnummer

Hinweise

Zum Abrufen der Billing Catalog API ist ein API-Schlüssel erforderlich. Details zu API-Schlüsseln finden Sie unter API-Schlüssel verwenden.

Öffentliche Dienste aus dem Katalog auflisten

In diesem Schritt rufen Sie eine Liste aller öffentlichen Dienste einschließlich relevanter Metadaten zu jedem Dienst ab.

API

Mit dem folgenden Code-Snippet werden alle öffentlichen Dienste im Katalog aufgelistet:

Anfrage:

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

Antwort:

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

Dabei gilt:

  • [SERVICE_NAME] ist der Ressourcenname des Dienstes.
  • [SERVICE_ID] ist die Kennzeichnung des Dienstes.
  • [DISPLAY_NAME] ist der menschenlesbare Anzeigename des Dienstes.

Die Ergebnisse werden mit Seitenzahlen versehen. Wenn weitere Elemente aufgelistet werden sollen, enthält die Antwort nextPageToken. Legen Sie pageToken=[NEXT_PAGE_TOKEN] fest, um den nächsten Batch abzurufen. Wenn alle Elemente aufgelistet sind, wird kein Token zurückgegeben.

Liste mit Artikelnummern für einen Dienst abrufen

API

Mit dem folgenden Code-Snippet werden die Artikelnummern im Katalog für den angegebenen Dienst aufgelistet:

Anfrage:

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

Dabei gilt:

  • SERVICE_ID ist die Kennzeichnung des übergeordneten Dienstes.

Antwort:

{
  "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": "[UNIT]",
                  "usageUnitDescription": "[UNIT_DESCRIPTION]",
                  "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]",
    }
  ],
  "nextPageToken": "[NEXT_PAGE_TOKEN]"
}

Dabei gilt:

  • [SKU_NAME] ist der Ressourcenname für die Artikelnummer im Format services/{SERVICE_ID}/skus/{SKU_ID}.
  • [SKU_ID] gibt die eindeutige Kennzeichnung der Artikelnummer an.
  • [SKU_DESCRIPTION] gibt eine menschenlesbare Beschreibung der Artikelnummer an.
  • [SVC_DISPLAY_NAME] gibt den Anzeigenamen des Diensts an, zu dem die Artikelnummer gehört.
  • [FAMILY] gibt den Typ des Artikels an, auf den sich die Artikelnummer bezieht, zum Beispiel: "Computing", "Storage", "Network" usw.
  • [GROUP] gibt eine Gruppenklassifikation für verwandte Artikelnummern an, zum Beispiel: "RAM", "GPU", "Prediction" usw.
  • [USAGE] gibt an, wie die Artikelnummer genutzt wird, zum Beispiel: "OnDemand", "Preemptible", "Commit1Mo", "Commit1Yr" usw.
  • [REGION] gibt die Liste der Dienstregionen an, in denen die Artikelnummer angeboten wird, zum Beispiel: "asia-east1".
  • [TIME] gibt den Zeitstempel für den Zeitpunkt an, ab dem der Preis gültig war, im Format 2014-10-02T15:01:23.045123456Z.
  • [SUMMARY] bietet eine menschenlesbare Zusammenfassung der Preisinformationen.
  • [UNIT] gibt das Kürzel der Nutzungseinheit an, in der der Preis angegeben ist, Beispiel: "GiBy" als usageUnit bedeutet, dass die Nutzung in "Gibibyte" angegeben ist.
  • [UNIT_DESCRIPTION] gibt die Nutzungseinheit in menschenlesbarer Form an, zum Beispiel: "Gibibyte".
  • [DISPLAY_QUANTITY] gibt die empfohlene Anzahl von Einheiten für die Anzeige von Preisangaben an. Bei der Anzeige von Preisangaben sollte (unitPrice * displayQuantity) per displayQuantity usageUnit angezeigt werden. Dieses Feld wirkt sich nicht auf die Preisformel aus und dient nur zu Anzeigezwecken. Beispiel: Wenn unitPrice auf "0,0001 USD", usageUnit auf "GB" und displayQuantity auf "1.000" festgelegt sind, sollten die Preisangaben in der Form "0,10 USD pro 1.000 GB" angezeigt werden.
  • [START_AMOUNT] gibt die Nutzungsmenge an, ab deren Erreichen die Nutzung zum festgelegten Tarif berechnet wird. Beispiel: Ein startUsageAmount von 10 gibt an, dass die Nutzung nach den ersten 10 usage_units zum unten festgelegten Tarif berechnet wird.
  • [CURRENCY_CODE] gibt den aus drei Buchstaben bestehenden Währungscode entsprechend der ISO 4217-Definition an.
  • [UNITS] gibt die ganzen Einheiten des Betrags an. Beispiel: Wenn für "currencyCode" der Wert "USD" angegeben ist, entspricht eine Einheit 1 US-Dollar.
  • [NANOS] gibt die Anzahl der Nanoeinheiten (10^-9) des Betrags an. Der Wert muss im Bereich von -999.999.999 bis +999.999.999 liegen. Wenn "units" positiv ist, müssen die Nanoeinheiten positiv oder null sein. Wenn "units" null ist, können die Nanoeinheiten positiv, null oder negativ sein. Wenn "units" negativ ist, müssen die Nanoeinheiten negativ oder null sein. Beispiel: -1,75 $ wird mit units=-1 und nanos=-750,000,000 dargestellt.
  • [AGGREGATION_LEVEL] gibt die Ebene an, auf der die Nutzung zur Kostenberechnung zusammengefasst wird. Gültige Werte sind ACCOUNT, PROJECT und AGGREGATION_LEVEL_UNSPECIFIED.
  • [AGGREGATION_INTERVAL] gibt das Intervall an, in dem die Nutzung zur Kostenberechnung zusammengefasst wird. Gültige Werte sind DAILY, MONTHLY und AGGREGATION_INTERVAL_UNSPECIFIED.
  • [AGGREGATION_COUNT] gibt die Anzahl der zusammenzufassenden Intervalle an. Beispiel: Wenn aggregationLevel "DAILY" und aggregationCount "14" ist, erfolgt die Zusammenfassung über 14 Tage.
  • [CONVERSION_RATE] gibt den Wechselkurs für die Währungsumrechnung von USD in die Währung an, die in der Anfrage angegeben ist. Wenn keine Währung angegeben ist, wird als Standardwert 1,0 verwendet.
  • [SERVICE_PROVIDER] identifiziert den Dienstanbieter. Für Erstanbieterdienste in der Google Cloud Platform ist dies "Google".

Die Ergebnisse werden mit Seitenzahlen versehen. Wenn weitere Elemente aufgelistet werden sollen, enthält die Antwort nextPageToken. Legen Sie pageToken=[NEXT_PAGE_TOKEN] fest, um den nächsten Batch abzurufen. Wenn alle Elemente aufgelistet sind, wird kein Token zurückgegeben.

Informationen zu Preisen und Artikelnummern können Sie auch dem Preistabellenbericht oder dem Cloud Billing-Preisexport nach BigQuery entnehmen.