Você está visualizando a documentação do Apigee Edge.
Acesse a
documentação da
Apigee X. info
Este exemplo demonstra 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 fornecendo serviços de gerenciamento de API pelo serviço remoto da Apigee para Envoy.
Provisionar o Apigee Edge
Nesta etapa, você vai usar a CLI do serviço remoto para provisionar recursos do adaptador da Apigee para Envoy ao Apigee Edge. O comando de provisionamento implanta um proxy de API no Apigee Edge, configura um certificado no Apigee e gera credenciais que o serviço remoto vai usar para se conectar com segurança do sistema ao Apigee.
- Acesse o diretório
$CLI_HOME
:cd $CLI_HOME
- 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 O 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. - Execute o comando a seguir para provisionar o proxy de serviço remoto na Apigee Edge:
Se você não está fazendo upgrade, use este comando para provisionar a Apigee:
$CLI_HOME/apigee-remote-service-cli provision --legacy --mfa $MFA \ --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
Se você está fazendo upgrade, use este comando com a sinalização
--force-proxy-install
para provisionar a Apigee:$CLI_HOME/apigee-remote-service-cli provision --legacy --force-proxy-install --mfa $MFA \ --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
- Verifique o conteúdo do arquivo
config.yaml
. Ele vai ficar assim:# Configuration for apigee-remote-service-envoy (platform: SaaS) # generated by apigee-remote-service-cli provision on 2020-08-26 09:43:41 apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://my-username-test.apigee.net/remote-service org_name: my-org env_name: my-env key: f7e09c32f827cab87b8ce43842ed8467ffd2c58e6f795241e38fe7b1aec7664 secret: 1cb5cca00dfb433cb80b32837451fce4bf694633cddbb73d704517e12b35e75 ...
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 Apigee Remote Service for 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 do serviço com o arquivo de configuração que foi 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 |
---|---|
Distribuições do Google | google/apigee-envoy-adapter:v2.0.0 |
Ubuntu | google/apigee-envoy-adapter:v2.0.0-ubuntu |
Ubuntu com Boring Crypto | google/apigee-envoy-adapter:v2.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:v2.0.0
Criar arquivos de configuração de amostra
Gere um arquivo de configuração do Envoy usando a CLI:
- Verifique se você está no diretório
$ENVOY_HOME
. - Liste os modelos de configuração disponíveis:
$CLI_HOME/apigee-remote-service-cli samples templates
Execute o comando de amostras. Para TEMPLATE, substitua um dos modelos de Envoy compatíveis:
$CLI_HOME/apigee-remote-service-cli samples create --template TEMPLATE -c ./config.yaml
O comando cria o arquivo
./samples/envoy-config.yaml
.
Para mais informações, consulte Comandos de amostra.
Instalar e executar o proxy Envoy
Siga estas etapas para instalar e executar o proxy Envoy:
- Faça o download do binário do Envoy ou crie-o ou use o Docker (links em inglês).
- Execute o Envoy usando um arquivo de configuração de amostra que você gerou anteriormente para o serviço
httpbin.org
:envoy -c ./samples/envoy-config.yaml
Teste a instalação
- Configure um produto da API e receba uma chave de API, conforme explicado em Como conseguir uma chave de API.
- Chame o serviço
httpbin
sem uma chave de API:curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
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/headers -H "HOST:httpbin.org" 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
- Faça uma chamada de API usando a chave:
export APIKEY=YOUR_API_KEY
curl -i http://localhost:8080/headers \ -H "HOST:httpbin.org" -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" } }
A seguir
O tráfego da API para o serviço httpbin
agora é gerenciado pela Apigee. Veja alguns
recursos para você explorar e testar:
- Se você configurou o produto da 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 a cota é esgotada, um erro de status HTTP 403 é retornado. - 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.