Para que o plano de execução e o plano de controle se comuniquem, é necessário ativar as permissões necessárias para o acesso do Synchronizer e do editor de análise com a API updateControlPlaneAccess.
Receber um token de autorização
Para fazer as chamadas de API da Apigee descritas anteriormente neste tópico, é necessário ter um token de autorização que tenha o papel de administrador da organização da Apigee.
- Se você não for o proprietário do projeto do Google Cloud associado à organização da Apigee híbrida, 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 "Exemplo:
gcloud projects get-iam-policy my-project \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:myusername@example.com"
A saída deve incluir
roles/apigee.admin
. - Se você não tiver
roles/apigee.admin
, adicione o papel de Administrador de organização da Apigee à sua conta de usuário. Use o seguinte comando para adicionar o papel à sua conta de usuário:gcloud projects add-iam-policy-binding
${PROJECT_ID} \ --member user:your_account_email \ --role roles/apigee.adminExemplo:
gcloud projects add-iam-policy-binding my-project \ --member user:myusername@example.com \ --role roles/apigee.admin
-
Na linha de comando, receba as credenciais de autenticação de
gcloud
usando o comando a seguir:export TOKEN=$(gcloud auth print-access-token)
Para verificar se o token foi preenchido, use
echo
, como mostra o exemplo a seguir:echo $TOKEN
Isso exibirá seu token como uma string codificada.
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 a seguir:echo %TOKEN%
Isso exibirá seu token como uma string codificada.
Ativar acesso do sincronizador
Para ativar o acesso do sincronizador:
- Encontre o endereço de e-mail da conta de serviço à qual você está concedendo acesso de sincronia.
Para ambientes que não são de produção (como sugerido neste tutorial), ele precisa ser
apigee-non-prod
. Para ambientes de produção, ele precisa serapigee-synchronizer
. Use o comando a seguir:gcloud iam service-accounts list --project
${PROJECT_ID} --filter "apigee-synchronizer " - Chame a API
updateControlPlaneAccess
para ativar as permissões necessárias para o Sincronizador usando o seguinte comando:
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\"]}"Em que:
${ORG_NAME}
: o nome da organização híbrida.apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com
: o endereço de e-mail da conta de serviço.
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\"]}"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.${ORG_NAME}
: o nome da organização híbrida.apigee-synchronizer@${ORG_NAME}.iam.gserviceaccount.com
: o endereço de e-mail da conta de serviço.
- Para verificar se a conta de serviço foi definida, use o seguinte comando para chamar a API a fim de conseguir
uma lista de contas de serviço:
curl -X GET -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/
${ORG_NAME} /controlPlaneAccess"curl -X GET -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://
CONTROL_PLANE_LOCATION -apigee.googleapis.com/v1/organizations/${ORG_NAME} /controlPlaneAccess"A saída será parecida com esta:
{ "synchronizerIdentities": [ "serviceAccount:
apigee-synchronizer @YOUR_ORG_NAME .iam.gserviceaccount.com" ] }
Ativar o acesso do publisher ao Google Analytics
Vários componentes do ambiente de execução híbrido da Apigee publicam registros de análise e depuração para fornecer informações para relatórios e depuração. Para ativar a publicação desses dados, você precisa conceder permissões adicionais às contas de serviço que executam esses componentes da Apigee para publicar dados diretamente na camada de controle.
Para ativar o acesso do editor ao Google Analytics:
- Defina permissões para a conta de serviço do ambiente de execução para publicar dados no plano de controle com o seguinte comando:
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\"]}"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\"]}"A resposta será assim:
{ "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" } } - Verifique o estado da operação usando o parâmetro de nome da resposta de atualização:
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"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"Ela será parecida com o exemplo a seguir:
{ "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" } } - Verifique a configuração de ControlPlaneAccess da organização:
curl "https://apigee.googleapis.com/v1/organizations/
$ORG_NAME /controlPlaneAccess" \ -H "Authorization: Bearer $(gcloud auth print-access-token)"curl "https://
CONTROL_PLANE_LOCATION -apigee.googleapis.com/v1/organizations/$ORG_NAME /controlPlaneAccess" \ -H "Authorization: Bearer $(gcloud auth print-access-token)"Ela será parecida com o exemplo a seguir:
{ "synchronizerIdentities": [ "serviceAccount:
apigee-synchronizer @YOUR_ORG_NAME .iam.gserviceaccount.com" ], "analyticsPublisherIdentities": [ "serviceAccount:apigee-runtime @YOUR_ORG_NAME .iam.gserviceaccount.com" ] }
Você ativou a comunicação entre o ambiente de execução da Apigee híbrida e os planos de gerenciamento. Em seguida, instale o cert-manager para permitir que a Apigee híbrida interprete e gerencie certificados.