Usar o Apigee Connect (beta)

Esta secção descreve a utilização do Apigee Connect (beta) para a comunicação entre o plano de gestão híbrido e o serviço MART no plano de tempo de execução.

Introdução

O Apigee Connect permite que o plano de gestão híbrido do Apigee se ligue de forma segura ao serviço MART no plano de tempo de execução sem que tenha de expor o ponto final MART na Internet. Se usar o Apigee Connect, não precisa de configurar o gateway de entrada MART com um alias de anfitrião e um certificado DNS autorizado.

Serviços principais executados no plano de tempo de execução híbrido que mostram o Apigee Connect

Pré-requisitos

A versão 1.2.0 ou mais recente do Apigee Hybrid tem de estar instalada e configurada antes de configurar o Apigee Connect.

  • Se estiver a instalar o Apigee Hybrid pela primeira vez, siga as instruções de instalação na documentação do Apigee Hybrid.
  • Se estiver a usar atualmente a versão 1.1.x do Apigee hybrid, tem de atualizar a instalação para a versão 1.2.0 antes de continuar. Para ver os passos de atualização, consulte o artigo Atualizar o Apigee Hybrid

Adicione o Apigee Connect ao tempo de execução híbrido

Esta secção pressupõe que instalou ou atualizou para o Apigee Hybrid 1.2.0 ou mais recente e o configurou

Quando o Apigee Connect está configurado e ativado, a entrada do MART é ignorada: o plano de gestão liga-se apenas ao MART através do Apigee Connect. Todo o tráfego MART entre o plano de tempo de execução híbrido passa através da ligação segura do Apigee Connect.

Siga estes passos para ativar e usar o Apigee Connect com o Apigee hybrid:

  1. Ative a API Apigee Connect na biblioteca de APIs Google Cloud. Pode ativar a API na consola do Google Cloud (GCP) ou com gcloud. Para obter instruções sobre como ativar APIs na Google Cloud Console, consulte o Passo 3: ative as APIs. Para usar o gcloud para ativar a API:
    $ gcloud config set project YOUR_GCP_PROJECT_ID
    $ gcloud services enable apigeeconnect.googleapis.com

    Em que YOUR_GCP_PROJECT_ID é o mesmo projeto da GCP para o qual o Apigee foi ativado e uma organização do Apigee foi aprovisionada para si.
  2. Adicione a função Agente do Apigee Connect à conta de serviço MART que criou no passo Criar contas de serviço nas instruções de instalação do Apigee hybrid:
    $ gcloud projects add-iam-policy-binding YOUR_GCP_PROJECT_ID
    --member serviceAccount:YOUR_MART_SERVICE_ACCOUNT_EMAIL --role roles/apigeeconnect.Agent

    Onde YOUR_GCP_PROJECT_ID é o mesmo projeto do GCP para o qual o Apigee foi ativado e uma organização do Apigee foi aprovisionada para si, e YOUR_MART_SERVICE_ACCOUNT_EMAIL é o nome da conta de serviço MART. O nome está no formato de um endereço de email. Por exemplo: apigee-mart@my-project.iam.gserviceaccount.com.

    A função Agente do Apigee Connect está predefinida e tem a seguinte autorização atribuída:
    Autorização Descrição
    apigeeconnect.endpoints.connect Esta é a autorização para configurar o agente do Apigee Connect.

    Para ver detalhes sobre a atribuição de autorizações de acesso através da consola do GCP ou das APIs, consulte:

  3. Certifique-se de que o ficheiro de chave da conta de serviço do MART está no diretório hybrid_files/service_accounts, conforme explicado em Crie contas de serviço.
  4. Abra o ficheiro de substituições e adicione as seguintes secções. A configuração requer que faculte o caminho para a chave da conta de serviço transferida. A chave tem de ser para uma conta de serviço com a função Agente do Apigee Connect .
    # Apigee Connect Agent
    connectAgent:
      enabled: true
      serviceAccountPath: ./service-accounts/connect_agent_sa_key.json

    Adicione a stanza abaixo do cabeçalho k8sCluster, por exemplo:
    k8sCluster:
      name: your_cluster_name
      region: your_cluster_region
    
    # Apigee Connect Agent
    connectAgent:
      enabled: true
      serviceAccountPath: ./service-accounts/connect_agent_sa_key.json
    # Apigee Connect Agent
    connectAgent:
      enabled: true
      replicaCountMin: 3
      serviceAccountPath: ./service-accounts/connect_agent_sa_key.json
  5. Localize a chave da conta de serviço com a função Administrador da organização do Apigee que transferiu quando instalou originalmente o Apigee hybrid, conforme descrito na secção Ativar acesso do sincronizador. Precisa desta chave para gerar um token necessário para fazer uma chamada à API, conforme explicado abaixo.
  6. Execute estes dois comandos para obter um token:
    $ export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    $ export TOKEN=$(gcloud auth application-default print-access-token)

    Onde org-admin-service-account-file é o caminho no seu sistema para a chave da conta de serviço que transferiu com a função Administrador da organização do Apigee.
  7. Chame a seguinte API Apigee para ativar o Apigee Connect para a sua organização:
    curl -v -X PUT \
       https://apigee.googleapis.com/v1/organizations/your_org_name \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $TOKEN" \
      -d '{
      "name" : "your_org_name",
      "properties" : {
        "property" : [ {
          "name" : "features.hybrid.enabled",
          "value" : "true"
        }, {
          "name" : "features.mart.connect.enabled",
          "value" : "true"
        } ]
      }
    }'

  8. Inicie o agente do Apigee Connect no cluster:

    $ $APIGEECTL_HOME/apigeectl apply -f your_overrides_file.yaml -c connect-agent

  9. mart:
      hostAlias: "mart.apigee-hybrid-docs.net"
      serviceAccountPath: ./service-accounts/example-project-apigee-mart.json
      sslCertPath: ./certs/fullchain.pem
      sslKeyPath: ./certs/privkey.key
  10. Verifique o registo do agente do Apigee Connect. Se não forem comunicados erros, a atualização foi bem-sucedida:
    $ kubectl logs -n namespace apigee-connect-agent-pod-name

    O agente do Apigee Connect comunica as seguintes categorias de registos:
    Categoria de registos de auditoria Operações
    DATA_READ ConnectionService.ListConnections
    DATA_WRITE Tether.Egress
    Para receber ajuda na visualização de registos de auditoria no Apigee Hybrid, consulte as informações de registo de auditoria.
  11. Com esta atualização, o plano de tempo de execução híbrido comunica com o plano de gestão através do Apigee Connect.

  12. Teste a instalação.

