Affinché il piano di runtime e il piano di controllo possano comunicare, devi attivare le autorizzazioni richieste per l'accesso di Synchronizer e dei publisher di analisi con l'API updateControlPlaneAccess.
Ottenere un token di autorizzazione
Per effettuare le chiamate all'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 ibrida, assicurati che il tuo account utente Google Cloud abbia il ruolo roles/apigee.admin (Amministratore dell'organizzazione Apigee). Puoi controllare i ruoli 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 disponi di
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 seguente comando:Linux / MacOS
export TOKEN=$(gcloud auth print-access-token)
Per verificare che il token sia stato inserito, utilizza
echo
, come illustrato nell'esempio seguente:echo $TOKEN
Il token dovrebbe essere visualizzato 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 inserito, utilizza
echo
, come illustrato nell'esempio seguente:echo %TOKEN%
Il token dovrebbe essere visualizzato come stringa codificata.
Attivare l'accesso al sincronizzatore
Per attivare l'accesso al sincronizzatore:
- Recupera l'indirizzo email dell'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 il seguente 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 dell'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 piano di controllo se l'installazione ibrida utilizza la residenza dei dati. Si tratta della posizione in cui vengono archiviati i contenuti principali del cliente, come i bundle proxy. Per un elenco, consulta Regioni del piano di controllo dell'API Apigee disponibili.${ORG_NAME}
: il nome della tua organizzazione ibrida.apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com
: l'indirizzo email dell'account di servizio.
- Per verificare che l'account di servizio sia stato impostato, utilizza il seguente comando per chiamare l'API e ottenere un elenco di account di servizio:
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 di dati e analisi
Diversi componenti di runtime di Apigee hybrid pubblicano record di analisi e debug per fornire informazioni per i report e il debug. Per abilitare la pubblicazione di questi dati, devi concedere autorizzazioni aggiuntive agli account di servizio che eseguono questi componenti apigee per pubblicare i dati direttamente nel piano di controllo.
Per attivare l'accesso dei publisher ai dati e alle analisi:
- Imposta le autorizzazioni per l'account di servizio di runtime per pubblicare i dati nel piano di controllo con il seguente comando:
Nessuna residenza dei dati
curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-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 $(gcloud auth print-access-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/8316aa78-c137-4733-92ec-cc0d2d92fd29", "metadata": { "@type": "type.googleapis.com/google.cloud.apigee.v1.OperationMetadata", "operationType": "UPDATE", "targetResourceName": "organizations/YOUR_ORG_NAME/controlPlaneAccess", "state": "IN_PROGRESS" } }
- Verifica lo stato dell'operazione utilizzando il parametro name della risposta di aggiornamento:
Nessuna residenza dei dati
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29"
Residenza dei dati
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type:application/json" \ "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29"
La risposta dovrebbe essere simile alla seguente:
{ "name": "organizations/YOUR_ORG_NAME/operations/8316aa78-c137-4733-92ec-cc0d2d92fd29", "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 di ControlPlaneAccess dell'organizzazione:
Nessuna residenza dei dati
curl "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \ -H "Authorization: Bearer $(gcloud auth print-access-token)"
Residenza dei dati
curl "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \ -H "Authorization: Bearer $(gcloud auth print-access-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 attivato la comunicazione tra i piani di gestione e di runtime di Apigee hybrid. Successivamente, installa cert-manager per consentire ad Apigee hybrid di interpretare e gestire i certificati.