Panoramica dell'API Cloud Quotas

L'API Cloud Quotas ti consente di regolare in modo programmatico le quote e automatizzare gli aggiustamenti delle quote a livello di progetto. L'API Cloud Quotas può essere utilizzata per:

Automatizzare gli aggiustamenti delle quote
Puoi utilizzare l'API Cloud Quotas per richiedere una quota aumenta quando vengono soddisfatte determinate condizioni. Ad esempio, per evitare il superamento della quota errori, puoi utilizzare l'API per richiedere in modo programmatico un aumento della quota quando Le risorse Compute Engine raggiungono l'80% della quota disponibile.
Scala le configurazioni delle quote tra progetti
L'API Cloud Quotas può clonare le configurazioni della quota da un progetto all'altro. Se esiste un modello di quote che devono essere aumentate per ogni nuovo progetto Google Cloud, integrare l'API nella logica di creazione del progetto per richiedere un aumento della quota. Tutti gli aumenti della quota sono soggetti a Google Cloud approvazione.
Gestire le richieste di quota dei clienti
Se sei un provider SaaS integrato con Google Cloud, potresti ricevere delle richieste di aumento della quota tramite un portale rivolto ai clienti diverso da nella console Google Cloud. Queste richieste devono essere inoltrate a Google Cloud per e l'elaborazione dei dati. L'API Cloud Quotas può inoltrare automaticamente richieste.
Abilita il controllo della versione della configurazione del client
L'API Cloud Quotas è dichiarativi, puoi trattare le configurazioni delle quote come configurazioni di codice e archiviazione nel tuo sistema controllato dalla versione per la cronologia e il rollback.

Limitazioni

Cloud Quotas presenta le seguenti limitazioni:

  • Tutti gli aggiustamenti relativi all'aumento della quota sono soggetti all'approvazione di Google Cloud.

  • Puoi richiedere aggiustamenti di aumento e riduzione della quota per quote a livello di progetto.

  • Puoi richiedere aggiustamenti della riduzione della quota per project-, folder-, e a livello di organizzazione quotas.

Endpoint di servizio

L'endpoint di servizio è un URL di base che specifica l'indirizzo di rete di un'API completamente gestito di Google Cloud. Un servizio può avere più endpoint. L'API Cloud Quotas ha il seguente endpoint e tutti gli URI sono relativi:

https://cloudquotas.googleapis.com

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per accedere alle risorse cloudquotas_quotaPreferences e cloudquotas_quotaInfos, chiedi all'amministratore di concederti Amministratore di Cloud Quotas (cloudquotas.admin) ruolo IAM per il progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questo ruolo predefinito contiene le autorizzazioni necessarie per accedere alle risorse cloudquotas_quotaPreferences e cloudquotas_quotaInfos. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per accedere alle risorse cloudquotas_quotaPreferences e cloudquotas_quotaInfos sono necessarie le seguenti autorizzazioni:

  • cloudquotas.quotas.update
  • cloudquotas.quotas.get
  • monitoring.timeSeries.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati e altri ruoli predefiniti.

Modello di risorsa API

Il modello di risorse dell'API Cloud Quotas è composto da due risorse: QuotaPreference e QuotaInfo.

Preferenza quota

La risorsa QuotaPreference rappresenta la tua preferenza di quota per una determinata combinazione di dimensioni. Utilizza le funzionalità di questa risorsa per regolare le quote nei progetti, nelle cartelle o nelle organizzazioni.

Imposta un valore preferito per una regione

L'esempio seguente mostra una risorsa QuotaPreference in un Metodo CreateQuotaPreference.

{
    "service": "compute.googleapis.com",
    "quotaId": "GPUS-PER-GPU-FAMILY-per-project-region",
    "quotaConfig": {
        "preferredValue": 100
    },
    "dimensions": {
        "region": "us-central1"
    }
}

Il valore preferredValue di 100 indica che Il richiedente vuole impostare la quota GPUS-PER-GPU-FAMILY-per-project-region su quel valore. Il campo delle dimensioni indica che la preferenza si applica solo alla regione us-central1.

Verifica il valore concesso

L'esempio seguente mostra una risorsa QuotaPreference in un Metodo GetQuotaPreference.

