Como usar o Apigee Connect (Beta)

Nesta seção, você verá como usar o Apigee Connect (Beta) para comunicação entre o plano de gerenciamento híbrido e o serviço MART no plano do ambiente de execução.

Introdução

O Apigee Connect permite que o plano de gerenciamento híbrido da Apigee se conecte com segurança ao serviço MART no plano do ambiente de execução sem exigir que você exponha o endpoint MART na Internet. Se você usa o Apigee Connect, não precisa configurar o gateway de entrada MART com um alias de host e um certificado de DNS autorizado.

Serviços principais que são executados no plano de ambiente de execução híbrido mostrando o Apigee Connect

Pré-requisitos

O híbrido da Apigee versão 1.2.0 ou mais recente precisa ser instalado e configurado antes de configurar o Apigee Connect.

Adicionar o Apigee Connect ao ambiente de execução híbrido

Esta seção pressupõe que você tenha instalado ou atualizado e configurado para o híbrido da Apigee 1.2.0 ou posterior mais recente da Apigee

Quando o Apigee Connect é configurado e ativado, a entrada MART é ignorada: o plano de gerenciamento só se conecta ao MART usando o Apigee Connect. Todo o tráfego MART entre o plano de ambiente de execução híbrido passa pela conexão segura do Apigee Connect.

Siga estas etapas para ativar e usar o Apigee Connect com o híbrido da Apigee:

  1. Ative a API Apigee Connect na biblioteca de APIs do Google Cloud. Ative a API no Console do Google Cloud (GCP) ou com gcloud. Para instruções sobre como ativar APIs no console do Google Cloud, consulte a Etapa 3: ativar APIs. Para usar 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 do GCP para que a Apigee foi ativada e uma organização da Apigee foi provisionada para você.
  2. Adicione o papel Apigee Connect Agent à conta de serviço MART que você criou na etapa Criar contas de serviço das instruções de instalação do híbrido da Apigee:
    $ gcloud projects add-iam-policy-binding YOUR_GCP_PROJECT_ID
    --member serviceAccount:YOUR_MART_SERVICE_ACCOUNT_EMAIL --role roles/apigeeconnect.Agent

    Em que YOUR_GCP_PROJECT_ID é o mesmo projeto do GCP em que a Apigee foi ativada e uma organização da Apigee foi provisionada para você e YOUR_MART_SERVICE_ACCOUNT_EMAIL é o nome da conta de serviço do MART. O nome está no formato de um endereço de e-mail. Exemplo: apigee-mart@my-project.iam.gserviceaccount.com.

    O papel Apigee Connect Agent é predefinido e tem a seguinte permissão atribuída a ele:
    Permissão Descrição
    apigeeconnect.endpoints.connect Essa é a permissão para configurar o Apigee Connect Agent.

    Para detalhes sobre como atribuir permissões de acesso por meio do Console do GCP ou de APIs, consulte:

  3. Verifique se o arquivo de chave da conta de serviço do MART está no diretório hybrid_files/service_accounts, conforme explicado em Criar contas de serviço.
  4. Abra o arquivo de modificações e adicione os seguintes trechos. A configuração exige que você forneça o caminho para a chave da conta de serviço transferida por download. A chave precisa ser de uma conta de serviço com o papel Apigee Connect Agent .
    # Apigee Connect Agent
    connectAgent:
      enabled: true
      serviceAccountPath: ./service-accounts/connect_agent_sa_key.json

    Adicione o trecho no título 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 de Administrador da organização da Apigee que você recebeu por download quando instalou o híbrido da Apigee, conforme descrito na seção Ativar acesso de sincronia. Você precisa dessa chave para gerar um token necessário para fazer uma chamada de API, conforme explicado abaixo.
  6. Execute estes dois comandos para receber um token:
    $ export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
    $ export TOKEN=$(gcloud auth application-default print-access-token)

    Em que org-admin-service-account-file é o caminho no sistema para a chave da conta de serviço que você fez o download com o papel Administrador da organização da Apigee.
  7. Chame a seguinte API Apigee para ativar o Apigee Connect para 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 Apigee Connect Agent 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 registro do Apigee Connect Agent. Se não houver erros relatados, o upgrade será bem-sucedido:
    $ kubectl logs -n namespace apigee-connect-agent-pod-name

    O Apigee Connect Agent informa as seguintes categorias de registro:
    Categoria de registros de auditoria Operações
    DATA_READ ConnectionService.ListConnections
    DATA_WRITE Tether.Egress
    Para ajuda sobre a visualização de registros de auditoria na nuvem híbrida da Apigee, consulte Informações sobre a geração de registros de auditoria.
  11. Com esse upgrade, o plano do ambiente de execução híbrido se comunica com o plano de gerenciamento por meio do Apigee Connect.

  12. Teste a instalação.

Consulte também: Como remover o Apigee Connect.

Teste a instalação

  1. Abra a IU do híbrido da Apigee.
  2. Verifique se todos os desenvolvedores e aplicativos para desenvolvedores criados anteriormente estão presentes na IU. Como essas entidades são consultadas pelo servidor MART, elas estarão presentes somente se a comunicação entre os planos de gerenciamento e do ambiente de execução estiver configurada corretamente.
  3. Para garantir que as solicitações passem pelo Apigee Connect e não pela entrada MART, verifique o registro do servidor MART. Você verá as entradas do agente do Apigee Connect chamado apigee-connect-agent-1.0:
    $ kubectl logs -n apigee apigee-mart-orgname-rc101-q72tl -c apigee-mart | grep connect

    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 desenvolvedor e um app de desenvolvedor. Em seguida, verifique o registro de serviço MART para confirmar se as entradas de registro confirmam que as entidades foram enviadas para o plano do ambiente de execução. Por exemplo, a seguinte entrada de registro mostra que o produto de 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. Tente criar e implantar um novo proxy, conforme explicado em Criar e implantar um proxy.
  6. Configure seu proxy com a verificação de chave de API seguindo as etapas em Proteger um proxy de API exigindo chaves de API. O ambiente de execução recebe os dados necessários para validar uma chave de API do plano de gerenciamento por meio do Apigee Connect. Portanto, se a verificação de chave de API funcionar, você saberá que o Apigee Connect está funcionando corretamente. Também é possível verificar os registros do Apigee Connect para ver um relatório das transferências de dados.

Como remover o Apigee Connect

Se você excluir a implantação do Apigee Connect, o status do pod poderá permanecer no estado "Terminando" por até sete minutos. Esse tempo é esperado. Os agentes do Apigee Connect aguardam que as conexões atuais expirem, em vez de interrompê-las repentinamente. O atraso garante que solicitações em andamento não sejam perdidas.