Affinché il piano di runtime e il control plane possano comunicare, devi abilitare le autorizzazioni richieste per l'accesso di Synchronizer e dell'editore di Analytics con l'API updateControlPlaneAccess.
Ottenere un token di autorizzazione
Per effettuare le chiamate API Apigee descritte più avanti in questo argomento, devi ottenere un token di autorizzazione con il ruolo Amministratore organizzazione Apigee.
- Se non sei il proprietario del progetto Google Cloud associato alla tua organizzazione Apigee Hybrid, assicurati che il tuo account utente Google Cloud disponga del ruolo roles/apigee.admin (amministratore dell'organizzazione Apigee). Puoi controllare i ruoli che ti sono stati assegnati con questo comando:
gcloud projects get-iam-policy $PROJECT_ID \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:your_account_email"
Ad esempio:
gcloud projects get-iam-policy my-project \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:myusername@example.com"
L'output dovrebbe includere
roles/apigee.admin
. - Se non hai
roles/apigee.admin
, aggiungi il ruolo Amministratore dell'organizzazione Apigee al tuo account utente. Utilizza il seguente comando per aggiungere il ruolo al tuo account utente:gcloud projects add-iam-policy-binding $PROJECT_ID \ --member user:your_account_email \ --role roles/apigee.admin
Ad esempio:
gcloud projects add-iam-policy-binding my-project \ --member user:myusername@example.com \ --role roles/apigee.admin
-
Nella riga di comando, recupera le credenziali di autenticazione
gcloud
utilizzando il comando seguente:Linux / macOS
export TOKEN=$(gcloud auth print-access-token)
Per verificare che il token sia stato compilato, utilizza
echo
, come mostrato nell'esempio seguente:echo $TOKEN
Dovrebbe essere visualizzato il token come stringa codificata.
Windows
for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%a
Per verificare che il token sia stato compilato, utilizza
echo
, come mostrato nell'esempio seguente:echo %TOKEN%
Dovrebbe essere visualizzato il token come stringa codificata.
Attivare l'accesso al sincronizzatore
Per attivare l'accesso al sincronizzatore:
- Ottieni l'indirizzo email del account di servizio a cui stai concedendo l'accesso al sincronizzatore.
Per gli ambienti non di produzione (come suggerito in questo tutorial), deve essere
apigee-non-prod
. Per gli ambienti di produzione, deve essereapigee-synchronizer
. Utilizza questo comando:gcloud iam service-accounts list --project $PROJECT_ID --filter "apigee-synchronizer"
- Chiama l'API
updateControlPlaneAccess
per abilitare le autorizzazioni richieste per Synchronizer utilizzando il seguente comando:
Nessuna residenza dei dati
curl -X PATCH -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=synchronizer_identities" \ -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com\"]}"
Dove:
$ORG_NAME
: il nome della tua organizzazione ibrida.apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com
: l'indirizzo email del account di servizio.
Residenza dei dati
curl -X PATCH -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=synchronizer_identities" \ -d "{\"synchronizer_identities\": [\"serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com\"]}"
Dove:
CONTROL_PLANE_LOCATION
: la posizione dei dati del control plane se l'installazione ibrida utilizza la residenza dei dati. Questa è la posizione in cui vengono archiviati i contenuti principali dei clienti, come i bundle proxy. Per un elenco, consulta Regioni del control plane dell'API Apigee disponibili.$ORG_NAME
: il nome della tua organizzazione ibrida.apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com
: l'indirizzo email del account di servizio.
- Per verificare che il account di servizio sia stato impostato, utilizza il seguente comando per chiamare l'API e ottenere
un elenco di service account:
Nessuna residenza dei dati
curl -X GET -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess"
Residenza dei dati
curl -X GET -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess"
L'output dovrebbe essere simile al seguente:
{ "synchronizerIdentities": [ "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com" ] }
Attivare l'accesso del publisher ad Analytics
Diversi componenti runtime di Apigee hybrid pubblicano record di analisi e debug per fornire informazioni per la generazione di report e il debug. Per abilitare la pubblicazione di questi dati, devi concedere autorizzazioni aggiuntive ai service account che eseguono questi componenti Apigee per pubblicare i dati direttamente nel control plane.
Per attivare l'accesso del publisher ad Analytics:
- Ottieni l'indirizzo email del account di servizio a cui stai concedendo l'accesso come editore di Analytics.
Per gli ambienti non di produzione (come suggerito in questo tutorial), deve essere
apigee-non-prod
. Per gli ambienti di produzione, deve essereapigee-runtime
. - Imposta le autorizzazioni per l'account di servizio di runtime per pubblicare i dati nel control plane con il seguente comando:
Nessuna residenza dei dati
curl -X PATCH -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \ -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
Residenza dei dati
curl -X PATCH -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess?update_mask=analytics_publisher_identities" \ -d "{\"analytics_publisher_identities\": [\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
La risposta dovrebbe essere simile alla seguente:
{ "name": "organizations/YOUR_ORG_NAME/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata", "operationType": "UPDATE", "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess", "state": "IN_PROGRESS" } }
Dove OPERATION_ID è l'UUID dell'operazione, ad esempio
8316aa78-c137-4733-92ec-cc0d2d92fd29
. - Salva l'ID operazione in una variabile di ambiente da utilizzare per verificare lo stato dell'operazione.
Sintassi
export OPERATION_ID=OPERATION_ID
Esempio
export OPERATION_ID=8316aa78-c137-4733-92ec-cc0d2d92fd29
- Verifica lo stato dell'operazione utilizzando l'identificatore nel campo name della risposta all'aggiornamento:
Nessuna residenza dei dati
curl -X GET -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$OPERATION_ID"
Residenza dei dati
curl -X GET -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/$OPERATION_ID"
La risposta dovrebbe essere simile alla seguente:
{ "name": "organizations/YOUR_ORG_NAME/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata", "operationType": "UPDATE", "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess", "state": "FINISHED" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.apigee.v1.ControlPlaneAccess", "name": "organizations/YOUR_ORG_NAME/controlPlaneAccess" } }
- Verifica la configurazione ControlPlaneAccess dell'organizzazione:
Nessuna residenza dei dati
curl "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \ -H "Authorization: Bearer $TOKEN"
Residenza dei dati
curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \ -H "Authorization: Bearer $TOKEN"
La risposta dovrebbe essere simile alla seguente:
{ "synchronizerIdentities": [ "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com" ], "analyticsPublisherIdentities": [ "serviceAccount:apigee-runtime@YOUR_ORG_NAME.iam.gserviceaccount.com" ] }
Ora hai abilitato la comunicazione tra i piani di runtime e di gestione di Apigee hybrid. Successivamente, installa cert-manager per consentire ad Apigee hybrid di interpretare e gestire i certificati.