Na Apigee híbrida, a tarefa principal do Synchronizer é pesquisar e fazer o download dos contratos de ambiente de execução
fornecidos pelo plano de gerenciamento. As informações comunicadas por contrato incluem proxies de API
produtos de API, caches e hosts virtuais. O sincronizador por padrão armazena dados de configuração do ambiente no banco de dados do Cassandra.
Espera-se que as instâncias do Synchronizer em execução no plano de ambiente de execução pesquise
o plano de gerenciamento regularmente, faça o download dos contratos e disponibilize o mesmo para instâncias de ambiente de execução
local.
Um Synchronizer pode aceitar vários processadores de mensagens implantados no mesmo pod.
Ativar acesso do Synchronizer
É preciso conceder ao Synchronizer permissão para extrair
artefatos da Apigee, como recursos e pacotes de proxy do plano de gerenciamento. Você precisa chamar uma
API Apigee para autorizar o sincronizador a extrair artefatos do plano de gerenciamento para o plano de
ambiente de execução.
Verifique se você ativou a API Apigee conforme explicado nas etapas de configuração do Google Cloud.
Para ver detalhes, consulte Ativar APIs.
Localize a chave da conta de serviço do Google Cloud ativada para gravação (um arquivo JSON) de que fez o download como parte de Criar contas de serviço e credenciais. A conta de serviço tem o papel Administrador da organização Apigee
e é denominada "apigee-org-admin". Se você não criou essa conta de serviço
anteriormente, faça isso antes de continuar.
Use a chave da conta de serviço de admin. da organização da Apigee para gerar um token de acesso do OAuth 2.0.
Esse token é necessário para autenticar as
APIs da Apigee.
Use o gcloud para receber um
token de acesso do OAuth 2.0, passando o arquivo JSON das credenciais da conta de serviço que você
salvou usando a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-28 UTC."],[[["\u003cp\u003eThe Synchronizer in Apigee hybrid polls and downloads runtime contracts from the management plane, including API proxies, products, caches, and virtual hosts, storing environment configuration data in the Cassandra database.\u003c/p\u003e\n"],["\u003cp\u003eSynchronizers regularly poll the management plane to download contracts and make them available to local runtime instances, with one Synchronizer able to support many Message Processors in the same pod.\u003c/p\u003e\n"],["\u003cp\u003eEnabling Synchronizer access requires granting it permission to pull Apigee artifacts by using the Apigee Org Admin service account to generate an OAuth 2.0 access token and calling the \u003ccode\u003esetSyncAuthorization\u003c/code\u003e API.\u003c/p\u003e\n"],["\u003cp\u003eTo authorize Synchronizer access, you must add a service account with the \u003cstrong\u003eApigee Synchronizer Manager\u003c/strong\u003e role when calling the \u003ccode\u003esetSyncAuthorization\u003c/code\u003e API, and if you are using terraform you can use the \u003ccode\u003egoogle_apigee_sync_authorization\u003c/code\u003e attribute instead.\u003c/p\u003e\n"],["\u003cp\u003eYou can use the \u003ccode\u003egetSyncAuthorization\u003c/code\u003e API to verify that a service account has been properly configured for Synchronizer access.\u003c/p\u003e\n"]]],[],null,["# Configure the Synchronizer\n\n| You are currently viewing version 1.13 of the Apigee hybrid documentation. For more information, see [Supported versions](/apigee/docs/hybrid/supported-platforms#supported-versions).\n\nThis section describes the Synchronizer.\n\nSynchronizer overview\n---------------------\n\nIn Apigee hybrid, the Synchronizer's primary job is to poll and download the runtime contracts\nwhich are supplied by the management plane. Information communicated by contract includes API\nproxies, API products, caches, and virtual hosts. Synchronizer by default stores environment\nconfiguration data in the Cassandra database.\n\nSynchronizer instances running in the runtime-plane are expected to poll the management\nplane on a regular basis, download the contracts and make the same available to local runtime\ninstances.\n\nOne Synchronizer can support many Message Processors deployed in the same pod.\n\nEnable Synchronizer access\n--------------------------\n\nYou must grant the [Synchronizer](/apigee/docs/hybrid/v1.13/what-is-hybrid#synchronizer) permission to pull down\nApigee artifacts, such as proxy bundles and resources from the management plane. You must call an\nApigee API to authorize the Synchronizer to pull artifacts down from the management plane to the\nruntime plane.\n\n1. Ensure that you have enabled the Apigee API as explained in the Google Cloud setup steps. For details, see [Enable APIs](./precog-enableapi).\n2. Locate the **write-enabled Google Cloud service account key** (a JSON file) that you downloaded as part of [Create service accounts and credentials](/apigee/docs/hybrid/v1.13/install-service-accounts). The service account has the **Apigee Org Admin** role and is the one named \"apigee-org-admin\". If you did not previously create this service account, you must do so before continuing.\n3. Use the Apigee Org Admin service account key to generate an OAuth 2.0 access token. This token is required to authenticate the [Apigee APIs](/apigee/docs/reference/apis/apigee/rest).\n\n Use [gcloud](/sdk/docs) to obtain an\n OAuth 2.0 access token, passing the service account credentials JSON file that you\n downloaded using `GOOGLE_APPLICATION_CREDENTIALS` environment variable: \n\n export GOOGLE_APPLICATION_CREDENTIALS=\u003cvar translate=\"no\"\u003eyour_sa_credentials_file\u003c/var\u003e.json\n gcloud auth application-default print-access-token\n\n An OAuth2.0 token is returned.\n\n For more information, see\n [gcloud beta auth application-default print-access-token](/sdk/gcloud/reference/beta/auth/application-default/print-access-token).\n4. Copy the OAuth 2.0 token returned and store it in a variable, such as `TOKEN`. For example: \n\n ```\n export TOKEN=ya29....Ts13inj3LrqMJlztwygtM\n ```\n5. Call the [setSyncAuthorization](/apigee/docs/reference/apis/apigee/rest/v1/organizations/setSyncAuthorization) API to enable the required permissions for Synchronizer: **TIP:** If your are using Terraform, you can use the [`google_apigee_sync_authorization`\n | Terraform attribute](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/apigee_sync_authorization) instead of calling the `setSyncAuthorization` API.\n | **IMPORTANT:** Be sure that the service account name that you add to this API has the **Apigee Synchronizer Manager** role. For more information about service accounts, see [Create service accounts and credentials](/apigee/docs/hybrid/v1.13/install-service-accounts).\n\n ### No data residency\n\n ```\n curl -X POST -H \"Authorization: Bearer $TOKEN\" \\\n -H \"Content-Type:application/json\" \\\n \"https://apigee.googleapis.com/v1/organizations/YOUR_ORG_NAME:setSyncAuthorization\" \\\n -d '{\"identities\":[\"serviceAccount:SYNCHRONIZER_MANAGER_SERVICE_ACCOUNT_NAME\"]}'\n ```\n\n Where:\n - `YOUR_ORG_NAME`: The name of the hybrid organization.\n - `SYNCHRONIZER_MANAGER_SERVICE_ACCOUNT_NAME`: The name of a service account with the **Apigee Synchronizer Manager** role. The name is formed like an email address. For example: `my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com`\n\n Example: \n\n ```\n curl -X POST -H \"Authorization: Bearer $TOKEN\" \\\n -H \"Content-Type:application/json\" \\\n \"https://apigee.googleapis.com/v1/organizations/my_org:setSyncAuthorization\" \\\n -d '{\"identities\":[\"serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com\"]}'\n ```\n\n ### Data residency\n\n ```\n curl -X POST -H \"Authorization: Bearer $TOKEN\" \\\n -H \"Content-Type:application/json\" \\\n \"https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/YOUR_ORG_NAME:setSyncAuthorization\" \\\n -d '{\"identities\":[\"serviceAccount:SYNCHRONIZER_MANAGER_SERVICE_ACCOUNT_NAME\"]}'\n ```\n\n Where:\n - `YOUR_ORG_NAME`: The name of the hybrid organization.\n - `CONTROL_PLANE_LOCATION`: The location for your control plane data if your hybrid installation uses [data residency](/apigee/docs/api-platform/get-started/drz-concepts). This is location where customer core content like proxy bundles are stored. For a list see [Available Apigee API control plane regions](https://cloud.google.com/apigee/docs/locations#available-apigee-api-control-plane-regions).\n - `SYNCHRONIZER_MANAGER_SERVICE_ACCOUNT_NAME`: The name of a service account with the **Apigee Synchronizer Manager** role. The name is formed like an email address. For example: `my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com`\n\n Example: \n\n ```\n curl -X POST -H \"Authorization: Bearer $TOKEN\" \\\n -H \"Content-Type:application/json\" \\\n \"https://us-apigee.googleapis.com/v1/organizations/my_org:setSyncAuthorization\" \\\n -d '{\"identities\":[\"serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com\"]}'\n ```\n\n For more information on this API, see [setSyncAuthorization](/apigee/docs/reference/apis/apigee/rest/v1/organizations/setSyncAuthorization) API.\n6. To verify that the service account was set, call the following API to get a list of service accounts:\n\n ### No data residency\n\n ```\n curl -X POST -H \"Authorization: Bearer $TOKEN\" \\\n -H \"Content-Type:application/json\" \\\n \"https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization\" \\\n -d ''\n ```\n\n ### Data residency\n\n ```\n curl -X POST -H \"Authorization: Bearer $TOKEN\" \\\n -H \"Content-Type:application/json\" \\\n \"https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization\" \\\n -d ''\n ```\n\n The output looks similar to the following: \n\n ```transact-sql\n {\n \"identities\":[\n \"serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com\"\n ],\n \"etag\":\"BwWJgyS8I4w=\"\n }\n ```"]]