Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Dienstkontingente verwalten

Auf dieser Seite wird beschrieben, wie Sie alle Kontingentmesswerte und -beschränkungen in einem Google Cloud-Projekt für einen bestimmten Dienst anzeigen und die Kontingentnutzung für diesen Dienst mithilfe einer Kontingentüberschreibung begrenzen. Mithilfe von Service Usage können Sie das Kontingent für Ihre Projekte für jeden Dienst verwalten, einschließlich öffentlicher Google Cloud-Dienste und privater Dienste, die mit Cloud Endpoints erstellt wurden. Weitere Informationen zu den Unterschieden zwischen öffentlichen und privaten APIs und Diensten finden Sie unter Öffentliche und private Dienste.

Für die meisten praktischen Anwendungsfälle ist die Verwendung der Google Cloud Console die einfachste Möglichkeit, Kontingente zu verwalten. Wenn Sie Programme unter Verwendung der Service Usage API schreiben müssen, empfehlen wir Ihnen, eine der von uns bereitgestellten Clientbibliotheken zu verwenden. Wenn Sie die API testen möchten, folgen Sie der Anleitung in dieser Anleitung und verwenden Sie den Befehl gcurl, um die API zu testen, ohne eine vollständige Anwendungsentwicklungsumgebung einzurichten.

Hinweis

Führen Sie alle Schritte aus, die im Startleitfaden aufgeführt sind, um die Beispiele auf dieser Seite zu verwenden. Diese Schritte umfassen das Definieren von gcurl, ein authentifizierter Alias für den Standardbefehl curl, und die Umgebungsvariable PROJECT_NUMBER.

Machen Sie sich unbedingt mit dem Dienstkontingentmodell vertraut, um die in dieser Anleitung verwendete Terminologie besser zu verstehen.

Dienstkontingent anzeigen

Verwenden Sie den folgenden Befehl, um alle Kontingentmesswerte und -beschränkungen anzuzeigen, die für einen bestimmten Verbraucher eines Dienstes gelten:

gcurl "https://serviceusage.googleapis.com/v1beta1/projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics"

Der Aufruf gibt eine Liste der vom Dienst definierten Messwerte zurück, die jeweils eine Liste der Limits für diese Messwerte, die für diesen Nutzer gelten, sowie Werte für diese Limits und Überschreibungen enthalten. Hier ein Beispiel für eine Teilantwort:


