Estás viendo la documentación de Apigee Edge.
Ve a la
documentación de Apigee X. info
En este ejemplo, se muestra cómo usar Apigee Adapter for Envoy con Apigee Edge.
Requisitos previos
Antes de comenzar: |
---|
Descripción general
En este ejemplo, se explica cómo usar Apigee Adapter for Envoy con Apigee Edge para la nube pública. Las llamadas al proxy de API fluyen a través de Envoy, que se ejecutan como una aplicación nativa con Edge, que proporciona servicios de administración de API a través del servicio remoto de Apigee para Envoy.
Aprovisiona Apigee Edge
En este paso, usarás la CLI del servicio remoto para aprovisionar los recursos del adaptador de Apigee para Envoy a Apigee Edge. El comando de aprovisionamiento implementa un proxy de API en Apigee Edge, también configura un certificado en Apigee y genera credenciales que el servicio remoto usará para conectarse de forma segura desde tu sistema a Apigee.
- Ve al directorio
$CLI_HOME
:cd $CLI_HOME
- Crea las siguientes variables de entorno: Estas variables se usarán como parámetros en la secuencia de comandos de aprovisionamiento:
export ORG=organization_name
export ENV=environment_name
export USER=your_apigee_username
export PASSWORD=your_apigee_password
Aquí:
Variable Descripción organization_name El nombre de tu organización de Apigee. environment_name El nombre de un entorno de tu organización. your_apigee_username El nombre de usuario de tu cuenta de Apigee. Por lo general, el nombre de usuario es una dirección de correo electrónico. your_apigee_password Tu contraseña de Apigee. - Ejecuta el siguiente comando para aprovisionar el proxy de servicio remoto en Apigee Edge:
Si no realizas la actualización, usa este comando para aprovisionar a Apigee:
$CLI_HOME/apigee-remote-service-cli provision --legacy --mfa $MFA \ --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
Si actualizas, usa este comando con la marca
--force-proxy-install
para aprovisionar 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
- Verifica el contenido del archivo
config.yaml
. Debería verse algo similar a lo siguiente:# 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 ...
Los valores de clave y secreto se usan para validar las solicitudes del proxy de servicio remoto a Apigee Edge.
Ejecuta el servicio del servicio remoto de Apigee para Envoy
Puedes ejecutar el servicio remoto como un objeto binario nativo o en Docker.
Ejecuta el servicio de forma nativa
Ejecuta el objeto binario de servicio con el archivo de configuración que generó el comando de aprovisionamiento:
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
Ejecuta el servicio en Docker
Las imágenes de Docker se publican con etiquetas de la versión. Para esta instalación, usa la versión más reciente. Existen tres variantes de imágenes para elegir:
Variante | Imagen |
---|---|
distroless de Google | google/apigee-envoy-adapter:v2.0.0 |
Ubuntu | google/apigee-envoy-adapter:v2.0.0-ubuntu |
Ubuntu con Boring Crypto | google/apigee-envoy-adapter:v2.0.0-boring |
Por ejemplo, para ejecutar la imagen inicial con tu config.yaml
local disponible como /config.yaml
a través de una activación de volumen, usa este comando:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v2.0.0
Crea archivos de configuración de muestra
Genera un archivo de configuración de Envoy con la CLI:
- Asegúrate de estar en el directorio
$ENVOY_HOME
. - Enumera las plantillas de configuración disponibles:
$CLI_HOME/apigee-remote-service-cli samples templates
Ejecuta el comando de muestras. Para TEMPLATE, sustituye una de las plantillas de Envoy compatibles:
$CLI_HOME/apigee-remote-service-cli samples create --template TEMPLATE -c ./config.yaml
El comando crea el archivo
./samples/envoy-config.yaml
.
Para obtener más información, consulta Comando de muestra.
Instala y ejecuta el proxy de Envoy
Sigue estos pasos para instalar y ejecutar el proxy de Envoy:
- Descarga un objeto binario de Envoy, compílalo o usa Docker.
- Ejecuta Envoy mediante un archivo de configuración de muestra que generaste antes para el servicio
httpbin.org
:envoy -c ./samples/envoy-config.yaml
Prueba la instalación
- Configura un producto de API y obtén una clave de API como se explica en Obtén una clave de API.
- Llama al servicio
httpbin
sin una clave de API:curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
Ahora, el servicio es administrado por Apigee y, como no proporcionaste una clave de API, la llamada muestra el siguiente error.
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
- Realiza una llamada a la API con la clave:
export APIKEY=YOUR_API_KEY
curl -i http://localhost:8080/headers \ -H "HOST:httpbin.org" -H "x-api-key: $APIKEY"
La llamada debería ser exitosa y tener un estado 200; además, se debe mostrar una lista de encabezados en la respuesta. Por ejemplo:
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óximos pasos
Ahora, Apigee administra el tráfico de la API al servicio httpbin
. Estas son algunas de las funciones que puedes explorar y probar:
- Si configuraste tu producto de la API como se explica en Cómo obtener una clave de API, el límite de cuota se estableció en 5 solicitudes por minuto. Intenta llamar al servicio de
httpbin
algunas veces más para activar la cuota. Cuando se agota la cuota, se muestra un error de estado HTTP 403. - Accede a Apigee Analytics en la IU de Edge. Ve a Analizar > Métricas de la API > Rendimiento del proxy de API.
- Genera y usa tokens de JWT para autenticar las llamadas a la API.
- Usa la CLI para administrar las vinculaciones, crearles tokens y controlarlas. Para obtener más información sobre la CLI, consulta la Referencia.