{
    "name": "projects/PROJECT_NUMBER/locations/global/quotaPreferences/compute_googleapis_com-gpus-us-central1",
    "service": "compute.googleapis.com",
    "quotaId": "GPUS-PER-GPU-FAMILY-per-project-region",
    "quotaConfig": {
        "preferredValue": 100,
        "grantedValue": 100,
        "traceId": "123acd-345df23",
        "requestOrigin": "ORIGIN_UNSPECIFIED"
    },
    "dimensions": {
        "region": "us-central1"
    },
    "createTime": "2023-01-15T01:30:15.01Z",
    "updateTime": "2023-01-16T02:35:16.01Z"
}

Questo output include i seguenti valori:

  • PROJECT_NUMBER: un evento generato automaticamente identificatore univoco per il progetto.

La risposta mostra un valore grantedValue pari a 100, che significa la classe preferredValue dell'esempio precedente è stata approvata e soddisfatta. Le preferenze per dimensioni diverse sono diverse QuotaPreference Google Cloud. Ad esempio, QuotaPreference per la CPU nelle regioni us-central1 e us-east1 sono due risorse distinte.

La preferenza per la quota è obbligatoria

Le risorse QuotaPreference vengono utilizzate per indicare il valore preferito per un una determinata quota. Il valore corrente di una determinata quota si basa su:

  • QuotaPreference richieste effettuate da te.

  • Richieste di aumento della quota approvate da Google Cloud.

  • Modifiche alle quote avviate da Google Cloud.

La possibilità di eliminare un QuotaPreference non è supportata. Tuttavia, puoi impostare un valore di quota preferita inferiore al valore approvato da Google Cloud per aggiungere ulteriori sistemi di protezione.

Per saperne di più sulla risorsa QuotaPreference, consulta la documentazione sull'API Cloud Quotas.

Per ulteriori informazioni sulle query QuotaPreference, vedi Implementare casi d'uso comuni.

Informazioni sulla quota

QuotaInfo è una risorsa di sola lettura che fornisce informazioni su una particolare quota per un determinato progetto, cartella o organizzazione. Vengono visualizzate informazioni le quote definite dai servizi Google Cloud e le eventuali quote soddisfatte aggiustamenti iniziati dai clienti. La risorsa QuotaInfo contiene informazioni come metadati, tipo di contenitore e dimensione.

Impostare valori di quota diversi in base alla regione

Il seguente esempio di risorsa QuotaInfo mostra che la quota di CPU per è 200 per la regione us-central1 e 100 per tutte le altre regioni.

{
    "name": "projects/PROJECT_NUMBER/locations/global/services/compute.googleapis.com/quotaInfos/CPUS-per-project-region",
    "quotaId": "CPUS-per-project-region",
    "metric": "compute.googleapis.com/cpus",
    "containerType": "PROJECT",
    "dimensions": [
        "region"
    ],
    "isPrecise": true,
    "quotaDisplayName": "CPUs per project per region",
    "metricDisplayName": "CPUs",
    "dimensionsInfo": [
        {
            "dimensions": {
                "region": "us-central1"
            },
            "details": {
                "quotaValue": 200,
                "resetValue": 200
            },
            "applicableLocations": [
                "us-central1",
            ]
        },
        {
            "details": {
                "quotaValue": 100,
                "resetValue": 100
            },
            "applicableLocations": [
                "us-central2",
                "us-west1",
                "us-east1"
            ]
        }
    ]
}

Questo output include i seguenti valori:

  • PROJECT_NUMBER: un evento generato automaticamente identificatore univoco per il progetto.

Imposta una quota globale

Il seguente esempio di risorsa QuotaInfo mostra una quota di frequenza con un valore al minuto l'intervallo di aggiornamento. Le dimensioni sono vuote, per indicare che si tratta di un quota globale. Tutte le quote senza una dimensione regione o zona sono globali.

{
    "name": "projects/PROJECT_NUMBER/locations/global/services/compute.googleapis.com/quotaInfos/ReadRequestsPerMinutePerProject",
    "quotaId": "ReadRequestsPerMinutePerProject",
    "metric": "compute.googleapis.com/read_requests",
    "refreshInterval": "minute",
    "containerType": "PROJECT",
    "dimensions": [],
    "isPrecise": false,
    "quotaDisplayName": "Read Requests per Minute",
    "metricDisplayName": "Read Requests",
    "dimensionsInfo": [
        {
            "details": {
                "quotaValue": 100,
                "resetValue": 200
            },
            "applicableLocations": [
                "global"
            ]
        }
    ]
}