{
  "metrics": [
    ...
    {
      "name": "projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus",
      "displayName": "CPUs",
      "consumerQuotaLimits": [
        {
          "name": "projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fzone",
          "unit": "1/{project}/{zone}",
          "isPrecise": true,
          "metric": "compute.googleapis.com/cpus",
          "quotaBuckets": [
            {
              "effectiveLimit": "-1",
              "defaultLimit": "-1"
            }
          ]
        },
        {
          "name": "projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion",
          "unit": "1/{project}/{region}",
          "isPrecise": true,
          "metric": "compute.googleapis.com/cpus",
          "quotaBuckets": [
            {
              "effectiveLimit": "24",
              "defaultLimit": "24"
            },
            {
              "effectiveLimit": "72",
              "defaultLimit": "72",
              "dimensions": {
                "region": "asia-northeast1"
              }
            },

            ...

            {
              "effectiveLimit": "72",
              "defaultLimit": "72",
              "dimensions": {
                "region": "australia-southeast1"
              }
            }
          ]
        }
      ],
      "metric": "compute.googleapis.com/cpus",
      "unit": "1"
    },
    ...
    {
      "name": "projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fexternal_vpn_gateways",
      "displayName": "External VPN gateways",
      "consumerQuotaLimits": [
        {
          "name": "projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fexternal_vpn_gateways/limits/%2Fproject",
          "unit": "1/{project}",
          "isPrecise": true,
          "metric": "compute.googleapis.com/external_vpn_gateways",
          "quotaBuckets": [
            {
              "effectiveLimit": "15",
              "defaultLimit": "15"
            }
          ]
        }
      ],
      "metric": "compute.googleapis.com/external_vpn_gateways",
      "unit": "1"
    },
    ...

Jeder Messwert in der Antwort hat ein name-Feld. Verwenden Sie den name in der URL, um die Kontingenteinstellungen nur für diesen Messwert und nicht für alle Messwerte zu überprüfen. In dieser Anleitung speichert die Umgebungsvariable METRIC_RESOURCE_NAME den Ressourcennamen des Kontingentmesswerts:

METRIC_RESOURCE_NAME="projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fexternal_vpn_gateways"
gcurl "https://serviceusage.googleapis.com/v1beta1/${METRIC_RESOURCE_NAME}"

Da ein bestimmter Name der Messwertressource angegeben wurde, gibt der Aufruf nur die Informationen für diesen Messwert zurück:

{
  "name": "projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fexternal_vpn_gateways",
  "displayName": "External VPN gateways",
  "consumerQuotaLimits": [
    {
      "name": "projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fexternal_vpn_gateways/limits/%2Fproject",
      "unit": "1/{project}",
      "isPrecise": true,
      "metric": "compute.googleapis.com/external_vpn_gateways",
      "quotaBuckets": [
        {
          "effectiveLimit": "15",
          "defaultLimit": "15"
        }
      ]
    }
  ],
  "metric": "compute.googleapis.com/external_vpn_gateways",
  "unit": "1"
}

In ähnlicher Weise hat jedes Limit innerhalb eines Messwerts ein name-feld. Verwenden Sie den name in der URL, um die Kontingenteinstellungen für genau dieses Limit für diesen Messwert und nicht für alle Limits für einen Messwert oder alle Messwerte zu überprüfen. In dieser Anleitung speichert die Umgebungsvariable LIMIT_RESOURCE_NAME den Ressourcennamen des Kontingentlimits:

LIMIT_RESOURCE_NAME="projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fexternal_vpn_gateways/limits/%2Fproject"
gcurl "https://serviceusage.googleapis.com/v1beta1/${LIMIT_RESOURCE_NAME}"

Wenn ein bestimmtes Limit angegeben wird, gibt der Aufruf nur die Informationen für dieses Limit zurück:

{
  "name": "projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fexternal_vpn_gateways/limits/%2Fproject",
  "unit": "1/{project}",
  "isPrecise": true,
  "metric": "compute.googleapis.com/external_vpn_gateways",
  "quotaBuckets": [
    {
      "effectiveLimit": "15",
      "defaultLimit": "15"
    }
  ]
}

Überschreibung eines Verbraucherkontingents erstellen

Der Inhaber eines Projekts kann eine Überschreibung durch den Nutzer auf ein bestimmtes Kontingentlimit für dieses Projekt anwenden, um die Gesamtgröße des Kontingents zu verringern, den der Nutzer auf dieses Limit anrechnen kann.

Beachten Sie, dass eine Überschreibung durch den Nutzer das verfügbare Kontingent nicht über das hinaus erhöhen kann, was durch den Dienststandard und vorhandene Überschreibungen durch andere Parteien (z. B. den Dienstinhaber oder den Kontingentadministrator einer Organisation) zulässig ist. Verwenden Sie zum Erhöhen des verfügbaren Kontingents die Option "Kontingente bearbeiten" auf der Kontingent-Hauptseite oder fragen Sie den Organisationsadministrator nach einer Kontingenterhöhung.

Wenn Sie das Limit überschreiben möchten, stellen Sie zuerst mit einer der vorherigen Methoden das gewünschte Kontingent fest. Verwenden Sie dann das Namensfeld des Kontingentlimits, um eine neue Nutzerüberschreibung für dieses Limit zu erstellen. Das folgende Beispiel bezieht sich auf das Limit pro Projekt des Kontingentmesswerts "Externe VPN-Gateways" des Compute Engine-Diensts:

LIMIT_RESOURCE_NAME="projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fexternal_vpn_gateways/limits/%2Fproject"
gcurl "https://serviceusage.googleapis.com/v1beta1/${LIMIT_RESOURCE_NAME}/consumerOverrides" -d '{"overrideValue": "14"}'

Wenn der Aufruf erfolgreich ist, wird eine Vorgangs-ID zurückgegeben, die laufende Arbeit auf dem Server darstellt, wenn die Kontingentänderung an Back-End-Systeme übertragen wird:

{
  "name": "operations/quf.92accba3-6530-4fc1-9a95-c1280d48a6b7"
}

Um den Fortschritt des Vorgangs zu überprüfen, verwenden Sie einfach dessen name:

OPERATION_NAME="operations/quf.92accba3-6530-4fc1-9a95-c1280d48a6b7"
gcurl "https://serviceusage.googleapis.com/v1/${OPERATION_NAME}"

Wenn der Vorgang erfolgreich ist, enthält die Antwortnachricht done: true und die neu erstellte Überschreibungsressource. Wenn der Vorgang fehlschlägt, enthält die Antwortnachricht done: true. Sie enthält allerdings Fehlerdetails anstelle der Ressource.

Um zu überprüfen, ob die Überschreibung erstellt wurde, listen Sie alle Nutzer-Überschreibungen mit dem Limit auf:

gcurl "https://serviceusage.googleapis.com/v1beta1/${LIMIT_RESOURCE_NAME}/consumerOverrides"

Die neu erstellte Überschreibung sollte in der Liste angezeigt werden:

{
  "overrides": [
    {
      "name": "projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fexternal_vpn_gateways/limits/%2Fproject/consumerOverrides/Cg1RdW90YU92ZXJyaWRl",
      "overrideValue": "14"
    }
  ]
}

Regionale oder zonale Kontingentüberschreibungen erstellen

Einige Kontingentlimits gelten pro Region oder Zone. Dies wird durch das Vorhandensein von {region} oder {zone} im Feld unit des Limits angegeben. Beispielsweise wird ein Limit mit der Einheit "1/{project}/{region}" pro Region erzwungen. Wenn Sie eine Überschreibung auf dieses Limit anwenden, ändert sich das Basiskontingent für jede Region oder Zone. Wenn Sie das Kontingent nur für eine bestimmte Region oder Zone ändern möchten, fügen Sie beim Erstellen der Überschreibung eine Kontingentdimension hinzu. Verwenden Sie dazu das Feld dimensions. Erstellen Sie beispielsweise eine regionale Überschreibung für ein regionales Compute Engine-Kontingentlimit so:

REGIONAL_LIMIT_RESOURCE_NAME="projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion"
gcurl "https://serviceusage.googleapis.com/v1beta1/${REGIONAL_LIMIT_RESOURCE_NAME}/consumerOverrides" -d '{"overrideValue": "65", "dimensions": {"region": "southamerica-east1"} }'

Um zu überprüfen, ob die regionale Überschreibung erstellt wurde, listen Sie alle Nutzerüberschreibungen für das Limit auf:

gcurl "https://serviceusage.googleapis.com/v1beta1/${REGIONAL_LIMIT_RESOURCE_NAME}/consumerOverrides"

Die neu erstellte regionale Überschreibung sollte in der Liste angezeigt werden:

{
  "overrides": [
    {
      "name": "projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fcpus/limits/%2Fproject%2Fregion/consumerOverrides/Cg1RdW90YU92ZXJyaWRlGhwKBnJlZ2lvbhISc291dGhhbWVyaWNhLWVhc3Qx",
      "overrideValue": "65",
      "dimensions": {
        "region": "southamerica-east1"
      }
    }
  ]
}

Überschreibung eines Verbraucherkontingents aktualisieren

Der Inhaber eines Projekts kann auch den Wert einer vorhandenen Überschreibung durch den Nutzer für das Projekt ändern.

Angenommen, ein vorheriger Erstellungsaufruf hat eine Überschreibung mit einem name-Feld wie dem folgenden zurückgegeben:

name: "projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fexternal_vpn_gateways/limits/%2Fproject/consumerOverrides/Cg1RdW90YU92ZXJyaWRl"

Verwenden Sie dann diesen Namen, um die zu aktualisierende Überschreibung folgendermaßen zu identifizieren:

OVERRIDE_RESOURCE_NAME="projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fexternal_vpn_gateways/limits/%2Fproject/consumerOverrides/Cg1RdW90YU92ZXJyaWRl"
gcurl "https://serviceusage.googleapis.com/v1beta1/${OVERRIDE_RESOURCE_NAME}" -X PATCH -d '{"overrideValue": "13"}'

Wenn der Aufruf erfolgreich ist, wird eine Vorgangs-ID zurückgegeben, die laufende Arbeit auf dem Server darstellt, wenn die Kontingentänderung an Back-End-Systeme übertragen wird:

{
  "name": "operations/quf.92accba3-6530-4fc1-9a95-c1280d48a6b7"
}

Um den Fortschritt des Vorgangs zu überprüfen, verwenden Sie einfach dessen name:

OPERATION_NAME="operations/quf.92accba3-6530-4fc1-9a95-c1280d48a6b7"
gcurl "https://serviceusage.googleapis.com/v1/${OPERATION_NAME}"

Wenn der Vorgang erfolgreich ist, enthält die Antwortnachricht done: true und die aktualisierte Überschreibungsressource. Wenn der Vorgang fehlschlägt, enthält die Antwortnachricht done: true. Sie enthält allerdings Fehlerdetails anstelle der aktualisierten Ressource.

Wenn Sie überprüfen möchten, ob die Überschreibung aktualisiert wurde, listen Sie alle Nutzerüberschreibungen für das Limit auf:

LIMIT_RESOURCE_NAME="projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fexternal_vpn_gateways/limits/%2Fproject"
gcurl "https://serviceusage.googleapis.com/v1beta1/${LIMIT_RESOURCE_NAME}/consumerOverrides"

Die Überschreibung sollte nun mit dem aktualisierten Wert in der Liste angezeigt werden:

{
  "overrides": [
    {
      "name": "projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fexternal_vpn_gateways/limits/%2Fproject/consumerOverrides/Cg1RdW90YU92ZXJyaWRl",
      "overrideValue": "13"
    }
  ]
}

Überschreibung eines Verbraucherkontingents löschen

Der Inhaber eines Projekts kann auch eine Überschreibung durch den Nutzer aus dem Projekt entfernen.

Angenommen, ein vorheriger Erstellungsaufruf hat eine Überschreibung mit einem name-Feld wie dem folgenden zurückgegeben:

name: "projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fdefault_requests/limits/%2Fmin%2Fproject/consumerOverrides/Cg1RdW90YU92ZXJyaWRl"

Führen Sie die folgende Sequenz aus, um die Überschreibung zu löschen:

OVERRIDE_RESOURCE_NAME="projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fdefault_requests/limits/%2Fmin%2Fproject/consumerOverrides/Cg1RdW90YU92ZXJyaWRl"
gcurl "https://serviceusage.googleapis.com/v1beta1/${OVERRIDE_RESOURCE_NAME}" -X DELETE

Zum Prüfen, ob die Überschreibung gelöscht wurde, listen Sie alle Nutzerüberschreibungen für das Limit auf:

LIMIT_RESOURCE_NAME="projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fexternal_vpn_gateways/limits/%2Fproject"
gcurl "https://serviceusage.googleapis.com/v1beta1/${LIMIT_RESOURCE_NAME}/consumerOverrides"

Die gelöschte Überschreibung sollte nicht mehr in der Liste angezeigt werden.

Große Kontingentänderungen erzwingen

Wenn eine Änderung der Kontingentüberschreibung dazu führen würde, dass das erzwungene Kontingent um mehr als 10 % sinkt, wird der Anruf als Sicherheitsmaßnahme abgelehnt, um zu vermeiden, dass das Kontingent versehentlich zu schnell sinkt. Verwenden Sie das Flag force, um diese Einschränkung zu ignorieren: Hier sehen Sie zum Beispiel einen Aufruf vom Typ „create“, der das Flag „force“ verwendet.

LIMIT_RESOURCE_NAME="projects/${PROJECT_NUMBER}/services/compute.googleapis.com/consumerQuotaMetrics/compute.googleapis.com%2Fexternal_vpn_gateways/limits/%2Fproject"
gcurl "https://serviceusage.googleapis.com/v1beta1/${LIMIT_RESOURCE_NAME}/consumerOverrides?force=true" -d '{"overrideValue": "0"}'