Como usar o adaptador da Apigee para Envoy com o Apigee Edge

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Neste exemplo, demonstramos como usar o adaptador da Apigee para Envoy com a Apigee Edge.

Pré-requisitos

Antes de começar:

Visão geral

Neste exemplo, explicamos como usar o adaptador da Apigee para Envoy com o Apigee Edge para nuvem pública. As chamadas de proxy de API fluem pelo Envoy em execução como um aplicativo nativo com o Edge que fornece serviços de gerenciamento de API por meio do serviço remoto da Apigee para Envoy.

A figura a seguir mostra a arquitetura básica para a integração do Apigee Edge:

Uma visualização
    de alto nível do adaptador Envoy em execução nativa para se comunicar com o Apigee Edge Cloud, incluindo o
    plano de gerenciamento, o plano de ambiente de execução e os serviços do GCP

Um proxy Envoy e um serviço remoto estão em execução localmente. O Envoy manipula o tráfego da API de e para o serviço de destino e se comunica com o serviço remoto. O serviço remoto também se comunica com o Apigee Edge Cloud para recuperar informações de proxy e de produtos da API.

Provisionar o Apigee Edge

Nesta etapa, você usará a CLI do serviço remoto para provisionar recursos do adaptador da Apigee para Envoy para o Apigee Edge. O comando de provisionamento implanta um proxy de API na Apigee Edge, também configura um certificado na Apigee, e gera credenciais que o serviço remoto usará para se conectar com segurança do seu sistema à Apigee.

  1. Acesse o diretório $CLI_HOME:
    cd $CLI_HOME
  2. Crie as variáveis de ambiente a seguir. Essas variáveis serão usadas como parâmetros para o script de provisionamento:
    export ORG=organization_name
    export ENV=environment_name
    export USER=your_apigee_username
    export PASSWORD=your_apigee_password

    Em que:

    Variável Descrição
    organization_name O nome da sua organização da Apigee.
    environment_name O nome de um ambiente na organização.
    your_apigee_username Nome de usuário da sua conta da Apigee. Normalmente, o nome de usuário é um endereço de e-mail.
    your_apigee_password Sua senha da Apigee.
  3. Execute o seguinte comando para provisionar o proxy de serviço remoto no Apigee Edge:
    ./apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD \
        --organization $ORG --environment $ENV > config.yaml
  4. Verifique o conteúdo do arquivo config.yaml. O código vai ser semelhante a este:
    # Configuration for apigee-remote-service-envoy
    # generated by apigee-remote-service-cli provision on 2020-06-06 11:55:52
    tenant:
      internal_api: https://istioservices.apigee.net/edgemicro
      remote_service_api: https://my-org-test.apigee.net/remote-service
      org_name: my-org
      env_name: test
      key: ecaa56d4101701cb877670909f3614219091b00ce559842e1b584a34b7c6a3e4
      secret: 0c66638bb865c1e13019990ea42da66b097d02a6ba333f050fb27cef20259d98

    Os valores de chave e secret são usados para validar as solicitações do proxy de serviço remoto para o Apigee Edge.

Executar o serviço remoto da Apigee para Envoy

É possível executar o serviço remoto como um binário nativo ou no Docker.

Executar o serviço de forma nativa

Execute o binário de serviço com o arquivo de configuração gerado pelo comando de provisionamento:

$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml

Executar o serviço no Docker

As imagens do Docker são publicadas com tags de lançamento. Para esta instalação, use a versão mais recente. É possível escolher entre três variações de imagens:

Variação Imagem
scratch google/apigee-envoy-adapter:v1.0.0
Ubuntu google/apigee-envoy-adapter:v1.0.0-ubuntu
Ubuntu com Boring Crypto google/apigee-envoy-adapter:v1.0.0-boring

Por exemplo, para executar a imagem de rascunho com o config.yaml local disponível como /config.yaml por meio de um suporte de volume, use este comando:

docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.0.0

Instalar e executar o proxy Envoy

Siga estas etapas para instalar e executar o proxy Envoy:

  1. Faça o download do binário do Envoy ou crie-o ou use o Docker (links em inglês).
  2. Execute o Envoy usando um arquivo de configuração de amostra definido para o serviço httpbin.org:
    envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.yaml

Teste a instalação

  1. Chame o serviço httpbin:
    curl -i http://localhost:8080/httpbin/headers
    

    O serviço está sendo gerenciado pela Apigee e, como você não forneceu uma chave de API, a chamada retorna o erro a seguir.

    curl -i http://localhost:8080/httpbin/headers
    HTTP/1.1 403 Forbidden
    date: Tue, 12 May 2020 17:51:36 GMT
    server: envoy
    content-length: 0
    x-envoy-upstream-service-time: 11
  2. Configure um produto da API e receba uma chave de API, conforme explicado em Como conseguir uma chave de API.
  3. Faça uma chamada de API usando a chave:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/httpbin/headers -H "x-api-key: $APIKEY"

    A chamada deve ter o status 200 e retornar uma lista de cabeçalhos na resposta. Exemplo:

    curl -i httpbin.default.svc.cluster.local/headers -H "x-api-key: kyOTalNNLMPfOSy6rnVeclmVSL6pA2zS"
    HTTP/1.1 200 OK
    server: envoy
    date: Tue, 12 May 2020 17:55:34 GMT
    content-type: application/json
    content-length: 828
    access-control-allow-origin: *
    access-control-allow-credentials: true
    x-envoy-upstream-service-time: 301
    
    {
      "headers": {
        "Accept": "*/*",
        "Content-Length": "0",
        "Host": "httpbin.default.svc.cluster.local",
        "User-Agent": "curl/7.70.0-DEV",
        "X-Api-Key": "kyOTalNNLMPfOSy6rneclmVSL6pA2zS",
        "X-Apigee-Accesstoken": "",
        "X-Apigee-Api": "httpbin.default.svc.cluster.local",
        "X-Apigee-Apiproducts": "httpbin",
        "X-Apigee-Application": "httpbin",
        "X-Apigee-Authorized": "true",
        "X-Apigee-Clientid": "kyOTalNNLMPfOSy6rVeclmVSL6pA2zS",
        "X-Apigee-Developeremail": "user@example.com",
        "X-Apigee-Environment": "test",
        "X-Apigee-Organization": "my-org",
        "X-Apigee-Scope": "",
        "X-B3-Parentspanid": "1476f9a2329bbdfa",
        "X-B3-Sampled": "0",
        "X-B3-Spanid": "1ad5c19bfb4bc96f",
        "X-B3-Traceid": "6f329a34e8ca07811476f9a2329bbdfa"
      }
    }

Próximas etapas

O tráfego da API para o serviço httpbin agora é gerenciado pela Apigee. Veja alguns recursos que você pode explorar e testar:

  • Se você configurou o produto de API conforme explicado em Como conseguir uma chave de API, o limite de cota foi definido como cinco solicitações por minuto. Tente chamar o serviço httpbin mais algumas vezes para acionar a cota. Quando você exceder a cota, verá este erro:
    HTTP/1.1 429 Too Many Requests
  • Acesse o Apigee Analytics na IU do Edge. Acesse Analisar > Métricas da API > Desempenho do proxy de API.
  • Gere e use os tokens JWT para autenticar as chamadas de API.
  • Use a CLI para gerenciar, criar tokens e controlar vinculações. Para detalhes da CLI, consulte a Referência.