Configurar o Synchronizer

Esta seção descreve o sincronizador.

Visão geral do Synchronizer

No híbrido da Apigee, 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.

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 a permissão Synchronizer para extrair artefatos da Apigee, como pacotes e recursos 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.

  1. Verifique se você ativou a API Apigee, conforme explicado nas etapas de configuração do GCP. Veja mais detalhes em Etapa 3: ativar APIs.
  2. Localize a chave da conta de serviço do GCP ativada para gravação (um arquivo JSON) que foi salvo como parte de Criar contas de serviço. 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.
  3. Use a chave da conta de serviço do administrador da organização da Apigee para gerar um token de acesso do OAuth 2.0 usando um dos métodos a seguir. Esse token é necessário para autenticar as APIs da Apigee.

    gcloud

    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:

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

    Um token OAuth2.0 é retornado.

    Para mais informações, consulte token de acesso do aplicativo de impressão do gcloud beta padrão auth padrão.

    Utilitário oauth2l

    Use oauth2l para receber um token de acesso do OAuth 2.0, passando o arquivo JSON das credenciais da conta de serviço que você baixou na etapa 1.

    oauth2l fetch --json your_sa_credentials_file.json cloud-platform
  4. Copie o token OAuth 2.0 retornado e armazene-o em uma variável, como TOKEN. Exemplo:
    export TOKEN=ya29....Ts13inj3LrqMJlztwygtM
  5. Chame a API setSyncAuthorization para ativar as permissões necessárias para o 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"]}'
    

    Em que:

    • your_org_name: o nome da organização híbrida.
    • synchronizer-manager-service-account-name: o nome de uma conta de serviço com o papel Gerenciador de Synchronizer da Apigee. O nome tem o formato de endereço de e-mail. Por exemplo: my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com

    Exemplo:

    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 mais informações sobre essa API, consulte API SyncAuthorization .

  6. Para verificar se a conta de serviço foi definida, chame a seguinte API para receber uma lista de contas de serviço:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \
       -d ''

    A resposta será semelhante a:

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