Questo output include i seguenti valori:

  • PROJECT_NUMBER: un evento generato automaticamente identificatore univoco per il progetto.

Per maggiori dettagli sulla risorsa QuotaInfo, consulta la documentazione sull'API Cloud Quotas.

Per ulteriori dettagli sulle query QuotaPreference, vedi Implementare casi d'uso comuni.

Nomi delle risorse

Le risorse sono entità denominate e sono identificate dai nomi delle risorse. Risorsa vengono utilizzati in tutte le richieste e le risposte e ogni risorsa deve avere un nome risorsa univoco. Ogni nome di risorsa è codificato da un insieme di campi.

Risorsa preferenza quota

La convenzione di denominazione per una risorsa QuotaPreference utilizza il seguente pattern:

projects/PROJECT_NUMBER/locations/global/quotaPreferences/QUOTA_PREFERENCE_ID

Puoi impostare quotaPreferenceId quando crei una preferenza per la quota, altrimenti viene generato un ID. È consigliabile usare uno schema di denominazione quotaPreferenceId codifica il nome del servizio, l'ID quota, la località e altre dimensioni. La quotaPreferenceId deve essere univoco per il progetto, la cartella o le organizzazioni.

Ad esempio quotaPreference Un pattern per codificare il tuo ID preferenza di quota è il seguente:

SERVICE_LOCATION_DIMENSION1-VALUES-IN-ORDER

L'esempio seguente dimostra questo pattern:

compute_us-central1_nvidia-200

Con il nome di una risorsa, devi usare il metodo GET per recuperare un QuotaPreference. Puoi anche chiamare il metodo UPDATE con allow_missing attiva per creare o aggiornare un QuotaPreference.

Risorsa informazioni sulla quota

La convenzione di denominazione per una risorsa QuotaInfo utilizza il seguente pattern:

projects/PROJECT_NUMBER/locations/global/services/SERVICE_NAME/quotaInfos/QUOTA_ID

Precedenza dimensioni

Alcuni casi d'uso dell'API Cloud Quotas prevedono configurazioni di dimensioni complesse. Le quote possono essere configurate a un livello più granulare rispetto alle sole regioni e zone. Puoi ottenere questo livello di granularità quando utilizzi dimensioni specifiche del servizio. Ad esempio, gpu_family e network_id sono dimensioni specifiche del servizio nel servizio Compute Engine. Le dimensioni sono definite da ogni singolo utente servizio e ogni servizio potrebbe avere un insieme diverso di parametri dimensioni.

Quando lavori con dimensioni relative alla località o dimensioni specifiche per i servizi, viene applicata la seguente precedenza:

  1. Una configurazione di preferenze di quota con tutte le località e servizi specifici le dimensioni specificate hanno la precedenza su qualsiasi altra configurazione.

  2. Le configurazioni che specificano le dimensioni relative alla località hanno la precedenza solo sulle configurazioni contenenti solo dimensioni specifiche del servizio.

Combinazione di dimensioni

In una configurazione di preferenza di quota, puoi combinare le dimensioni nel seguente modi:

  1. La configurazione può contenere sia dimensioni relative alla località che servizi specifici dimensioni. Si tratta dell'ordine di precedenza più alto.

  2. La configurazione può contenere solo le dimensioni relative alla località. Questa configurazione si applica a tutte le dimensioni specifiche del servizio, tranne quelle in modo esplicito configurate con il metodo 1.

  3. La configurazione può contenere solo dimensioni specifiche del servizio. Questa configurazione si applica a tutte le località, ad eccezione di quelle configurate esplicitamente con il metodo 1 o 2.

  4. Se la configurazione contiene qualsiasi dimensione specifica del servizio, deve contenere tutte le dimensioni specifiche del servizio.

  5. Puoi avere configurazioni senza dimensioni. Queste configurazioni si applica a tutte le località e a tutte le dimensioni specifiche del servizio, tranne quelle configurato in modo esplicito.

Passaggi successivi