Información general
En este documento se describen los procedimientos para habilitar las cuotas periódicas, de recarga y de configuración de la función de monetización de Apigee en organizaciones híbridas.
Requisitos previos
- Apigee hybrid versión 1.14.3 o posterior. Consulta las instrucciones de actualización en Actualizar Apigee hybrid.
- La monetización está habilitada en tu proyecto de Apigee hybrid. Consulta Habilitar la monetización de Apigee.
Procedimiento
Para habilitar las cuotas periódicas, de recarga y de configuración en la monetización de Apigee hybrid, debes crear y configurar la cuenta de servicio de Google apigee-mint-task-scheduler
y concederle acceso a la canalización de datos de Pub/Sub.
- Si aún no has descargado la versión 1.14.3 de los gráficos de Helm, extrae los gráficos de Helm con los siguientes comandos:
En el directorio $APIGEE_HELM_CHARTS_HOME, usa el comando
pull
para copiar todos los gráficos de Helm de Apigee hybrid en tu almacenamiento local: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 la cuenta de servicio
apigee-mint-task-scheduler
.Si aún no has creado la cuenta de servicio
apigee-mint-task-scheduler
, hazlo ahora con la herramientacreate-service-account
. Consulta el paso 4: Crea cuentas de servicio para obtener información sobre cómo crear cuentas de servicio como parte de una instalación híbrida nueva.-
Busca la herramienta
create-service-account
en el directorio $APIGEE_HELM_CHARTS_HOME:$APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-account
Verifica que puedes ejecutar
create-service-account
. Si acabas de descargar los gráficos, es posible que el archivocreate-service-account
no esté en modo ejecutable. En el directorio APIGEE_HELM_CHARTS_HOME, ejecuta el siguiente comando:$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help
Si la salida indica que
permission denied
, debes hacer que el archivo sea ejecutable. Por ejemplo, conchmod
en Linux, macOS o UNIX, o en el Explorador de Windows, o con el comandoicacls
en Windows. Por ejemplo:chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account
-
Crea la cuenta de servicio
apigee-mint-task-scheduler
y almacena el archivo de certificado descargado en el directorio del gráficoapigee-org
con el siguiente 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
-
Busca la herramienta
- Habilita el acceso al plano de control para las cuentas de servicio
apigee-mart
yapigee-mint-task-scheduler
.Si aún no has habilitado el acceso al plano de control para las cuentas de servicio
apigee-mart
yapigee-mint-task-scheduler
, hazlo ahora siguiendo estos pasos. Consulta el paso 7: Habilita el acceso al plano de control para obtener información sobre cómo habilitar el acceso al plano de control como parte de una instalación híbrida nueva.- Si no eres el propietario del proyecto de Google Cloud asociado a tu organización híbrida de Apigee, asegúrate de que tu cuenta de usuario de Google Cloud tenga el rol roles/apigee.admin (administrador de la organización de Apigee). Puedes consultar los roles que tienes asignados con este comando:
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:your_account_email"
Si el resultado no incluye roles/apigee.admin, consulta el paso 7: Habilita el acceso al plano de control para saber cómo añadir el rol o pedirle a un usuario que lo tenga que realice este paso.
- Llama a la API updateControlPlaneAccess para habilitar los permisos necesarios con el siguiente comando:
Sin residencia de datos
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\"]}"
Donde los siguientes son las direcciones de correo de las cuentas de servicio:
apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
Residencia de datos
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\"]}"
Donde:
CONTROL_PLANE_LOCATION
es la ubicación de los datos del plano de control si tu instalación híbrida usa la residencia de datos. Es la ubicación en la que se almacena el contenido principal del cliente, como los paquetes proxy. Para ver una lista, consulta Regiones disponibles del plano de control de la API de Apigee.- Estas son las direcciones de correo de las cuentas de servicio:
apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
-
Verifica el acceso al plano de control de las cuentas de servicio
apigee-mart
yapigee-mint-task-scheduler
.Sin residencia de datos
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"
Residencia de datos
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"
El resultado debe incluir las cuentas de servicio
apigee-mart
,apigee-mint-task-scheduler
yapigee-runtime
, como se muestra a continuación:{ "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" ] }
- Si no eres el propietario del proyecto de Google Cloud asociado a tu organización híbrida de Apigee, asegúrate de que tu cuenta de usuario de Google Cloud tenga el rol roles/apigee.admin (administrador de la organización de Apigee). Puedes consultar los roles que tienes asignados con este comando:
- Añade las estrofas específicas de monetización a tu archivo
overrides.yaml
.Añade las siguientes estrofas a tu archivo
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
Si usas secretos de Kubernetes, consulta Almacenar datos en un secreto de Kubernetes.
Si usas Vault, consulta Almacenar claves de cuentas de servicio en HashiCorp Vault.
Si usas Vault, asegúrate de haber añadido
mint
a la clase de proveedor de secretos específica de la organización. Consulta Crear objetosSecretProviderClass
. -
Aplica los cambios a los gráficos
apigee-operator
,apigee-org
yapigee-env
.Si has definido las variables de entorno $ORG_NAME y APIGEE_NAMESPACE, puedes usarlas en los siguientes comandos:
- Instala el operador.
Prueba de funcionamiento:
helm upgrade operator apigee-operator/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
Instala el gráfico:
helm upgrade operator apigee-operator/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
- Instala la organización de Apigee.
Prueba de funcionamiento:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
Instala el gráfico:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
- Instala el entorno. Repite este paso en cada entorno.
Debes instalar un entorno cada vez. Especifica el entorno con
--set env=
ENV_NAME. Si has definido la variable de entorno $ENV_NAME en tu shell, puedes usarla en los siguientes comandos:Prueba de funcionamiento:
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 es un nombre que se usa para hacer un seguimiento de la instalación y las actualizaciones del gráfico
apigee-env
. Este nombre debe ser único y diferente de los demás nombres de lanzamientos de Helm de tu instalación. Normalmente, es la misma queENV_NAME
. Sin embargo, si tu entorno tiene el mismo nombre que tu grupo de entornos, debes usar nombres de lanzamiento diferentes para el entorno y el grupo de entornos (por ejemplo,dev-env-release
ydev-envgroup-release
). Para obtener más información sobre las versiones de Helm, consulta Tres conceptos importantes en la documentación de Helm.Instala el gráfico:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
- Instala el operador.
- Solo Workload Identity en GKE: configura Workload Identity para la cuenta de servicio
apigee-mint-task-scheduler
.Si vas a realizar una instalación desde cero, sigue este paso además de los que se indican en el paso 11 (opcional): Configura Workload Identity.
Cuando ejecutes la actualización de Helm con la marca
--dry-run
para el gráficoapigee-org
, el resultado incluirá los comandos que necesitarás para configurar Workload Identity con los nombres correctos de la cuenta de servicio de Google y de la cuenta de servicio de Kubernetes.- Obtén los comandos para configurar Workload Identity para
apigee-org
y ejecuta el comando enNOTES:
en el resultado.helm upgrade $ORG_NAME apigee-org/ \ --namespace $NAMESPACE \ -f overrides.yaml \ --dry-run=server
La salida debe contener instrucciones similares a las siguientes en
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
El nombre de la cuenta de servicio de Kubernetes tiene el formato
apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID
. - Ejecuta los comandos para configurar Workload Identity en
apigee-mint-task-scheduler
.
- Obtén los comandos para configurar Workload Identity para
Consulta también
- Habilitar la monetización de Apigee para obtener más información sobre la monetización en Apigee.
mintTaskScheduler.serviceAccountPath
: define la ruta al archivo de clave de la cuenta de servicioapigee-mint-task-scheduler
.mintTaskScheduler.serviceAccountRef
: define el secreto de Kubernetes que contiene la clave de la cuenta de servicioapigee-mint-task-scheduler
.mintTaskScheduler.gsa
: define la cuenta de servicio de Google para la cuenta de servicio deapigee-mint-task-scheduler
. Debe ser la dirección de correo de la cuenta de servicio.