Veja também: Remover o Apigee Connect.

Teste a instalação

  1. Abra a IU do Apigee Hybrid.
  2. Verifique se os programadores e as apps de programador que criou anteriormente estão presentes na IU. Uma vez que estas entidades são consultadas a partir do servidor MART, só estão presentes se a comunicação entre os planos de gestão e de tempo de execução estiver configurada corretamente.
  3. Para se certificar de que os pedidos estão a passar pelo Apigee Connect e não pela entrada do MART, verifique o registo do servidor do MART. Deve ver entradas para o agente do Apigee Connect denominado apigee-connect-agent-1.0:
    $ kubectl logs -n apigee apigee-mart-orgname-rc101-q72tl -c apigee-mart | grep connect

    Por exemplo:
    "2019-12-11 04:59:52,321 org: env: target: action: context-id: mode: pool-1-thread-1 INFO MART_AUDITLOG - MartAuditListener.eventOccurred() : Type:Audit edge-gaambo-controlplane@system.gserviceaccount.com 1576040392317 /v1/organizations/apigee-connect-hybrid-prod/developers/ count=100&expand=true&startKey=4ee9e8f7-12b2-4cde-bf10-32d991469876 200 GET apigee-connect-hybrid-prod 10.40.11.3 10.40.0.5 apigee-connect-agent-1.0 null"
  4. Na IU híbrida, crie um produto de API, um programador e uma app de programador. Em seguida, verifique o registo do serviço MART para se certificar de que as entradas de registo confirmam que as entidades foram enviadas para o plano de tempo de execução. Por exemplo, a seguinte entrada do registo mostra que o produto API chamado foo-product foi recebido:
    $ kubectl logs -n apigee apigee-mart-orgname-rc101-q72tl -c apigee-mart

    2019-12-16 22:15:29,572 org: env: target: action: context-id: mode: pool-1-thread-1 INFO  MART_AUDITLOG - MartAuditListener.eventOccurred() : Type:Audit edge-gaambo-controlplane@system.gserviceaccount.com 1576534529566 /v1/organizations/myorg/apiproducts/foo-product/ -NA- 201 CREATE myorg 10.16.1.61  10.16.1.64 apigee-connect-agent-1.0 null
    
    2019-12-16 22:15:30,412 org: env: target: action: context-id: mode: pool-1-thread-1 INFO  MART_AUDITLOG - MartAuditListener.eventOccurred() : Type:Audit edge-gaambo-controlplane@system.gserviceaccount.com 1576534530407 /v1/organizations/myorg/apps/ apiProduct=foo-product&expand=false 200 GET myorg 10.16.1.61  10.16.1.64 apigee-connect-agent-1.0 null
  5. Experimente criar e implementar um novo proxy, conforme explicado em Crie e implemente um proxy.
  6. Configure o proxy com a validação da chave da API seguindo os passos em Proteja um proxy de API exigindo chaves da API. O tempo de execução obtém os dados necessários para validar uma chave da API a partir do plano de gestão através do Apigee Connect. Por conseguinte, se a validação da chave da API funcionar, sabe que o Apigee Connect está a funcionar corretamente. Também pode verificar os registos do Apigee Connect para ver um relatório das transferências de dados.

Remover o Apigee Connect

Se eliminar a implementação do Apigee Connect, o estado do pod pode permanecer no estado "A terminar" durante até sete minutos. Este período é o esperado. Os agentes do Apigee Connect aguardam que as ligações existentes expirem em vez de as interromperem subitamente. O atraso garante que os pedidos em curso não são perdidos.