Panoramica
Questo documento descrive le procedure per attivare le tariffe ricorrenti, di ricarica e di configurazione per la funzionalità di monetizzazione di Apigee nelle organizzazioni ibride.
Prerequisiti
- Apigee hybrid versione 1.14.3 o successive. Per le istruzioni per l'upgrade, vedi Upgrade di Apigee hybrid.
- La monetizzazione è abilitata per il tuo progetto Apigee hybrid. Consulta Abilitazione della monetizzazione Apigee.
Procedura
L'attivazione delle commissioni ricorrenti, di ricarica e di configurazione per la monetizzazione di Apigee hybrid richiede la creazione e la configurazione dell'account di servizio Google apigee-mint-task-scheduler
e la concessione dell'accesso alla pipeline di dati Pub/Sub.
- Se non hai ancora scaricato la versione 1.14.3 dei grafici Helm, estrai i grafici Helm con i seguenti comandi:
Nella directory $APIGEE_HELM_CHARTS_HOME, utilizza il comando
pull
per copiare tutti i grafici Helm di Apigee Hybrid nell'archiviazione locale:export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
export CHART_VERSION=1.14.3
helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar
helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
- Crea il account di servizio
apigee-mint-task-scheduler
.Se non hai ancora creato il account di servizio
apigee-mint-task-scheduler
, crealo ora con lo strumentocreate-service-account
. Per informazioni sulla creazione di service account nell'ambito di una nuova installazione ibrida, vedi Passaggio 4: crea service account.-
Individua lo strumento
create-service-account
nella directory $APIGEE_HELM_CHARTS_HOME:$APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-account
Verifica di poter eseguire
create-service-account
. Se hai appena scaricato i grafici, il filecreate-service-account
potrebbe non essere in modalità eseguibile. Nella directory APIGEE_HELM_CHARTS_HOME esegui questo comando:$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help
Se l'output indica
permission denied
, devi rendere eseguibile il file, ad esempio conchmod
in Linux, macOS o UNIX o in Esplora risorse di Windows o con il comandoicacls
in Windows. Ad esempio:chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account
-
Crea il account di servizio
apigee-mint-task-scheduler
e archivia il file del certificato scaricato nella directory del graficoapigee-org
con questo comando:$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \ --profile apigee-mint-task-scheduler \ --env prod \ --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
-
Individua lo strumento
- Abilita l'accesso al control plane per gli account di servizio
apigee-mart
eapigee-mint-task-scheduler
.Se non hai ancora attivato l'accesso al control plane per gli account di servizio
apigee-mart
eapigee-mint-task-scheduler
, fallo ora seguendo questi passaggi. Per informazioni sull'attivazione dell'accesso al control plane nell'ambito di una nuova installazione ibrida, consulta Passaggio 7: attiva l'accesso al control plane.- Se non sei il proprietario del progetto Google Cloud associato alla tua organizzazione Apigee ibrida, 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"
Se l'output non include roles/apigee.admin, consulta il Passaggio 7: attiva l'accesso al control plane per i passaggi per aggiungere il ruolo o per far eseguire questo passaggio a un utente che dispone del ruolo.
- Chiama l'API
updateControlPlaneAccess
per abilitare le autorizzazioni richieste utilizzando 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-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
Dove i seguenti sono gli indirizzi email dei service account:
apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
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-mart@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-runtime@$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.- Di seguito sono riportati gli indirizzi email dei service account:
apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
-
Verifica l'accesso al control plane per gli account di servizio
apigee-mart
eapigee-mint-task-scheduler
.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/controlPlaneAccess"
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/controlPlaneAccess"
L'output deve includere i service account
apigee-mart
,apigee-mint-task-scheduler
eapigee-runtime
simili ai seguenti:{ "synchronizerIdentities": [ "serviceAccount:apigee-synchronizer@$ORG_NAME.iam.gserviceaccount.com" ], "analyticsPublisherIdentities": [ "serviceAccount:apigee-mart@$ORG_NAME.iam.gserviceaccount.com", "serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com", "serviceAccount:apigee-runtime@$ORG_NAME.iam.gserviceaccount.com" ] }
- Se non sei il proprietario del progetto Google Cloud associato alla tua organizzazione Apigee ibrida, 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:
- Aggiungi le strofe specifiche per la monetizzazione al file
overrides.yaml
.Aggiungi le seguenti strofe al file
overrides.yaml
:runtime: image: url: "gcr.io/apigee-release/hybrid/apigee-runtime" tag: "1.14.3" #must be 1.14.3 or higher. mintTaskScheduler: # if using stored SA cert files: serviceAccountPath: MINT_TASK_SCHEDULER_SA_CERT_FILE.json # if using stored Kubernetes secrets: serviceAccountRef: MINT_TASK_SCHEDULER_SA_K8S_SECRET # if using Workload Identity on GKE: gsa: "apigee-mint-task-scheduler@PROJECT_ID.iam.gserviceaccount.com" # or if using Vault: serviceAccountSecretProviderClass: apigee-orgsakeys-spc
Se utilizzi i secret di Kubernetes, consulta Archiviazione dei dati in un secret Kubernetes.
Se utilizzi Vault, consulta Memorizzare le chiavi dei account di servizio in Hashicorp Vault.
Se utilizzi Vault, assicurati di aver aggiunto
mint
alla classe del provider di secret specifico dell'organizzazione. Vedi Creare oggettiSecretProviderClass
. -
Applica le modifiche ai grafici
apigee-operator
,apigee-org
eapigee-env
.Se hai impostato le variabili di ambiente $ORG_NAME e APIGEE_NAMESPACE, puoi utilizzarle nei seguenti comandi:
- Installa l'operatore.
Prova:
helm upgrade operator apigee-operator/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
Installa il grafico:
helm upgrade operator apigee-operator/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
- Installa l'organizzazione Apigee.
Prova:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
Installa il grafico:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
- Installa l'ambiente. Ripeti questo passaggio per ogni ambiente.
Devi installare un ambiente alla volta. Specifica l'ambiente con
--set env=
ENV_NAME. Se hai impostato la variabile di ambiente $ENV_NAME nella shell, puoi utilizzarla nei comandi seguenti:Prova:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml \ --dry-run=server
ENV_RELEASE_NAME è un nome utilizzato per tenere traccia dell'installazione e degli upgrade del grafico
apigee-env
. Questo nome deve essere univoco rispetto agli altri nomi delle release Helm nell'installazione. Di solito è uguale aENV_NAME
. Tuttavia, se il tuo ambiente ha lo stesso nome del tuo gruppo di ambienti, devi utilizzare nomi di release diversi per l'ambiente e il gruppo di ambienti, ad esempiodev-env-release
edev-envgroup-release
. Per ulteriori informazioni sulle release in Helm, consulta la sezione Tre concetti importanti nella documentazione di Helm.Installa il grafico:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
- Installa l'operatore.
- Solo Workload Identity su GKE:configura Workload Identity per il account di servizio
apigee-mint-task-scheduler
.Se esegui una nuova installazione, esegui questo passaggio in aggiunta a quelli descritti nel (facoltativo) Passaggio 11: configura Workload Identity.
Quando esegui l'upgrade di Helm con il flag
--dry-run
per il graficoapigee-org
, l'output includerà i comandi necessari per configurare Workload Identity con i nomi corretti di account di servizio Google e account di servizio Kubernetes.- Recupera i comandi per configurare Workload Identity per
apigee-org
ed esegui il comando inNOTES:
nell'output.helm upgrade $ORG_NAME apigee-org/ \ --namespace $NAMESPACE \ -f overrides.yaml \ --dry-run=server
L'output dovrebbe contenere istruzioni simili alle seguenti in
NOTES:
:NOTES: ... For organization GKE Workload Identity, please make sure to add the below membership to the IAM policy binding using the respective Kubernetes SA (KSA). gcloud iam service-accounts add-iam-policy-binding apigee-mint-task-scheduler@PROJECT_ID.iam.gserviceaccount.com \ --role roles/iam.workloadIdentityUser \ --member "serviceAccount:PROJECT_ID.svc.id.goog[APIGEE_NAMESPACE/apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID-sa]" \ --project PROJECT_ID
Il nome del account di servizio Kubernetes ha il formato
apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID
. - Esegui i comandi per configurare Workload Identity per
apigee-mint-task-scheduler
.
- Recupera i comandi per configurare Workload Identity per
Vedi anche
- Abilitazione della monetizzazione Apigee per saperne di più sulla monetizzazione in Apigee.
mintTaskScheduler.serviceAccountPath
: imposta il percorso del file della chiave del account di servizio per il account di servizioapigee-mint-task-scheduler
.mintTaskScheduler.serviceAccountRef
: imposta il secret Kubernetes che contiene la chiave del account di servizio per il account di servizioapigee-mint-task-scheduler
.mintTaskScheduler.gsa
: imposta il account di servizio Google per il account di servizioapigee-mint-task-scheduler
. Deve essere l'indirizzo email del account di servizio.