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

  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Cloud de Confiance by S3NS Dienste und APIs überprüft. Wenn Sie Code oder Beispiele aus einer lokalen Entwicklungsumgebung ausführen möchten, können Sie sich bei Compute Engine authentifizieren, indem Sie eine der folgenden Optionen auswählen:

    Wählen Sie den Tab für die Verwendung der Beispiele auf dieser Seite aus:

    Console

    Wenn Sie über die Cloud de Confiance console auf Cloud de Confiance by S3NS Dienste und APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.

    gcloud

    1. Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Initialisieren Sie die Google Cloud CLI nach der Anmeldung mit dem folgenden Befehl: initialize

      gcloud init
  • Legen Sie eine Standardregion und -zone fest.
  • REST

    Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.

      Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an.

    Weitere Informationen finden Sie in der Cloud de Confiance Authentifizierungsdokumentation unter Für die Verwendung von REST authentifizieren.

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 Cloud de Confiance by S3NS 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 Cloud de Confiance 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 Cloud de Confiance 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 Cloud de Confiance 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 Cloud de Confiance 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 Cloud de Confiance 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