Regionale Zugriffe auf globale Ressourcen für Hochverfügbarkeit

Mithilfe von Autoscaling-Skripts oder Laufzeitdiensten in Compute Engine können Sie CI/CD-Pipelines (Continuous Integration and Continuous Deployment) automatisieren. Da diese Ressourcen jedoch stark von globalen Ressourcendefinitionen abhängen, wenn sie globale API-Endpunkte abfragen, kann dieser Ansatz einen Single Point of Failure in Ihrer Multiregion-Architektur verursachen.

Um dieses Risiko zu minimieren, können Sie Ihre Dienste so konfigurieren, dass sie auf regionale Ansichten globaler Ressourcen zugreifen. Wenn Ihre Dienste GET- und LIST-Anfragen an regionalisierte Lesezugriff-Endpunkte in der genauen Region senden, in der Ihre Compute-Arbeitslasten ausgeführt werden, isolieren sie ihren API-Verbrauch von potenziellen Ausfällen in der globalen Steuerungsebene oder in anderen Regionen. Weitere Informationen zu regionalisierten Lesezugriff-Endpunkten und Best Practices für die Ausfallsicherheit finden Sie unter Regionale Ansichten für ausfallsichere Lesevorgänge der Steuerungsebene verwenden.

Hinweis

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die Compute Instance Admin (Version 1) (roles/compute.instanceAdmin.v1) IAM-Rolle für das Projekt oder die Betriebssystem-Images zu gewähren, um die Berechtigungen zu erhalten, die Sie für den regionalen Zugriff auf globale Ressourcen benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die für den regionalen Zugriff auf globale Ressourcen erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen , um die notwendigen Berechtigungen anzuzeigen, die erforderlich sind:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind für den regionalen Zugriff auf globale Ressourcen erforderlich:

  • Regionale Ansichten für ein Projekt abrufen: compute.projects.get für das Projekt
  • Regionale Ansichten für Betriebssystem-Images abrufen: compute.images.get und compute.images.list für das Projekt oder die Betriebssystem-Images

Sie können diese Berechtigungen gegebenenfalls auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Projektressource

Sie können regionale Ansichten Ihrer globalen Projektressource mit dem projectViews Lesezugriff-Endpunkt abrufen. Wenn Sie den Endpunkt projectViews abfragen, gibt Compute Engine das globale Standardcompute.Project Ressourcenobjekt zurück. Die Ressource selbst bleibt global.

Regionale Ansicht einer Projektressource abrufen

Sie können eine regionale Ansicht Ihres globalen Projekts mit der Google Cloud CLI oder der REST API abrufen.

gcloud

Führen Sie den gcloud compute project-views describe Befehl aus, um Ihr globales Projekt über die Steuerungsebene für eine bestimmte Region zu beschreiben:

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

Ersetzen Sie Folgendes:

  • REGION: die Google Cloud Region für die API-Anfrage, z. B. us-central1.
  • PROJECT_ID: Ihre Projekt-ID.

REST

Senden Sie eine GET Anfrage an die projectViews Methode, um Ihr globales Projekt über die Steuerungsebene für eine bestimmte Region zu beschreiben.

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"

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Projekt-ID.
  • REGION: die Google Cloud Region für die API Anfrage, z. B. us-central1.

Die API gibt die Standardressourcendarstellung compute.Project direkt zurück.

{
  "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"
}

Betriebssystem-Image-Ressource

Sie können regionale Ansichten Ihrer globalen Betriebssystem-Image-Ressource mit dem Endpunkt mit Lesezugriff imageViews abrufen. Wenn Sie den imageViews Endpunkt abfragen, gibt Compute Engine das globale Standardcompute.Image Ressourcenobjekt zurück. Die Ressource selbst bleibt global.

Regionale Liste von Betriebssystem-Image-Ressourcen abrufen

Sie können alle globalen Betriebssystem-Images, die für Ihr Projekt verfügbar sind, über einen bestimmten regionalen Endpunkt mit der gcloud CLI oder der REST API auflisten.

gcloud

Führen Sie den gcloud compute image-views list Befehl aus, um globale Betriebssystem-Images mit einem regionalen Endpunkt aufzulisten:

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

Ersetzen Sie Folgendes:

  • REGION: die Google Cloud Region für die API Anfrage, z. B. us-central1.
  • PROJECT_ID: Ihre Projekt-ID.

REST

Senden Sie eine GET Anfrage an die Methode imageViews, um globale Betriebssystem-Images mit einem regionalen Endpunkt aufzulisten:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Projekt-ID.
  • REGION: die Google Cloud Region für die API Anfrage, z. B. us-central1.

Regionale Ansicht einer Betriebssystem-Image-Ressource abrufen

Sie können Informationen zu einem bestimmten globalen Betriebssystem-Image über einen regionalen Endpunkt mit der gcloud CLI oder der REST API abrufen.

gcloud

Führen Sie den gcloud compute image-views describe Befehl aus, um Details zu einem globalen Betriebssystem-Image mit einem regionalen Endpunkt abzurufen:

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

Ersetzen Sie Folgendes:

  • IMAGE_NAME: der Name der globalen Betriebssystem-Image-Ressource.
  • REGION: die Google Cloud Region für die API Anfrage, z. B. us-central1.
  • PROJECT_ID: Ihre Projekt-ID.

REST

Senden Sie eine GET Anfrage an die entsprechende imageViews Methode, um Details zu einem globalen Betriebssystem-Image mit einem regionalen Endpunkt abzurufen:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Projekt-ID.
  • REGION: die Google Cloud Region für die API-Anfrage, z. B. us-central1.
  • IMAGE_NAME: der Name der globalen Betriebssystem-Image-Ressource.

Die API gibt die Standardressourcendarstellung compute.Image direkt zurück.

{
  "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"
}

Nächste Schritte