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. Le synchronisateur stocke par défaut les données de configuration d'environnement dans la base de données Cassandra.

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 Google Cloud. Pour en savoir plus, consultez Activer des API.
  2. Recherchez la clé de compte de service Google Cloud activée en écriture (un fichier JSON) que vous avez téléchargée lors de la création de comptes de service et d'identifiants. 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é du 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. 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.

  4. Copiez le jeton OAuth 2.0 renvoyé et stockez-le dans une variable, telle que TOKEN. Par 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 sur l'API setSyncAuthorization.

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