Estás viendo la documentación de Apigee Edge.
Ve a la
documentación de Apigee X. info
Cómo comenzar
- ¿Cómo instalo Edge Microgateway?
- Consulta Instala Edge Microgateway.
- ¿Cómo ejecuto Edge Microgateway?
- Consulta Cómo configurar Edge Microgateway.
- ¿Necesito una base de datos para ejecutar Microgateway?
- Las APIs con proxy a través de Edge Microgateway pueden interactuar con una base de datos que se ejecuta como parte de un servicio objetivo. Sin embargo, Edge Microgateway opera de forma independiente de cualquier base de datos o almacén de datos del backend.
Operación
- ¿Qué cambios en Edge requieren reiniciar Edge Microgateway?
- Edge Microgateway sondea automáticamente los cambios realizados en Apigee Edge, como los cambios en los proxies, los productos o las apps para desarrolladores compatibles con la micropuerta de enlace. El intervalo de sondeo predeterminado es de 600 segundos. Sin embargo, puedes cambiar el intervalo con el parámetro de configuración
config_change_poll_interval
. Consulta los atributos de edgemicro. - Si no quieres esperar al intervalo de sondeo, usa el comando
edgemicro reload
para detectar los cambios más recientes. Consulta Vuelve a cargar el clúster de microgateway. - ¿Cómo puedo diferenciar entre un proxy implementado en Edge y uno en Edge Microgateway?
- Cuando configuras Edge Microgateway, se descarga una lista de proxies compatibles con microgateway que se implementan en Apigee Edge a la configuración local de Edge Microgateway. Los proxies compatibles con Microgateway se nombran con el prefijo
edgemicro_
. - ¿Cuáles son mis opciones para registrarme con Edge Microgateway?
- Edge Microgateway tiene una función de registro integrada. Para obtener más información, consulta Cómo administrar archivos de registro.
- También puedes escribir un complemento personalizado para usar un servicio de registro de terceros con Edge Microgateway. Debido al modo en que funciona Edge Microgateway, no puedes usar la política de Registro de mensajes de Apigee Edge para registrar mensajes de Edge Microgateway. Consulta también el artículo de la comunidad sobre el Plugin de registro para Microgateway.
- ¿Puedo reutilizar combinaciones de claves o secretos entre instancias de Edge Microgateway?
- Siempre que la organización y el entorno sean los mismos para las instancias de Microgateway, puedes volver a usar el par de claves o secretos que se genera durante la configuración.
- ¿Cómo configuro Edge Microgateway para que se inicie en un entorno de producción?
- Puedes establecer las variables de entorno para los parámetros del comando de inicio, como
EDGEMICRO_KEY
,EDGEMICRO_SECRET
,EDGEMICRO_ORG
yEDGEMICRO_ENV
. Con estas y otras variables, puedes iniciar Edge Microgateway con el único comandoedgemicro start
. Consulta también Configura variables de entorno. - ¿Puedo usar atributos personalizados de productos o apps de desarrollador con Edge Microgateway?
- No. De forma predeterminada, Edge Microgateway solo actúa en atributos relacionados con el enrutamiento y la seguridad básicos. Sin embargo, como solución alternativa, tienes la siguiente opción posible:
-
Agrega atributos personalizados al proxy
edgemicro-auth
que Edge Microgateway implementa en Apigee Edge. Estos atributos estarán disponibles cuando uses la seguridad de la clave de API o el token de OAuth. - Modifica el complemento de OAuth para que actúe sobre esos atributos.
-
Agrega atributos personalizados al proxy
- ¿Hay un límite para el tamaño del encabezado de la solicitud?
- Si actualizas Node.js a la v8.14.0 o una versión posterior, ten en cuenta que el tamaño máximo del encabezado permitido en las solicitudes se redujo de 80 KB a 8 KB. Los encabezados que superan los 8 KB generan un error HTTP 431.
- Una opción de configuración de Node.js que se agregó en la versión 11.6.0 te permite cambiar el tamaño máximo predeterminado del encabezado. Este parámetro,
--max-http-header-size
, te permite especificar el tamaño máximo, en bytes, de los encabezados HTTP. - Para cambiar la configuración predeterminada, establece el valor de la variable de entorno
NODE_OPTIONS
en la línea de comandos de la siguiente manera:NODE_OPTIONS=--max-http-header-size=NUM_BYTES
Por ejemplo:
NODE_OPTIONS=--max-http-header-size=80000
¿Qué APIs de administración usa Edge Microgateway?
Los siguientes comandos de Edge Microgateway llaman a las APIs de administración de Apigee Edge para realizar su trabajo, como se describe en la referencia de la CLI de Edge Microgateway:
edgemicro configure
edgemicro upgradeauth
edgemicro upgradekvm
edgemicro rotatekey
edgemicro cert check
edgemicro cert delete
edgemicro cert install
En las siguientes secciones, se enumeran las llamadas a la API de administración que usa cada comando.
Los comandos edgemicro configure
y upgradeauth
llaman a las siguientes APIs de administración:
- (lista de implementaciones)
GET: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/deployments
- (obtén información de la implementación)
GET: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth
- (sube recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=java&name=micro-gateway-products-javacallout-2.0.0.jar
- (sube recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=adjust-quota.js
- (sube recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=generate-jwk.js
- (subir recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=generate-verify-jwt.js
- (sube recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=jsrsasign-all-min.js
- (sube recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=jwt-initialization.js
- (sube recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-jwk-response.js
- (sube recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-product-list.js
- (sube recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-public-key.js
- (sube recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-jwt-variables.js
- (sube recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-quota-variables.js
- (subir recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-response.js
- (sube recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=validate-params.js
- (crear proxy de API)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis?action=import&validate=false&name=edgemicro-auth
- (políticas de carga)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/policies
- (subir proxies)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/proxies?name=default
- (implementa proxy)
POST: https://api.enterprise.apigee.com/v1/o/[org]/e/[env]/apis/edgemicro-auth/revisions/1/deployments
El comando upgradekvm
llama a la siguiente API de administración:
PUT: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway
El comando rotatekey
llama a la siguiente API de administración:
GET: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway/entries/private_key
El comando cert check
llama a la siguiente API de administración:
GET: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway
El comando cert delete
llama a la siguiente API de administración:
DELETE: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps/microgateway
El comando cert install
llama a la siguiente API de administración:
POST: https://api.enterprise.apigee.com/v1/organizations/[org]/environments/[env]/keyvaluemaps
Implementación
- ¿Puedo implementar Edge Microgateway en el mismo servidor en el que se ejecuta mi servicio de destino?
- Sí. Edge Microgateway es un proceso básico que puede ejecutarse cerca del servicio de destino, incluso en la misma máquina.
- ¿Puedo implementar un paquete de proxy de Edge existente como una implementación de Edge Microgateway?
- No. Los proxies compatibles con Edge Microgateway tienen requisitos específicos y no admiten todas las funciones de los proxies normales de Edge. Consulta Parte 2: Crea entidades en Apigee Edge
- ¿Puedo habilitar el resguardo entre una implementación de paquete de proxy de Edge y una implementación de Edge Microgateway para el mismo proxy de API?
- No. Edge Microgateway no conoce las implementaciones de proxies de API que no son de microgateway en Apigee Edge.
- ¿Cuál es el modelo de implementación de alta disponibilidad para Edge Microgateway?
- Para obtener una buena explicación sobre cómo ejecutar Edge Microgateway con NGINX como balanceador de cargas, consulta Cómo administrar APIs con Apigee Edge Microgateway y NGINX.
- ¿Qué balanceadores de cargas puedo usar con Edge Microgateway?
- Edge Microgateway puede funcionar con cualquier balanceador de cargas.
- ¿Existe un límite para la cantidad de proxies de Edge Microgateway que puedo implementar?
- Consulta los límites de configuración del producto especificados para los proxies de Edge normales. La cantidad de proxies compatibles con microgateway que puedes implementar en una organización y un entorno de Apigee Edge, y llamar a través de Edge Microgateway, debe cumplir con esos mismos límites.
- ¿Puedo asociar mi implementación de la micropuerta de enlace de Edge a una organización y un entorno específicos?
- Cuando configuras una instancia de Edge Microgateway, debes asociarla con una organización y un entorno de Edge específicos.
- ¿Puedo asociar mi implementación de Edge Microgateway a una región específica (si soy un cliente multirregional)?
- Edge Microgateway selecciona automáticamente la mejor región para su interacción con Apigee Edge. Puedes implementar instancias de Edge Microgateway en cada región a la que deseas brindar servicio.
Administración
- ¿Necesito ser administrador de la organización para configurar y, luego, implementar Edge Microgateway?
- Sí. Debes tener credenciales de administrador de la organización para configurar y, luego, implementar Edge Microgateway.
- ¿Debo ser administrador de la organización para ejecutar Edge Microgateway?
- No. Edge Microgateway es una aplicación
Node.js
y cualquier persona que tenga permiso para ejecutar este tipo de aplicaciones en una máquina determinada puede ejecutarla. - ¿Puede alguno de los usuarios de mi organización usar Edge Microgateway?
- No es necesario ser usuario de la organización de Apigee Edge para realizar llamadas a la API a través de Edge Microgateway. Sin embargo, debes tener permisos a nivel de la organización para crear o cambiar proxies compatibles con Edge Microgateway que se implementen en Edge.
Rendimiento
- ¿Cuáles son las consideraciones de rendimiento para usar Edge Microgateway?
- Si ejecutas Edge Microgateway junto con la aplicación de destino, asegúrate de que el servidor tenga suficiente capacidad.
- ¿Cuáles son las prácticas recomendadas para ejecutar Edge Microgateway a gran escala?
- Apigee recomienda ejecutar varias instancias de Edge Microgateway en diferentes servidores con balanceadores de cargas como NGINX. Consulta también Cómo administrar APIs con la micropuerta de enlace de Apigee Edge y NGINX y Escalamiento horizontal y vertical en la comunidad de Apigee.
- ¿Cuáles son los TPS de Edge Microgateway de forma predeterminada y cuáles son los requisitos de hardware necesarios para una instancia de Microgateway?
- Los requisitos de hardware y las mediciones de TPS son difíciles de evaluar con la Microgateway de Edge. Depende de tu configuración, que es una combinación de ajuste de la Microgateway de Edge, el uso de complementos, los complementos personalizados y la configuración de otros elementos, como TLS. Por lo general, Apigee recomienda que tengas una idea de esa combinación de elementos y que realices pruebas de rendimiento con tu configuración específica.
Implementación de la nube privada
- ¿Edge Microgateway funciona con Edge para la nube privada?
- Sí. Para obtener más información, consulta pasos de configuración de la nube privada de Apigee.
Complementos
- ¿Cómo se aplica la cuota con Edge Microgateway?
- De manera opcional, puedes agregar un complemento de cuota a tu instancia de Edge Microgateway. Para obtener más información, consulta Cómo usar el complemento de cuota.
- ¿Cómo se aplica Spike Arrest con Edge Microgateway?
- De manera opcional, puedes agregar un complemento de detención de picos a tu instancia de Edge Microgateway. Para obtener más detalles, consulta Cómo usar el complemento de detención de picos.
- ¿Existen otras formas de escribir complementos además de
Node.js
para Edge Microgateway? - No. Los complementos deben escribirse en
Node.js
. - ¿Qué sucede cuando Edge Microgateway no puede subir datos de Analytics a Edge?
- Edge Microgateway tiene un búfer en la memoria. Si el búfer se llena, se descartan las cargas útiles más antiguas para permitir que el tráfico de la API fluya sin problemas.
- ¿Puedo agregar políticas a Edge Microgateway?
- Si adjuntas políticas normales de Apigee Edge a proxies compatibles con microgateway en Apigee Edge, se ignoran. En su lugar, Edge Microgateway usa complementos para proporcionar una funcionalidad similar a las políticas de Edge, como la cuota, la detención de picos, la seguridad de la clave de API y la seguridad de OAuth2. También puedes escribir complementos personalizados. Consulta Cómo usar complementos y Cómo desarrollar complementos personalizados.
En las siguientes publicaciones y blogs de la Comunidad de Apigee, se analizan casos de uso adicionales de complementos:
Seguridad
- ¿Cómo protejo el recurso
/products
? - Descripción general
- Cuando configuras Edge Microgateway, se implementa un proxy de API llamado
edgemicro-auth
en el entorno de tu organización en Apigee Edge. Este proxy expone un extremo/products
que muestra una lista de productos de API. Si instalaste la Microgateway de Edge el 5 de octubre de 2018 o antes, Apigee te recomienda que tomes medidas para proteger este extremo, ya que la respuesta contiene la dirección de correo electrónico del desarrollador que creó y modificó los productos de API en tu organización de Apigee. - Para proteger el extremo, puedes actualizar Edge Microgateway o configurar TLS mutua. Ambas opciones se describen a continuación.
- Verifica si el extremo
/products
está protegido -
Si no sabes si el extremo
/products
está protegido, ve a la sección Verifica que el recurso/products
esté protegido y sigue los pasos que se indican allí antes de continuar.Opción 1: Actualiza Edge Microgateway
Si instalaste Edge Microgateway el 5 de octubre de 2018 o antes, Apigee te recomienda que actualices a la versión más reciente de Edge Microgateway. Sigue los pasos que se indican en Actualiza Edge Microgateway si tienes una conexión a Internet.
Si no puedes realizar la actualización en este momento, ve a la opción 2.
Opción 2: Configura la autenticación mutua de TLS
Si no puedes actualizar la Microgateway de Edge en este momento, Apigee recomienda que protejas la comunicación entre la Microgateway de Edge y el proxy
edgemicro-auth
con TLS mutua (también conocida como TLS bidireccional).- Abre el archivo
$HOME/.edgemicro/org-env-config.yaml
. Consulta dónde se instala Edge Microgateway si no puedes encontrar este archivo. - Agrega el siguiente bloque
tlsOptions
al archivoorg-env-config.yaml
para habilitar la TLS mutua entre la micropuerta de enlace de Edge y Apigee Edge:edge_config: bootstrap: >- https://domain/edgemicro/bootstrap/organization/org/environment/env jwt_public_key: 'https://domain/edgemicro-auth/publicKey' managementUri: 'https://api.enterprise.apigee.com' tlsOptions: agentOptions: requestCert: true cert: 'path/to/cert' key: 'path/to/key'
Por ejemplo:
tlsOptions: agentOptions: requestCert: true cert: '/Users/jdoe/twowayssl/ssl/client.key' key: '/Users/jdoe/twowayssl/ssl/ca.crt'
También puedes incluir los siguientes parámetros
agentOptions
opcionales:ca
: Especifica la ruta de acceso a la autoridad certificadora.pfx
: Inclúyela si deseas usar un archivo p12/pfx en lugar de un certificado y una clave.passphrase
: Es la frase de contraseña de un archivo pfx.ciphers
: Especifica los algoritmos de cifrado TLS.
- Asegúrate de que el host virtual al que se implementa el proxy
edgemicro-auth
tenga habilitada la TLS mutua. Para obtener más información, consulta Cómo definir un host virtual para TLS de dos vías en la documentación de Apigee Edge.En la siguiente captura de pantalla, se muestra cómo habilitar el TLS mutuo en un host virtual en la IU de Apigee Edge:
- Consulta el proxy de la API de
edgemicro-auth
en la IU de Edge y asegúrate de que se especifique el host virtual correcto en la configuración del proxy. Por ejemplo, si creaste un host virtual habilitado para TLS llamadomutualtls
, la estrofaHTTPProxyConnection
del proxy debería verse de la siguiente manera:<HTTPProxyConnection> <BasePath>/edgemicro-auth</BasePath> <Properties/> <VirtualHost>mutualtls</VirtualHost> </HTTPProxyConnection>
- Abre el archivo
/products
esté protegido/products
está protegido. Es importante realizar esta prueba después de completar los pasos (opción 1 o 2) para proteger el recurso. Puedes hacerlo con cURL, por ejemplo:
curl -v https://your_domain/edgemicro-auth/products
/products
está protegido:
{ "error":"unauthorized", "error_description": "authentication failed" }
O
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number
Si ves una respuesta como la siguiente, significa que el recurso /products
no está protegido y que los correos electrónicos de los desarrolladores pueden estar expuestos:
{ "apiProduct":[ { "apiResources":[ "/", "/**" ], "approvalType":"auto", "attributes":[ ], "createdAt":1537374680948, "createdBy":"jdoe@foo.com", "description":"", "displayName":"mock", "environments":[ "test" ], "lastModifiedAt":1537374680948, "lastModifiedBy":"test@test.com", "name":"mock", "proxies":[ "edgemicro-auth", "edgemicro_mock" ], "quota":"null", "quotaInterval":"null", "quotaTimeUnit":"null", "scopes":[ "" ] } ] }
Apigee también recomienda que pruebes el host virtual HTTP:
Por ejemplo:
curl -v http://your_domain/edgemicro-auth/products
Si la llamada a cURL muestra la lista de productos de la API, es posible que los correos electrónicos de los desarrolladores estén expuestos. Si no quieres exponer el extremo con este host virtual que no es TLS, asegúrate de quitarlo de la configuración edgemicro-auth
de HTTPProxyConnection.
Para proteger el recurso, realiza una de las siguientes opciones:
Actualmente, no puedes renovar el token JWT de una instancia determinada de la micropuerta de enlace de Edge.
Solución alternativa:
Cada token de JWT tiene un atributo exp que indica la fecha de vencimiento del token. Una app puede calcular el tiempo de vencimiento y solicitar un token nuevo haciendo una llamada a la API directamente al extremo de token edgemicro-auth
. Por ejemplo, puedes hacer una llamada a la API de la siguiente manera:
POST https: //{your_org}-{your_env}.apigee.net/edgemicro-auth/token
… con un cuerpo JSON como el siguiente:
{ "client_id": {your_id}, "client_secret": {your_secret},
"grant_type": "client_credentials" }
Consulta lo siguiente:
- Protege la API con un token de OAuth o una clave de API en la documentación de la Microgateway de Edge.
- Cuál es el proceso para renovar los tokens de portador cuando vencen en la Comunidad de Apigee.
Actualmente, solo se verifica la basepath para determinar si una API está aprobada para los productos de API asociados con un token de OAuth en particular.
Por ejemplo:
- Creas un proxy con prefijo
edgemicro_
con la ruta base y el destino. - Agregas este proxy a un producto. Llamemos a esta función
edgemicro-prod1
. - Cuando se realiza una llamada a la API a través de Edge Microgateway con una clave de API o un token
de OAuth, Edge Microgateway comprueba si la ruta base de la API coincide con la ruta base del
proxy
edgemicro_*
que está aprobada para la lista de productos aprobados para esa clave o token.
Consulta también Cuando se usa la puerta de enlace de Edgemicro en los productos, ¿qué URL necesita una lista blanca en los productos que se usan en los recursos? en la comunidad de Apigee.
Por el momento, solo se admite el certificado SSL predeterminado de Apigee. Los certificados SSL personalizados no son compatibles en este momento.
Soluciones alternativas:
Si deseas usar un certificado SSL personalizado (no predeterminado de Apigee), tienes estas opciones:
-
Usa un extremo
jwt_public_key
sin SSL. Modifica el archivo de configuración de Edge Microgateway para usarhttp://{org}-{env}.apigee.net/edgemicro-auth/publicKey
. -
Antes de iniciar Edge Microgateway, configura esta variable de entorno: export
NODE_TLS_REJECT_UNAUTHORIZED ="0"
Consulta también Verificar los errores de instalación de Edge Micro en el certificado SSL en la comunidad de Apigee.
edgemicro-auth
en Edge, y esta implementación requiere credenciales de administrador de la organización.Puedes usar tu propio token, pero primero debes desactivar la autorización integrada de Edge Microgateway. Para ello, sigue estos pasos:
- Abre el archivo de configuración de Edge Microgateway.
-
Cambia los dos parámetros de configuración de OAuth a "true" de la siguiente manera:
oauth: allowNoAuthorization: true allowInvalidAuthorization: true
edgemicro start -o [org] -e [env] -k [key] -s [secret]
Pruebas y depuración
- ¿Cómo puedo evitar los errores de "demasiados archivos abiertos" durante las pruebas de carga?
-
En algunos casos, es posible que el sistema se encuentre con una situación en la que haya demasiadas conexiones de archivos abiertas, lo que puede provocar que Edge Micro falle. El registro predeterminado requiere dos conexiones HTTP para las transacciones entrantes y salientes a través de la micropuerta de enlace.
Para realizar pruebas y comparativas, Apigee recomienda configurar el comando ulimit de tu sistema como ilimitado:
ulimit -n unlimited
. Consulta también Error de Edge Microgateway durante las pruebas de carga en la comunidad de Apigee. - Sugerencias para el desarrollo y la depuración rápidos
-
Si desarrollas complementos para Edge Microgateway, es posible que la compatibilidad con el desarrollo rápido sea limitada.
Por ahora, estos son algunos consejos:
- Para iniciar Edge Microgateway, puedes configurar las variables de entorno EDGEMICRO_KEY y EDGEMICRO_SECRET en el par de claves y secretos que requiere el comando de inicio de Microgateway. Esto te permite iniciar Edge Microgateway sin ingresar la clave o el secreto en la línea de comandos. Consulta también Cómo configurar variables de entorno en la documentación de Edge Microgateway.
-
Inicia la micropuerta de enlace de Edge en modo DEBUG para ver resultados adicionales en la terminal de comandos:
DEBUG=* edgemicro start -o [org] -e [env] -k [key] -s [secret]
Negocio y licencias
- ¿Cuál es la relación entre los modelos de compatibilidad de Apigee-127 y Edge Microgateway?
-
Apigee-127 es un proyecto de software de código abierto compatible con el modelo de código abierto. Es decir, puedes informar problemas en el proyecto de GitHub y enviar una solicitud de extracción si intentas corregir algo. Apigee-127 no requiere ni incluye ningún Acuerdo de Licencia de Software con Apigee.
Edge Microgateway, por otro lado, es un producto empresarial que Apigee admite para sus clientes. Es decir, los clientes de Apigee pueden crear tickets de asistencia, solicitudes de funciones y informes de errores con la asistencia de Apigee Edge de Google Cloud.