Configurare il sincronizzazione

Questa sezione descrive il programma di sincronizzazione.

Panoramica sincronizzatore

Nell'ibrido di Apigee, il compito principale di Sincronizzatore è eseguire il polling e scaricare i contratti di runtime forniti dal piano di gestione. Le informazioni comunicate per contratto includono proxy API, prodotti API, cache e host virtuali.

Le istanze di sincronizzazione in esecuzione nel piano di runtime dovrebbero eseguire il polling del piano di gestione su base regolare, scaricare i contratti e renderli disponibili per le istanze di runtime locali.

Un sincronizzazione può supportare molti processori di messaggi di cui è stato eseguito il deployment nello stesso pod.

Abilita l'accesso con sincronizzazione

Devi concedere l'autorizzazione Sincronizzatore per estrarre gli artefatti di Apigee, come bundle proxy e risorse dal piano di gestione. Devi chiamare un'API Apigee per autorizzare lo strumento di sincronizzazione per estrarre gli artefatti dal piano di gestione al piano di runtime.

  1. Assicurati di aver abilitato l'API Apigee come spiegato nei passaggi di configurazione di GCP. Per maggiori dettagli, consulta il Passaggio 3: abilita le API.
  2. Individua la chiave dell'account di servizio GCP con scrittura (un file JSON) che hai scaricato come parte di Crea account di servizio. L'account di servizio ha il ruolo di Amministratore organizzazione Apigee ed è quello denominato "Apigee-org-admin". Se non hai creato questo account di servizio in precedenza, devi farlo prima di continuare.
  3. Utilizza la chiave dell'account di servizio dell'amministratore di Apigee Org per generare un token di accesso OAuth 2.0 utilizzando uno dei seguenti metodi. Questo token è necessario per autenticare le API Apigee.

    gcloud

    Utilizza gcloud per ottenere un token di accesso OAuth 2.0, passando il file JSON delle credenziali dell'account di servizio scaricato utilizzando la variabile di ambiente GOOGLE_APPLICATION_CREDENTIALS:

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

    Viene restituito un token OAuth2.0.

    Per maggiori informazioni, consulta gcloud beta auth application-default Print-access-token.

    utilità OAuth2l

    Utilizza oauth2l per ottenere un token di accesso OAuth 2.0, trasmettendo il file JSON delle credenziali dell'account di servizio che hai scaricato nel passaggio 1.

    oauth2l fetch --json your_sa_credentials_file.json cloud-platform
  4. Copia il token OAuth 2.0 restituito e archivialo in una variabile, ad esempio TOKEN. Ad esempio:
    export TOKEN=ya29....Ts13inj3LrqMJlztwygtM
  5. Chiama l'API setSyncPERMISSION per abilitare le autorizzazioni richieste per Sincronizzatore:
    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"]}'
    

    Dove:

    • your_org_name: nome dell'organizzazione ibrida.
    • synchronizer-manager-service-account-name: il nome di un account di servizio con il ruolo Gestore sincronizzazione Apigee. Il nome segue la forma di un indirizzo email. Ad esempio: my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com

    Esempio:

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

    Per scoprire di più su questa API, consulta l'API SyncPermission.

  6. Per verificare che l'account di servizio sia stato impostato, chiama la seguente API per ottenere un elenco di account di servizio:
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type:application/json" \
      "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \
       -d ''

    L'output è simile al seguente:

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