Synchronizer konfigurieren

In diesem Abschnitt wird der Synchronizer beschrieben.

Synchronizer – Übersicht

In Apigee Hybrid besteht die Hauptaufgabe des Synchronizers darin, die von der Verwaltungsebene bereitgestellten Laufzeitverträge abzurufen und herunterzuladen. Zu den im Vertrag enthaltenen Informationen gehören API-Proxys, API-Produkte, Caches und virtuelle Hosts.

Synchronizer-Instanzen, die in der Laufzeitebene ausgeführt werden, sollten regelmäßig die Verwaltungsebene abfragen, die Verträge herunterladen und diese den lokalen Laufzeitinstanzen zur Verfügung stellen.

Ein Synchronizer unterstützt viele Nachrichtenverarbeiter, die im gleichen Pod bereitgestellt sind.

Synchronizer-Zugriff aktivieren

Sie müssen die Berechtigung Synchronizer erteilen, um Apigee-Artefakte wie Proxy-Bundles und Ressourcen von der Verwaltungsebene abzurufen. Sie müssen eine Apigee API aufrufen, um den Synchronizer zu autorisieren, Artefakte von der Verwaltungsebene zur Laufzeitebene abzurufen.

  1. Prüfen Sie, ob die Apigee API wie in den GCP-Einrichtungsschritten beschrieben aktiviert wurde. Weitere Informationen finden Sie unter Schritt 3: APIs aktivieren.
  2. Suchen Sie nach dem schreibberechtigten GCP-Dienstkontoschlüssel (eine JSON-Datei), den Sie im Abschnitt Dienstkonten erstellen heruntergeladen haben. Das Dienstkonto hat die Rolle Apigee-Organisationsadministrator und den Namen "apigee-org-admin". Wenn Sie dieses Dienstkonto nicht zuvor erstellt haben, müssen Sie dies tun, bevor Sie fortfahren.
  3. Generieren Sie mithilfe des Apigee-Org Admin-Dienstkontos ein OAuth 2.0-Zugriffstoken mit einer der folgenden Methoden. Dieses Token wird zur Authentifizierung der Apigee APIs benötigt.

    gcloud

    Verwenden Sie gcloud, um ein OAuth 2.0-Zugriffstoken abzurufen, und übergeben Sie die JSON-Datei mit den Anmeldedaten des Dienstkontos, die Sie mit der Umgebungsvariablen GOOGLE_APPLICATION_CREDENTIALS heruntergeladen haben:

    export GOOGLE_APPLICATION_CREDENTIALS=your_sa_credentials_file.json
    gcloud auth application-default print-access-token

    Ein OAuth2.0-Token wird zurückgegeben.

    Weitere Informationen finden Sie unter gcloud beta auth application-default print-access-token.

    Dienstprogramm "oauth2l"

    Rufen Sie mit oauth2l ein OAuth 2.0-Zugriffstoken ab und übergeben Sie die JSON-Datei mit den Anmeldedaten für das Dienstkonto, die Sie in Schritt 1 heruntergeladen haben.

    oauth2l fetch --json your_sa_credentials_file.json cloud-platform
  4. Kopieren Sie das zurückgegebene OAuth 2.0-Token und speichern Sie es in einer Variablen wie TOKEN. Beispiel:
    export TOKEN=ya29....Ts13inj3LrqMJlztwygtM
  5. Rufen Sie die setSyncAuthorization API auf, um die erforderlichen Berechtigungen für Synchronizer zu aktivieren:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:synchronizer-manager-service-account-name"]}'
    

    Wobei:

    • your_org_name ist der Name der Hybridorganisation.
    • synchronizer-manager-service-account-name ist der Name eines Dienstkontos mit der Rolle Apigee Synchronizer Manager. Der Name sieht wie eine E-Mail-Adresse aus. Beispiel: my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com

    Beispiel:

    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/my_org:setSyncAuthorization" \
       -d '{"identities":["serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com"]}'
    

    Weitere Informationen zu dieser API finden Sie unter SyncAuthorization API.

  6. Rufen Sie die folgende API auf, um eine Liste der Dienstkonten abzurufen. So können Sie prüfen, ob das Dienstkonto entsprechend festgelegt wurde:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \
       -d ''

    Die Ausgabe sieht dann ungefähr so aus:

    {
       "identities":[
          "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com"
       ],
       "etag":"BwWJgyS8I4w="
    }