Visão geral
Neste documento, descrevemos os procedimentos para ativar taxas recorrentes, de recarga e de configuração para o recurso de monetização da Apigee em organizações híbridas.
Pré-requisitos
- Apigee híbrida versão 1.14.3 ou mais recente. Consulte Como fazer upgrade da Apigee híbrida para instruções de upgrade.
- A monetização está ativada para seu projeto híbrido da Apigee. Consulte Como ativar a monetização da Apigee.
Procedimento
Para ativar as taxas recorrentes, de recarga e de configuração na monetização híbrida da Apigee, é necessário criar e configurar a conta de serviço do Google apigee-mint-task-scheduler
e conceder acesso a ela ao pipeline de dados do Pub/Sub.
- Se você ainda não fez o download da versão 1.14.3 dos gráficos do Helm, extraia os gráficos com os seguintes comandos:
No diretório $APIGEE_HELM_CHARTS_HOME, use o comando
pull
para copiar todos os gráficos do Helm da Apigee híbrida para o armazenamento 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
- Crie a conta de serviço
apigee-mint-task-scheduler
.Se você ainda não tiver criado a conta de serviço
apigee-mint-task-scheduler
, faça isso agora com a ferramentacreate-service-account
. Consulte Etapa 4: criar contas de serviço para informações sobre como criar contas de serviço como parte de uma nova instalação híbrida.-
Localize a ferramenta
create-service-account
no diretório $APIGEE_HELM_CHARTS_HOME:$APIGEE_HELM_CHARTS_HOME/ └── apigee-operator/ └── etc/ └── tools/ └── create-service-account
Verifique se é possível executar
create-service-account
. Se você acabou de fazer o download dos gráficos, o arquivocreate-service-account
pode não estar em um modo executável. No diretório APIGEE_HELM_CHARTS_HOME, execute o seguinte comando:$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help
Se a saída informar
permission denied
, será necessário tornar o arquivo executável, por exemplo, comchmod
no Linux, MacOS ou UNIX ou no Windows Explorer ou com o comandoicacls
no Windows. Exemplo:chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account
-
Crie a conta de serviço
apigee-mint-task-scheduler
e armazene o arquivo de certificado baixado no diretório de gráficoapigee-org
com o seguinte 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
-
Localize a ferramenta
- Ative o acesso ao plano de controle para as contas de serviço
apigee-mart
eapigee-mint-task-scheduler
.Se você ainda não tiver ativado o acesso ao plano de controle para as contas de serviço
apigee-mart
eapigee-mint-task-scheduler
, faça isso agora seguindo estas etapas. Consulte Etapa 7: ativar o acesso ao plano de controle para informações sobre como ativar o acesso ao plano de controle como parte de uma nova instalação híbrida.- Se você não for o proprietário do projeto do Google Cloud associado à organização híbrida da Apigee, verifique se sua conta de usuário do Google Cloud tem o papel roles/apigee.admin (Administrador da organização da Apigee). Verifique os papéis atribuídos a você com este comando:
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:your_account_email"
Se a saída não incluir roles/apigee.admin, consulte Etapa 7: ativar o acesso ao plano de controle para saber como adicionar a função ou pedir que um usuário com a função execute esta etapa.
- Chame a
API updateControlPlaneAccess
para ativar as permissões necessárias usando o seguinte comando:
Sem residência de dados
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\"]}"
Em que os seguintes são os endereços de e-mail das contas de serviço:
apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
Residência dos dados
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\"]}"
Em que:
CONTROL_PLANE_LOCATION
é o local dos dados do plano de controle caso a instalação híbrida use residência de dados. Esse é o local onde o conteúdo principal do cliente, como pacotes de proxy, é armazenado. Para uma lista, consulte Regiões disponíveis do plano de controle da API Apigee.- Estes são os endereços de e-mail das contas de serviço:
apigee-mart@${ORG_NAME}.iam.gserviceaccount.com
apigee-mint-task-scheduler@${ORG_NAME}.iam.gserviceaccount.com
apigee-runtime@${ORG_NAME}.iam.gserviceaccount.com
-
Verifique o acesso ao plano de controle para as contas de serviço
apigee-mart
eapigee-mint-task-scheduler
.Sem residência de dados
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"
Residência dos dados
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"
A saída precisa incluir as contas de serviço
apigee-mart
,apigee-mint-task-scheduler
eapigee-runtime
, semelhantes a estas:{ "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 você não for o proprietário do projeto do Google Cloud associado à organização híbrida da Apigee, verifique se sua conta de usuário do Google Cloud tem o papel roles/apigee.admin (Administrador da organização da Apigee). Verifique os papéis atribuídos a você com este comando:
- Adicione as estrofes específicas de monetização ao arquivo
overrides.yaml
.Adicione as seguintes estrofes ao arquivo
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 você estiver usando secrets do Kubernetes, consulte Como armazenar dados em um secret do Kubernetes.
Se você estiver usando o Vault, consulte Como armazenar chaves de conta de serviço no Hashicorp Vault.
Se você estiver usando o Vault, adicione
mint
à classe do provedor de secrets específica da organização. Consulte Criar objetosSecretProviderClass
. -
Aplique as mudanças aos gráficos
apigee-operator
,apigee-org
eapigee-env
.Se você tiver definido as variáveis de ambiente $ORG_NAME e APIGEE_NAMESPACE, poderá usá-las nos seguintes comandos:
- Instale o operador.
Simulação:
helm upgrade operator apigee-operator/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
Instale o gráfico:
helm upgrade operator apigee-operator/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
- Instale a organização da Apigee.
Simulação:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml \ --dry-run=server
Instale o gráfico:
helm upgrade $ORG_NAME apigee-org/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ -f overrides.yaml
- Instale o ambiente. Repita essa etapa para cada ambiente.
É preciso instalar um ambiente de cada vez. Especifique o ambiente com
--set env=
ENV_NAME. Se você tiver definido a variável de ambiente $ENV_NAME no shell, poderá usá-la nos seguintes comandos:Simulação:
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 é um nome usado para acompanhar a instalação e os upgrades do gráfico
apigee-env
. Ele precisa ser diferente dos outros nomes de versão do Helm na sua instalação. Normalmente, é o mesmo queENV_NAME
. No entanto, se o ambiente tiver o mesmo nome do grupo de ambientes, use nomes de lançamento diferentes para o ambiente e o grupo de ambientes, por exemplo,dev-env-release
edev-envgroup-release
. Para mais informações sobre versões no Helm, consulte Três grandes conceitos na documentação do Helm.Instale o gráfico:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace $APIGEE_NAMESPACE \ --atomic \ --set env=$ENV_NAME \ -f overrides.yaml
- Instale o operador.
- Somente Identidade da carga de trabalho no GKE:configure a Identidade da carga de trabalho para a conta de serviço
apigee-mint-task-scheduler
.Se você estiver fazendo uma nova instalação, execute esta etapa além das etapas em Etapa 11 (opcional): configurar a Identidade da carga de trabalho.
Ao executar o upgrade do Helm com a flag
--dry-run
para o gráficoapigee-org
, a saída vai incluir os comandos necessários para configurar a Identidade da carga de trabalho com os nomes corretos das conta de serviço do Google e do Kubernetes.- Receba os comandos para configurar a Identidade da carga de trabalho para
apigee-org
e os execute emNOTES:
na saída.helm upgrade $ORG_NAME apigee-org/ \ --namespace $NAMESPACE \ -f overrides.yaml \ --dry-run=server
A saída vai conter instruções semelhantes às seguintes em
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
O nome da conta de serviço do Kubernetes tem o formato
apigee-mint-task-scheduler-PROJECT_ID-UNIQUE_ID
. - Execute os comandos para configurar a Identidade da carga de trabalho para
apigee-mint-task-scheduler
.
- Receba os comandos para configurar a Identidade da carga de trabalho para
Consulte também
- Como ativar a monetização da Apigee para mais informações sobre a monetização na Apigee.
mintTaskScheduler.serviceAccountPath
: define o caminho para o arquivo de chave da conta de serviço da contaapigee-mint-task-scheduler
.mintTaskScheduler.serviceAccountRef
: define o secret do Kubernetes que contém a chave da conta de serviço para a conta de serviçoapigee-mint-task-scheduler
.mintTaskScheduler.gsa
: define a conta de serviço do Google para a conta de serviçoapigee-mint-task-scheduler
. Esse precisa ser o endereço de e-mail da conta de serviço.