Accedere alle risorse globali a livello regionale per l'alta affidabilità

Utilizzando script di scalabilità automatica o servizi di runtime su Compute Engine, puoi automatizzare le pipeline di integrazione e deployment continui (CI/CD). Tuttavia, poiché queste risorse dipendono fortemente dalle definizioni delle risorse globali quando eseguono query sugli endpoint API globali, questo approccio può introdurre un singolo punto di errore nell'architettura multiregionale.

Per mitigare questo rischio, puoi configurare i servizi in modo che accedano alle visualizzazioni regionali delle risorse globali. Inviando richieste GET e LIST agli endpoint di sola lettura regionalizzati all'interno della regione esatta in cui vengono eseguiti i workload di calcolo, i servizi isolano il consumo di API da potenziali interruzioni nel piano di controllo globale o in altre regioni. Per saperne di più sugli endpoint di sola lettura regionalizzati e sulle best practice di resilienza, consulta Utilizzare le visualizzazioni regionali per letture resilienti del piano di controllo.

Prima di iniziare

  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione verifica la tua identità per l'accesso ad API e servizi Google Cloud . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Seleziona la scheda relativa alla modalità di utilizzo degli esempi in questa pagina:

    Console

    Quando utilizzi la Google Cloud console per accedere a Google Cloud servizi e API, non devi configurare l'autenticazione.

    gcloud

    1. Installa Google Cloud CLI. Dopo l'installazione, inizializza Google Cloud CLI eseguendo il comando seguente:

      gcloud init

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  • Imposta una regione e una zona predefinite.
  • REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.

      Installa Google Cloud CLI.

      Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticati per usare REST nella Google Cloud documentazione sull'autenticazione di.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per accedere alle risorse globali a livello regionale, chiedi all'amministratore di concederti il ruolo IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) nel progetto o nelle immagini sistema operativo. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito include le autorizzazioni necessarie per accedere alle risorse globali a livello regionale. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per accedere alle risorse globali a livello regionale sono necessarie le seguenti autorizzazioni:

  • Per ottenere visualizzazioni regionali per un progetto: compute.projects.get sul progetto
  • Per ottenere visualizzazioni regionali per le immagini sistema operativo: compute.images.get e compute.images.list sul progetto o sulle immagini sistema operativo

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Risorsa del progetto

Puoi ottenere visualizzazioni regionali della risorsa del progetto globale utilizzando l'endpoint di sola lettura projectViews. Quando esegui una query sull'endpoint projectViews, Compute Engine restituisce l'oggetto risorsa globale standard compute.Project. La risorsa stessa rimane globale.

Ottenere una visualizzazione regionale di una risorsa del progetto

Puoi ottenere una visualizzazione regionale del tuo progetto globale utilizzando Google Cloud CLI o l'API REST.

gcloud

Per descrivere il progetto globale tramite il piano di controllo per una specifica regione, esegui il gcloud compute project-views describe comando:

gcloud compute project-views describe \
    --region=REGION \
    --project=PROJECT_ID

Sostituisci quanto segue:

  • REGION: la Google Cloud regione per la richiesta API, ad esempio us-central1.
  • PROJECT_ID: il tuo ID progetto.

REST

Per descrivere il progetto globale tramite il piano di controllo per una regione specifica, invia una GET richiesta al projectViews metodo.

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/projectViews"

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • REGION: la Google Cloud regione per la richiesta API, ad esempio us-central1.

L'API restituisce direttamente la rappresentazione della risorsa compute.Project standard.

{
  "kind": "compute#project",
  "id": "1234567890123456789",
  "creationTimestamp": "2024-01-15T10:00:00.000-08:00",
  "name": "my-project12345",
  "commonInstanceMetadata": {
    "items": [
      {
        "key": "example-key",
        "value": "example-value"
      }
    ]
  },
  "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project12345",
  "defaultServiceAccount": "SERVICE_ACCOUNT_EMAIL"
}

Risorsa immagine sistema operativo

Puoi ottenere visualizzazioni regionali della risorsa immagine sistema operativo globale utilizzando l'endpoint di sola lettura imageViews. Quando esegui una query sull'endpoint imageViews, Compute Engine restituisce l'oggetto risorsa compute.Image globale standard. La risorsa stessa rimane globale.

Ottenere un elenco regionale di risorse immagine sistema operativo

Puoi elencare tutte le immagini sistema operativo globali disponibili per il tuo progetto tramite un endpoint regionale specifico utilizzando gcloud CLI o l'API REST.

gcloud

Per elencare le immagini sistema operativo globali utilizzando un endpoint regionale, esegui il gcloud compute image-views list comando:

gcloud compute image-views list \
    --region=REGION \
    --project=PROJECT_ID

Sostituisci quanto segue:

  • REGION: la Google Cloud regione per la richiesta API, ad esempio us-central1.
  • PROJECT_ID: il tuo ID progetto.

REST

Per elencare le immagini sistema operativo globali utilizzando un endpoint regionale, invia una GET richiesta al imageViews metodo:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/imageViews"

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • REGION: la Google Cloud regione per la richiesta API, ad esempio us-central1.

Ottenere una visualizzazione regionale di una risorsa immagine sistema operativo

Puoi recuperare informazioni per un'immagine sistema operativo globale specifica tramite un endpoint regionale utilizzando gcloud CLI o l'API REST.

gcloud

Per recuperare i dettagli di un'immagine sistema operativo globale utilizzando un endpoint regionale, esegui il gcloud compute image-views describe comando:

gcloud compute image-views describe IMAGE_NAME \
    --region=REGION \
    --project=PROJECT_ID

Sostituisci quanto segue:

  • IMAGE_NAME: il nome della risorsa immagine sistema operativo globale.
  • REGION: la Google Cloud regione per la richiesta API, ad esempio us-central1.
  • PROJECT_ID: il tuo ID progetto.

REST

Per recuperare i dettagli di un'immagine sistema operativo globale utilizzando un endpoint regionale, invia una GET richiesta al metodo imageViewsspecifico:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/imageViews/IMAGE_NAME"

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto.
  • REGION: la Google Cloud regione per la richiesta API, ad esempio us-central1.
  • IMAGE_NAME: il nome della risorsa immagine sistema operativo globale.

L'API restituisce direttamente la rappresentazione della risorsa compute.Image standard.

{
  "kind": "compute#image",
  "id": "1234567890123456789",
  "creationTimestamp": "2024-01-15T10:00:00.000-08:00",
  "name": "my-image12345",
  "sourceDisk": "https://www.googleapis.com/compute/v1/projects/my-project12345/zones/us-central1-a/disks/my-disk12345",
  "sourceDiskId": "1234567890123456789",
  "sourceType": "RAW",
  "status": "READY",
  "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project12345/global/images/my-image12345"
}

Passaggi successivi