Öffentlich verfügbare 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

Wenn Sie benutzerdefinierte Vertragspreise haben, können Sie mit der Pricing API die für Ihr Cloud-Rechnungskonto geltenden Preise abrufen.

Hinweise

Bevor Sie die Cloud Billing Catalog API verwenden können, müssen Sie die Cloud Billing API aktivieren und einen API-Schlüssel abrufen.

Enable the Cloud Billing API.

Enable the API

Wenn Sie aufgefordert werden, das Google Cloud-Projekt zu bestätigen, das Sie für die Cloud Billing Catalog API verwenden möchten, empfehlen wir Ihnen, ein Projekt zu verwenden, das alle Ihre Anforderungen an die FinOps- und Abrechnungsverwaltung für ein Cloud-Rechnungskonto enthält, einschließlich der Cloud Billing API.

Weitere Informationen zu den Vorteilen eines FinOps-orientierten Projekts für Anwendungsfälle zur Abrechnungsverwaltung.

API-Schlüssel abrufen

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.

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

Anfrage

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

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 sind paginiert und auf 5.000 SKUs pro Seite beschränkt. Die Antwort enthält ein nextPageToken, mit dem Sie die nächsten 5.000 Ergebnisse abrufen können. Legen Sie pageToken=[NEXT_PAGE_TOKEN] fest, um den nächsten Batch abzurufen. Wenn Sie die Anzahl der Artikelnummern pro Seite ändern möchten, legen Sie pageSize=[CUSTOM_PAGE_SIZE] fest. Wenn alle Artikel aufgelistet sind, wird kein Token zurückgegeben.

Liste mit Artikelnummern für einen Dienst abrufen

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=<var>API_KEY</var>

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": "[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]"
}

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] ist die Liste Dienstregionen, 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.
  • [USAGE_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.
  • [USAGE_UNIT_DESCRIPTION] gibt die Nutzungseinheit in menschenlesbarer Form an, zum Beispiel: "Gibibyte".
  • [BASE_UNIT] ist die Basiseinheit der Artikelnummer und wird in Nutzungsexporten verwendet. Beispiel: baseUnit "By" bedeutet, dass die Nutzung in "Byte" angegeben ist.
  • [BASE_UNIT_DESCRIPTION] ist die Basiseinheit in einer visuell lesbaren Form. Beispiel: "Byte"
  • [BASE_CONVERSION_FACTOR] ist der Konvertierungsfaktor, der den Preis pro usage_unit in den Preis pro base_unit konvertiert und den Betrag für start_usage in start_usage_amount in base_unit konvertiert. Beispiel: start_usage_amount * base_unit_conversion_factor = start_usage_amount in base_unit.
  • [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.

Die Kosten für die SKU betragen units + nanos. Beispiel: Kosten von 1, 75 $ werden 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".
  • [TAXONOMY_TYPE] ist der Typ der geografischen Taxonomie für eine Artikelnummer: GLOBAL, REGIONAL oder MULTI_REGIONAL.
  • [REGION] gibt die Liste der Regionen an, die einer Artikelnummer zugeordnet sind. Dieses Feld ist für globale Artikelnummern leer, da sie allen Google Cloud-Regionen zugeordnet sind.

Die Ergebnisse sind paginiert und auf 5.000 SKUs pro Seite beschränkt. Die Antwort enthält ein nextPageToken, mit dem Sie die nächsten 5.000 Ergebnisse abrufen können. Legen Sie pageToken=[NEXT_PAGE_TOKEN] fest, um den nächsten Batch abzurufen. Wenn Sie die Anzahl der Artikelnummern pro Seite ändern möchten, legen Sie pageSize=[CUSTOM_PAGE_SIZE] fest. Wenn alle Artikel aufgelistet sind, wird kein Token zurückgegeben.

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