Configura el sincronizador

En esta sección, se describe el sincronizador.

Descripción general del sincronizador

En Apigee Hybrid, el trabajo principal del sincronizador es consultar y descargar los contratos del entorno de ejecución que proporciona el plano de administración. La información que se comunica por contrato incluye proxies de API, productos de API, cachés y hosts virtuales. El sincronizador almacena de forma predeterminada los datos de configuración del entorno en la base de datos de Cassandra.

Se espera que las instancias de sincronización que se ejecutan en el plano del entorno de ejecución sondeen el plano de administración de forma periódica, descarguen los contratos y los pongan a disposición de las instancias de entorno de ejecución locales.

Un sincronizador puede admitir muchos procesadores de mensajes implementados en el mismo pod.

Habilita el acceso del sincronizador

Debes otorgar el permiso Sincronizador para extraer artefactos de Apigee, como paquetes de proxy y recursos del plano de administración. Debes llamar a una API de Apigee a fin de autorizar que el sincronizador extraiga artefactos del plano de administración al plano del entorno de ejecución.

  1. Asegúrate de que habilitaste la API de Apigee como se explica en los pasos de configuración de Google Cloud. Para obtener más detalles, consulta cómo habilitar las APIs.
  2. Busca la clave de la cuenta de servicio de Google Cloud habilitada para la escritura (un archivo JSON) que descargaste como parte de Crea cuentas de servicio y credenciales. La cuenta de servicio tiene la función de Administrador de la organización de Apigee y se llama “apigee-org-admin”. Si no creaste esta cuenta de servicio antes, debes hacerlo antes de continuar.
  3. Usa la clave de cuenta de servicio del administrador de la organización de Apigee para generar un token de acceso de OAuth 2.0. Este token es obligatorio para autenticar las API de Apigee.

    gcloud

    Usa gcloud para obtener un token de acceso de OAuth 2.0 y pasa el archivo JSON de credenciales de la cuenta de servicio que descargaste mediante la variable de entorno GOOGLE_APPLICATION_CREDENTIALS:

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

    Se muestra un token OAuth2.0.

    Para obtener más información, consulta gcloud beta auth application-default print-access-token.

  4. Copia el token de OAuth 2.0 que se muestra y almacénalo en una variable, como TOKEN. Por ejemplo:
    export TOKEN=ya29....Ts13inj3LrqMJlztwygtM
  5. Llama a la API de setSyncAuthorization para habilitar los permisos requeridos por el sincronizador:
    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"]}'
    

    Donde:

    • your_org_name: Es el nombre de la organización híbrida.
    • synchronizer-manager-service-account-name: Es el nombre de una cuenta de servicio con la función de Apigee Synchronizer Manager. El nombre se forma como una dirección de correo electrónico. Por ejemplo: my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com

    Ejemplo:

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

    Para obtener más información sobre esta API, consulta API de setSyncAuthorization.

  6. Para verificar que se configuró la cuenta de servicio, llama a la siguiente API a fin de obtener una lista de cuentas de servicio:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \
       -d ''

    El resultado es similar al siguiente:

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