Para que o plano de tempo de execução e o plano de controlo comuniquem, tem de ativar as autorizações necessárias para o acesso do publicador de sincronização e de estatísticas com a API updateControlPlaneAccess.
Obtenha um token de autorização
Para fazer as chamadas API Apigee descritas mais adiante neste tópico, tem de obter um token de autorização que tenha a função de administrador da organização do Apigee.
- Se não for o proprietário do projeto do Google Cloud associado à sua organização do Apigee hybrid, certifique-se de que a sua conta de utilizador do Google Cloud tem a função roles/apigee.admin (administrador da organização do Apigee). Pode verificar as funções que lhe foram atribuídas com este comando:
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:your_account_email"
Por exemplo:
gcloud projects get-iam-policy my-project \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:myusername@example.com"
O resultado deve incluir
roles/apigee.admin
. - Se não tiver
roles/apigee.admin
, adicione a função Apigee Organization Admin à sua conta de utilizador. Use o seguinte comando para adicionar a função à sua conta de utilizador:gcloud projects add-iam-policy-binding ${PROJECT_ID} \ --member user:your_account_email \ --role roles/apigee.admin
Por exemplo:
gcloud projects add-iam-policy-binding my-project \ --member user:myusername@example.com \ --role roles/apigee.admin
-
Na linha de comando, obtenha as suas credenciais de
gcloud
autenticação através do seguinte comando:Linux / MacOS
export TOKEN=$(gcloud auth print-access-token)
Para verificar se o token foi preenchido, use
echo
, como mostra o exemplo seguinte:echo $TOKEN
Esta ação deve apresentar o seu token como uma string codificada.
Windows
for /f "tokens=*" %a in ('gcloud auth print-access-token') do set TOKEN=%a
Para verificar se o token foi preenchido, use
echo
, como mostra o exemplo seguinte:echo %TOKEN%
Esta ação deve apresentar o seu token como uma string codificada.
Ative o acesso do sincronizador
Para ativar o acesso do sincronizador:
- Obtenha o endereço de email da conta de serviço à qual está a conceder acesso de sincronizador.
Para ambientes de produção, deve ser
apigee-synchronizer
. Para ambientes de não produção, deve serapigee-non-prod
. Use o seguinte comando:Produção
gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-synchronizer"
Não produção
gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod"
- Chame a API
updateControlPlaneAccess
para ativar as autorizações necessárias para o sincronizador através do seguinte comando:
Sem residência de dados
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\"]}"
Onde:
${ORG_NAME}
: o nome da sua organização híbrida.apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com
: o endereço de email da conta de serviço.
Residência dos dados
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\"]}"
Onde:
CONTROL_PLANE_LOCATION
: a localização dos dados do plano de controlo se a sua instalação híbrida usar a residência de dados. Esta é a localização onde o conteúdo principal do cliente, como pacotes de proxy, é armazenado. Para ver uma lista, consulte o artigo Regiões do plano de controlo da API Apigee disponíveis.${ORG_NAME}
: o nome da sua organização híbrida.apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com
: o endereço de email da conta de serviço.
- Para verificar se a conta de serviço foi definida, use o seguinte comando para chamar a API para obter uma lista de contas de serviço:
Sem residência de dados
curl -X GET -H "Authorization: Bearer $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 $TOKEN" \ -H "Content-Type:application/json" \ "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/${ORG_NAME}/controlPlaneAccess"
O resultado deve ser semelhante ao seguinte:
{ "synchronizerIdentities": [ "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com" ] }
Ative o acesso de publicador do Analytics
Vários componentes de tempo de execução híbrido do Apigee publicam registos de estatísticas e depuração para fornecer informações para relatórios e depuração. Para ativar a publicação destes dados, tem de conceder autorizações adicionais às contas de serviço que executam estes componentes do Apigee para publicar dados diretamente no plano de controlo.
Para ativar o acesso de publicadores às estatísticas:
- Obtenha o endereço de email das contas de serviço às quais está a conceder acesso de publicador do Analytics.
Para ambientes de produção, devem ser
apigee-runtime
,apigee-mart
eapigee-mint-task-scheduler
(se estiver a ativar a rentabilização para o Apigee Hybrid). Para ambientes de não produção, deve serapigee-non-prod
.Produção
gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-runtime OR apigee-mart OR apigee-mint-task-scheduler"
Não produção
gcloud iam service-accounts list --project ${PROJECT_ID} --filter "apigee-non-prod"
- Defina autorizações para as contas de serviço dos componentes de tempo de execução, MART e agendador de tarefas de emissão (se estiver a ativar a rentabilização para o Apigee hybrid na versão v1.15.1 e posterior) para publicar dados no plano de controlo com o seguinte comando:
Sem residência de dados
Chame a API
updateControlPlaneAccess
para ativar as autorizações para as contas de serviço de tempo de execução e MART: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-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
Se estiver a ativar a rentabilização para o Apigee hybrid, defina as autorizações para a conta de serviço do agendador de tarefas do Mint:
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-runtime@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\"]}"
Em que os seguintes são os endereços de email 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
Chame a API
updateControlPlaneAccess
para ativar as autorizações para as contas de serviço de tempo de execução e MART: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-runtime@$ORG_NAME.iam.gserviceaccount.com\"]}"
Se estiver a ativar a rentabilização para o Apigee hybrid, defina as autorizações para a conta de serviço do agendador de tarefas do Mint:
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-runtime@$ORG_NAME.iam.gserviceaccount.com\",\"serviceAccount:apigee-mint-task-scheduler@$ORG_NAME.iam.gserviceaccount.com\"]}"
Onde:
CONTROL_PLANE_LOCATION
é a localização dos dados do plano de controlo se a sua instalação híbrida usar a residência de dados. Esta é a localização onde o conteúdo principal do cliente, como pacotes de proxy, é armazenado. Para ver uma lista, consulte o artigo Regiões do plano de controlo da API Apigee disponíveis.- Seguem-se os endereços de email 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
A resposta deve ser semelhante à seguinte:
{ "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" } }
- Valide o estado da operação através do identificador no campo name da resposta de atualização:
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/operations/$OPERATION_ID"
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/operations/$OPERATION_ID"
A resposta deve ter o seguinte aspeto:
{ "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" } }
- Valide a configuração de ControlPlaneAccess da organização:
Sem residência de dados
curl "https://apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \ -H "Authorization: Bearer $(gcloud auth print-access-token)"
Residência dos dados
curl "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$ORG_NAME/controlPlaneAccess" \ -H "Authorization: Bearer $(gcloud auth print-access-token)"
A resposta deve ter o seguinte aspeto:
{ "synchronizerIdentities": [ "serviceAccount:apigee-synchronizer@YOUR_ORG_NAME.iam.gserviceaccount.com" ], "analyticsPublisherIdentities": [ "serviceAccount:apigee-mart@YOUR_ORG_NAME.iam.gserviceaccount.com", "serviceAccount:apigee-mint-task-scheduler@YOUR_ORG_NAME.iam.gserviceaccount.com", "serviceAccount:apigee-runtime@YOUR_ORG_NAME.iam.gserviceaccount.com" ] }
Ativou os planos de gestão e de tempo de execução do Apigee Hybrid para comunicarem. Em seguida, instale o cert-manager para permitir que o Apigee hybrid interprete e faça a gestão dos certificados.