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.

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 haber habilitado la API de Apigee como se explica en los pasos de configuración de GCP. Para obtener detalles, consulta el Paso 3: Habilita las API.
  2. Busca la clave de la cuenta de servicio de GCP habilitada para la escritura (un archivo JSON) que descargaste como parte de Crea cuentas de servicio. 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 de administrador de la organización de Apigee para generar un token de acceso de OAuth 2.0 mediante uno de los siguientes métodos. 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.

    Utilidad de oauth2l

    Usa oauth2l para obtener un token de acceso OAuth 2.0 y pasa el archivo JSON de credenciales de la cuenta de servicio que descargaste en el paso 1.

    oauth2l fetch --json your_sa_credentials_file.json cloud-platform
  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 necesarios en Synchronizer:
    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"]}'
    

    Aquí:

    • 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 SyncAuthorization.

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