Configurer le synchronisateur

Cette section décrit le synchronisateur.

Présentation du synchronisateur

Dans Apigee hybrid, la tâche principale du synchronisateur consiste à interroger et à télécharger les contrats d'exécution fournis par le plan de gestion. Les informations communiquées dans les contrats incluent les proxys d'API, les produits d'API, les caches et les hôtes virtuels.

Les instances de synchronisateur exécutées dans le plan d'exécution doivent interroger régulièrement le plan de gestion, télécharger les contrats et les mettre à la disposition des instances d'exécution locales.

Un synchronisateur est compatible avec de nombreux processeurs de messages déployés dans le même pod.

Activer l'accès au synchronisateur

Vous devez accorder l'autorisation Synchronisateur pour extraire des artefacts Apigee, tels que des groupes de proxys et des ressources à partir du plan de gestion. Vous devez appeler une API Apigee pour autoriser le synchronisateur à extraire les artefacts à partir du plan de gestion vers le plan d'exécution.

  1. Assurez-vous d'avoir activé l'API Apigee, comme expliqué dans les étapes de configuration de GCP. Pour en savoir plus, consultez Étape 3 : Activer les API.
  2. Recherchez la clé de compte de service GCP activée en écriture (un fichier JSON) que vous avez téléchargée lors de la création de comptes de service. Le compte de service dispose du rôle Administrateur de l'organisation Apigee, dénommé "apigee-org-admin". Si vous n'avez pas encore créé ce compte de service, vous devez le faire avant de continuer.
  3. Utilisez la clé de compte de service disposant du rôle d'administrateur de l'organisation Apigee pour générer un jeton d'accès OAuth 2.0 à l'aide de l'une des méthodes suivantes. Ce jeton est requis pour authentifier les API Apigee.

    gcloud

    Utilisez gcloud pour obtenir un jeton d'accès OAuth 2.0, en transmettant le fichier d'identifiants JSON du compte de service que vous avez téléchargé à l'aide de la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS :

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

    Un jeton OAuth 2.0 est renvoyé.

    Pour en savoir plus, consultez gcloud beta auth application-default print-access-token.

    Utilitaire oauth2l

    Utilisez oauth2l pour obtenir un jeton d'accès OAuth 2.0, en transmettant le fichier d'identifiants JSON du compte de service que vous avez téléchargé à l'étape 1.

    oauth2l fetch --json your_sa_credentials_file.json cloud-platform
  4. Copiez le jeton OAuth 2.0 renvoyé et stockez-le dans une variable, telle que TOKEN. Exemple :
    export TOKEN=ya29....Ts13inj3LrqMJlztwygtM
  5. Appelez l'API setSyncAuthorization afin d'activer les autorisations requises pour le synchronisateur :
    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"]}'
    

    Où :

    • your_org_name : nom de l'organisation hybride.
    • synchronizer-manager-service-account-name : nom d'un compte de service disposant du rôle Gestionnaire de synchronisateur Apigee. Le nom se présente sous la forme d'une adresse e-mail. Par exemple, my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com.

    Exemple :

    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"]}'
    

    Pour en savoir plus sur cette API, consultez la section API SyncAuthorization.

  6. Pour vérifier que le compte de service a été défini, appelez l'API suivante pour obtenir la liste des comptes de service :
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \
       -d ''

    La sortie ressemble à ceci :

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