Estás viendo la documentación de Apigee Edge.
Ir 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 proxy a través de Edge Microgateway pueden interactuar con una base de datos que se ejecuta como parte de un servicio de destino. Sin embargo, Edge Microgateway funciona de forma independiente de cualquier base de datos o almacén de datos de backend.
Operación
- ¿Qué cambios en Edge requieren un reinicio de Edge Microgateway?
- Edge Microgateway sondea automáticamente los cambios realizados en Apigee Edge, como los cambios en los proxies compatibles con Microgateway, los productos o las apps para desarrolladores. El intervalo de sondeo predeterminado es de 600 segundos. Sin embargo, puedes cambiarlo con el parámetro de configuración
config_change_poll_interval. Consulta atributos de edgemicro. - Si no quieres esperar el intervalo de sondeo, usa el comando
edgemicro reloadpara recuperar los cambios más recientes. Consulta Cómo volver a cargar el clúster de microgateway. - ¿Cómo diferencio un proxy implementado en Edge de un proxy en Edge Microgateway?
- Cuando configuras Edge Microgateway, se descarga una lista de proxies compatibles con Microgateway implementados en Apigee Edge en la configuración local de Edge Microgateway. Los proxies compatibles con Microgateway son aquellos que tienen el prefijo
edgemicro_. - ¿Cuáles son mis opciones de registro 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 a la forma en que funciona Edge Microgateway, no puedes usar la política Message Logging de Apigee Edge para registrar mensajes de Edge Microgateway. Consulta también el artículo de la comunidad sobre el complemento de registro para Microgateway.
- ¿Puedo volver a usar combinaciones de claves y secretos entre instancias de Edge Microgateway?
- Siempre y cuando la organización y el entorno sean los mismos para las instancias de Microgateway, puedes reutilizar el par de clave y secreto que se genera durante la configuración.
- ¿Cómo configuro Edge Microgateway para que se inicie en un entorno de producción?
- Puedes configurar las variables de entorno para los parámetros de comandos de inicio, como
EDGEMICRO_KEY,EDGEMICRO_SECRET,EDGEMICRO_ORGyEDGEMICRO_ENV. Con estas (y otras) variables, puedes iniciar Edge Microgateway con el único comandoedgemicro start. Consulta también Cómo establecer variables de entorno. - ¿Puedo usar atributos personalizados de productos o de apps para desarrolladores con Edge Microgateway?
- No. De forma predeterminada, Edge Microgateway solo actúa sobre los atributos relacionados con el enrutamiento básico y la seguridad. Sin embargo, como soluciones alternativas, tienes las siguientes opciones posibles:
-
Agrega atributos personalizados al proxy
edgemicro-authque Edge Microgateway implementa en Apigee Edge. Estos atributos estarán disponibles cuando se use 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 posterior, ten en cuenta que el tamaño máximo de 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 agregada en la versión 11.6.0 de Node.js te permite cambiar el tamaño máximo del encabezado predeterminado. 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_OPTIONSen 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 configureedgemicro upgradeauthedgemicro upgradekvmedgemicro rotatekeyedgemicro cert checkedgemicro cert deleteedgemicro 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:
- (listar implementaciones)
GET: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/deployments - (obtener información de la implementación)
GET: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth - (subir 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 - (subir recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=adjust-quota.js - (subir 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 - (subir recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=jsrsasign-all-min.js - (subir recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=jwt-initialization.js - (subir recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-jwk-response.js - (subir recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-product-list.js - (subir recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=send-public-key.js - (subir recursos)
POST: https://api.enterprise.apigee.com/v1/o/[org]/apis/edgemicro-auth/revisions/1/resources?type=jsc&name=set-jwt-variables.js - (subir 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 - (subir 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 - (deploy 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 ligero que se puede ejecutar cerca de tu 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 de Edge normales. Consulta la Parte 2: Crea entidades en Apigee Edge.
- ¿Puedo habilitar la conmutación por error entre una implementación del 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 Administración de 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 Edge Microgateway 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 cliente de varias regiones)?
- Edge Microgateway elige automáticamente la mejor región para su interacción con Apigee Edge. Puedes implementar instancias de Edge Microgateway en cada región en la que desees prestar servicios.
Administración
- ¿Debo ser administrador de la organización para configurar e implementar Edge Microgateway?
- Sí. Debes tener credenciales de administrador de la organización para configurar e implementar Edge Microgateway.
- ¿Debo ser administrador de la organización para ejecutar Edge Microgateway?
- No. Edge Microgateway es una aplicación de
Node.jsy cualquier persona con permiso para ejecutar este tipo de aplicaciones en una máquina determinada puede ejecutarla. - ¿Alguno de los usuarios de mi organización puede usar Edge Microgateway?
- No es necesario que seas usuario de una 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
- ¿Qué consideraciones de rendimiento se deben tener en cuenta al usar Edge Microgateway?
- Si ejecutas Edge Microgateway junto con la aplicación de destino, asegúrate de que el servidor tenga capacidad suficiente.
- ¿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, en el frontend. Consulta también Administración de APIs con Apigee Edge Microgateway y NGINX y Escalamiento horizontal y vertical en la comunidad de Apigee.
- ¿Cuáles son los TPS predeterminados de Edge Microgateway y cuáles son los requisitos de hardware necesarios para una instancia de Microgateway?
- Es difícil medir los requisitos de hardware y los TPS con Edge Microgateway. Depende de tu configuración, que es una combinación de la optimización de Edge Microgateway, el uso de complementos, los complementos personalizados y la configuración de otros elementos, como TLS. Por lo general, Apigee recomienda que te hagas una idea de esa combinación de elementos y realices pruebas de rendimiento con tu configuración específica.
Implementación de nube privada
- ¿Edge Microgateway funciona con Edge para la nube privada?
- Sí. Para obtener más detalles, consulta los pasos de configuración de Apigee Private Cloud.
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 la política de 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 información, consulta Cómo usar el complemento de detención de picos.
- ¿Existen otras formas de escribir complementos además de
Node.jspara 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 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 microgateways
en Apigee Edge, se ignorarán. En cambio, Edge Microgateway usa complementos para proporcionar funciones similares a las políticas de Edge, como la cuota, la protección contra aumentos repentinos, 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-authen tu organización:entorno en Apigee Edge. Este proxy expone un extremo/productsque devuelve una lista de productos de API. Si instalaste Edge Microgateway antes del 5 de octubre de 2018, Apigee 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. - Puedes proteger el extremo actualizando Edge Microgateway o configurando TLS mutua. Ambas opciones se describen a continuación.
- Verifica si el extremo
/productsestá protegido -
Si no sabes con certeza si el extremo
/productsestá protegido, ve a la sección Verifica que el recurso/productsesté protegido y sigue los pasos que se indican allí antes de continuar.Opción 1: Actualiza Edge Microgateway
Si instalaste Edge Microgateway antes del 5 de octubre de 2018, Apigee recomienda que actualices a la versión más reciente de Edge Microgateway. Sigue los pasos que se indican en Cómo actualizar Edge Microgateway si tienes conexión a Internet.
Si no puedes actualizar el dispositivo en este momento, ve a la opción 2.
Opción 2: Configura TLS mutua
Si no puedes actualizar Edge Microgateway en este momento, Apigee recomienda que protejas la comunicación entre Edge Microgateway y el proxy de
edgemicro-authcon 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 encuentras este archivo. - Agrega el siguiente bloque
tlsOptionsal archivoorg-env-config.yamlpara habilitar la TLS mutua entre Edge Microgateway 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 opcionales de
agentOptions:ca: Especifica la ruta de acceso a la autoridad de certificación.pfx: Inclúyelo si deseas usar un archivo p12/pfx en lugar de un certificado y una clave.passphrase: Es la contraseña de un archivo PFX.ciphers: Especifica los cifrados de TLS.
- Asegúrate de que el host virtual en el que se implementa el proxy
edgemicro-authtenga habilitada la TLS mutua. Para obtener más información, consulta Cómo definir un host virtual para la TLS bidireccional en la documentación de Apigee Edge.En la siguiente captura de pantalla, se muestra cómo habilitar TLS mutuo en un host virtual en la IU de Apigee Edge:
- Observa el proxy de API
edgemicro-authen 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 secciónHTTPProxyConnectiondel 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 esta, significa que el recurso /products no está protegido y que se pueden exponer los correos electrónicos de los desarrolladores:
{ "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 devuelve la lista de productos de API, es posible que se expongan los correos electrónicos de los desarrolladores. Si no deseas exponer el extremo con este host virtual no TLS, asegúrate de quitarlo de la configuración de edgemicro-auth HTTPProxyConnection.
Para proteger el recurso, elige una de las siguientes opciones:
Actualmente, no puedes renovar el token JWT para una instancia determinada de Edge Microgateway.
Solución alternativa:
Cada token JWT tiene un atributo exp que indica la fecha de vencimiento del token. Una app puede calcular la hora de vencimiento y solicitar un token nuevo realizando una llamada a la API directamente al extremo del 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 Edge Microgateway.
- Cuál es el proceso para renovar los tokens de portador cuando vencen en la comunidad de Apigee
Actualmente, solo se verifica la ruta base 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 el prefijo
edgemicro_con la ruta base y el destino. - Agregas este proxy a un producto. Llamémosla
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 verifica si la ruta base de la API coincide con la ruta base del proxy de
edgemicro_*que se aprobó para la lista de productos aprobados para esa clave o token.
Consulta también When using the edgemicro gateway in the products which url needs whitelisting in the products used under resources? en la comunidad de Apigee.
Por el momento, solo se admite el certificado SSL de Apigee predeterminado. Por el momento, no se admiten certificados SSL personalizados.
Soluciones alternativas:
Si deseas usar un certificado SSL personalizado (no el predeterminado de Apigee), tienes las siguientes opciones:
-
Usa un extremo
jwt_public_keyque no sea SSL. Modifica el archivo de configuración de Edge Microgateway para usarhttp://{org}-{env}.apigee.net/edgemicro-auth/publicKey-o- -
Antes de iniciar Edge Microgateway, configura esta variable de entorno: export
NODE_TLS_REJECT_UNAUTHORIZED ="0"
Consulta también Verify Edge Micro install errors on SSL cert 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 para Edge Microgateway. Para hacer lo siguiente:
- Abre el archivo de configuración de Edge Microgateway.
-
Cambia los dos parámetros de configuración de OAuth a verdadero, 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 evito los errores de "demasiados archivos abiertos" durante las pruebas de carga?
-
En algunos casos, es posible que tu sistema se encuentre con una situación en la que haya demasiadas conexiones de archivos abiertos, y esto puede provocar que Edge Micro falle. El registro predeterminado requiere dos conexiones HTTP para las transacciones entrantes y salientes a través de Microgateway.
Para realizar pruebas y comparativas, Apigee recomienda establecer el comando ulimit de tu sistema en 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, aquí tienes algunas sugerencias:
- Para iniciar Edge Microgateway, puedes establecer las variables de entorno EDGEMICRO_KEY y EDGEMICRO_SECRET en el par de clave y secreto 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 Edge Microgateway en modo DEBUG para ver información adicional en la terminal de comandos:
DEBUG=* edgemicro start -o [org] -e [env] -k [key] -s [secret]
Licencias y negocios
- ¿Cuál es la relación entre los modelos de asistencia de Apigee-127 y Edge Microgateway?
-
Apigee-127 es un proyecto de software de código abierto que se admite en el modelo de código abierto. Es decir, puedes plantear problemas en el proyecto de GitHub y realizar una solicitud de extracción si intentas corregir algo. Apigee-127 no requiere ni incluye ningún Acuerdo de Licencia de Software con Apigee.
Por otro lado, Edge Microgateway es un producto empresarial que Apigee admite para los clientes de Apigee. Es decir, los clientes de Apigee pueden crear tickets de asistencia, solicitudes de funciones y errores con el equipo de asistencia de Apigee Edge de Google Cloud.