Referencia de operación y configuración de Edge Microgateway

Estás viendo la documentación de Apigee Edge.
Ir a la documentación de Apigee X.
info

Edge Microgateway v. 2.4.x

Descripción general

En este tema, se explica cómo administrar y configurar Edge Microgateway, lo que incluye la supervisión, el registro y la depuración.

Cómo realizar cambios de configuración

Los archivos de configuración que debes conocer incluyen los siguientes:

  • Archivo de configuración predeterminado del sistema
  • Archivo de configuración predeterminado para una instancia de Edge Microgateway recién inicializada
  • Archivo de configuración dinámico para instancias en ejecución

En esta sección, se analizan estos archivos y lo que debes saber para cambiarlos. Para obtener detalles sobre la configuración del archivo de configuración, consulta la referencia de configuración de Edge Microgateway.

Archivo de configuración predeterminada del sistema

Cuando instalas Edge Microgateway, se coloca un archivo de configuración del sistema predeterminado aquí:

[prefix]/lib/node_modules/edgemicro/config/default.yaml

donde [prefix] es el directorio de prefijo de npm. Consulta Dónde se instala Edge Microgateway.

Si cambias el archivo de configuración del sistema, debes volver a inicializar, configurar y reiniciar Edge Microgateway:

  1. Llamar a edgemicro init
  2. Llamar a edgemicro configure [params]
  3. Llamar a edgemicro start [params]

Archivo de configuración predeterminado para las instancias de Edge Microgateway recién inicializadas

Cuando ejecutas edgemicro init, el archivo de configuración del sistema (descrito anteriormente), default.yaml, se coloca en este directorio: ~/.edgemicro

Si cambias el archivo de configuración en ~/.edgemicro, debes volver a configurar y reiniciar Edge Microgateway:

  1. edgemicro stop
  2. edgemicro configure [params]
  3. edgemicro start [params]

Archivo de configuración dinámico para ejecutar instancias

Cuando ejecutas edgemicro configure [params], se crea un archivo de configuración dinámico en ~/.edgemicro. El archivo se denomina según este patrón: [org]-[env]-config.yaml, donde org y env son los nombres de tu organización y entorno de Apigee Edge. Puedes usar este archivo para realizar cambios en la configuración y, luego, volver a cargarlos sin tiempo de inactividad. Por ejemplo, si agregas y configuras un complemento, puedes volver a cargar la configuración sin incurrir en tiempo de inactividad, como se explica a continuación.

Si Edge Microgateway está en ejecución (opción sin tiempo de inactividad):

  1. Vuelve a cargar la configuración de Edge Microgateway:
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]

    Donde:

    • org es el nombre de tu organización de Edge (debes ser administrador de la organización).
    • env es un entorno de tu organización (como test o prod).
    • key es la clave que devolvió anteriormente el comando configure.
    • secret es la clave que devolvió anteriormente el comando de configuración.

    Ejemplo

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824

Si Edge Microgateway está detenido, haz lo siguiente:

  1. Reinicia Edge Microgateway:
    edgemicro start -o [org] -e [env] -k [key] -s [secret]

    Donde:

    • org es el nombre de tu organización de Edge (debes ser administrador de la organización).
    • env es un entorno de tu organización (como test o prod).
    • key es la clave que devolvió anteriormente el comando configure.
    • secret es la clave que devolvió anteriormente el comando de configuración.

    Ejemplo

    edgemicro start -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824

Este es un ejemplo de un archivo de configuración. Para obtener detalles sobre la configuración del archivo de configuración, consulta la referencia de configuración de Edge Microgateway.

edge_config:
  bootstrap: >-
    https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test
  jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey'
  managementUri: 'https://api.enterprise.apigee.com'
  vaultName: microgateway
  authUri: 'https://%s-%s.apigee.net/edgemicro-auth'
  baseUri: >-
    https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s
  bootstrapMessage: Please copy the following property to the edge micro agent config
  keySecretMessage: The following credentials are required to start edge micro
  products: 'https://docs-test.apigee.net/edgemicro-auth/products'
edgemicro:
  port: 8000
  max_connections: 1000
  max_connections_hard: 5000
  config_change_poll_interval: 600
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24
  plugins:
    sequence:
      - oauth
headers:
  x-forwarded-for: true
  x-forwarded-host: true
  x-request-id: true
  x-response-time: true
  via: true
oauth:
  allowNoAuthorization: false
  allowInvalidAuthorization: false
  verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey'
analytics:
  uri: >-
    https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test

Configura variables de entorno

Los comandos de la interfaz de línea de comandos que requieren valores para tu organización y entorno de Edge, y la clave y el secreto necesarios para iniciar Edge Microgateway, se pueden almacenar en estas variables de entorno:

  • EDGEMICRO_ORG
  • EDGEMICRO_ENV
  • EDGEMICRO_KEY
  • EDGEMICRO_SECRET

Establecer estas variables es opcional. Si los configuras, no tienes que especificar sus valores cuando usas la interfaz de línea de comandos (CLI) para configurar y, luego, iniciar Edge Microgateway.

Cómo configurar SSL en el servidor de Edge Microgateway

Puedes configurar el servidor de Microgateway para que use SSL. Por ejemplo, con SSL configurado, puedes llamar a las APIs a través de Edge Microgateway con el protocolo "https", de la siguiente manera:

https://localhost:8000/myapi

Para configurar SSL en el servidor de Microgateway, sigue estos pasos:

  1. Genera u obtén un certificado y una clave SSL con la utilidad openssl o el método que prefieras.
  2. Agrega el atributo edgemicro:ssl al archivo de configuración de Edge Microgateway. Para obtener una lista completa de las opciones, consulta la siguiente tabla. Para obtener detalles sobre cómo modificar la configuración de Edge Microgateway, consulta Cómo realizar cambios en la configuración. Por ejemplo:
     edgemicro:
         ssl:
             key: <absolute path to the SSL key file>
             cert: <absolute path to the SSL cert file>
             passphrase: admin123 #option added in v2.2.2
             rejectUnauthorized: true #option added in v2.2.2
             requestCert: true 
  3. Reinicia Edge Microgateway. Sigue los pasos que se describen en Cómo realizar cambios de configuración según el archivo de configuración que editaste: el archivo predeterminado o el archivo de configuración del entorno de ejecución.

A continuación, se muestra un ejemplo de la sección edgemicro del archivo de configuración, con SSL configurado:

edgemicro:
  port: 8000
  max_connections: 1000
  max_connections_hard: 5000
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24
  plugins:
    sequence:
      - oauth
  ssl:
    key: /MyHome/SSL/em-ssl-keys/server.key
    cert: /MyHome/SSL/em-ssl-keys/server.crt
    passphrase: admin123 #option added in v2.2.2
    rejectUnauthorized: true #option added in v2.2.2

A continuación, se incluye una lista de todas las opciones de servidor compatibles:

Opción Descripción
key Ruta de acceso a un archivo ca.key (en formato PEM).
cert Ruta de acceso a un archivo ca.cert (en formato PEM).
pfx Ruta de acceso a un archivo pfx que contiene la clave privada, el certificado y los certificados de CA del cliente en formato PFX.
passphrase Es una cadena que contiene la frase de contraseña de la clave privada o el archivo PFX.
ca Ruta de acceso a un archivo que contiene una lista de certificados de confianza en formato PEM.
ciphers Es una cadena que describe los algoritmos de cifrado que se usarán, separados por un ":".
rejectUnauthorized Si es verdadero, el certificado del servidor se verifica con la lista de AC proporcionadas. Si falla la verificación, se muestra un error.
secureProtocol Es el método SSL que se usará. Por ejemplo, SSLv3_method para forzar SSL a la versión 3.
servername Es el nombre del servidor para la extensión TLS de SNI (indicación de nombre del servidor).
requestCert Es verdadero para SSL bidireccional y falso para SSL unidireccional.

Uso de opciones de SSL/TLS del cliente

Puedes configurar Edge Microgateway para que sea un cliente de TLS o SSL cuando se conecte a los extremos de destino. En el archivo de configuración de Microgateway, usa el elemento targets para establecer las opciones de SSL/TLS.

En este ejemplo, se proporcionan parámetros de configuración que se aplicarán a todos los hosts:

targets:
   ssl:
     client:
       key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key
       cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt
       passphrase: admin123
       rejectUnauthorized: true

En este ejemplo, la configuración solo se aplica al host especificado:

targets:
   host: 'myserver.example.com'
   ssl:
     client:
       key: /Users/myname/twowayssl/ssl/client.key
       cert: /Users/myname/twowayssl/ssl/ca.crt
       passphrase: admin123
       rejectUnauthorized: true

Este es un ejemplo de TLS:

targets:
   host: 'myserver.example.com'
   tls:
     client:
       pfx: /Users/myname/twowayssl/ssl/client.pfx
       passphrase: admin123
       rejectUnauthorized: true

A continuación, se incluye una lista de todas las opciones de cliente compatibles:

Opción Descripción
pfx Ruta de acceso a un archivo pfx que contiene la clave privada, el certificado y los certificados de CA del cliente en formato PFX.
key Ruta de acceso a un archivo ca.key (en formato PEM).
passphrase Es una cadena que contiene la frase de contraseña de la clave privada o el archivo PFX.
cert Ruta de acceso a un archivo ca.cert (en formato PEM).
ca Ruta de acceso a un archivo que contiene una lista de certificados de confianza en formato PEM.
ciphers Es una cadena que describe los algoritmos de cifrado que se usarán, separados por un ":".
rejectUnauthorized Si es verdadero, el certificado del servidor se verifica con la lista de AC proporcionadas. Si falla la verificación, se muestra un error.
secureProtocol Es el método SSL que se usará. Por ejemplo, SSLv3_method para forzar SSL a la versión 3.
servername Es el nombre del servidor para la extensión TLS de SNI (indicación de nombre del servidor).

Cómo personalizar el proxy de edgemicro-auth

De forma predeterminada, Edge Microgateway usa un proxy implementado en Apigee Edge para la autenticación de OAuth2. Este proxy se implementa cuando ejecutas edgemicro configure por primera vez. Puedes cambiar la configuración predeterminada de este proxy para agregar compatibilidad con reclamos personalizados a un token web JSON (JWT), configurar el vencimiento del token y generar tokens de actualización. Para obtener más detalles, consulta la página edgemicro-auth en GitHub.

Usa un servicio de autorización personalizado

De forma predeterminada, Edge Microgateway usa un proxy implementado en Apigee Edge para la autenticación de OAuth2. Este proxy se implementa cuando ejecutas edgemicro configure por primera vez. De forma predeterminada, la URL de este proxy se especifica en el archivo de configuración de Edge Microgateway de la siguiente manera:

authUri: https://myorg-myenv.apigee.net/edgemicro-auth

Si deseas usar tu propio servicio personalizado para controlar la autenticación, cambia el valor de authUri en el archivo de configuración para que apunte a tu servicio. Por ejemplo, es posible que tengas un servicio que use LDAP para verificar la identidad.

Administración de archivos de registro

Edge Microgateway registra información sobre cada solicitud y respuesta. Los archivos de registro proporcionan información útil para la depuración y la solución de problemas.

Dónde se almacenan los archivos de registro

De forma predeterminada, los archivos de registro se almacenan en /var/tmp.

Cómo cambiar el directorio predeterminado del archivo de registro

El directorio en el que se almacenan los archivos de registro se especifica en el archivo de configuración de Edge Microgateway. Para obtener detalles sobre cómo realizar cambios en la configuración, consulta Cómo realizar cambios en la configuración.

edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

Cambia el valor de dir para especificar un directorio de archivos de registro diferente.

Envía registros a la consola

Puedes configurar el registro de modo que la información de registro se envíe a la salida estándar en lugar de a un archivo de registro. Establece la marca to_console en verdadero de la siguiente manera:

edgemicro:
  logging:
    to_console: true  

Con este parámetro de configuración, los registros se enviarán a la salida estándar. Actualmente, no puedes enviar registros a stdout y a un archivo de registro.

Cómo establecer el nivel de registro

Puedes establecer los siguientes niveles de registro: info, warn y error. Se recomienda el nivel de información. Registra todas las solicitudes y respuestas de la API, y es el valor predeterminado.

Cómo cambiar los intervalos de registro

Puedes configurar estos intervalos en el archivo de configuración de Edge Microgateway. Para obtener detalles sobre cómo realizar cambios en la configuración, consulta Cómo realizar cambios en la configuración.

Los atributos configurables son los siguientes:

  • stats_log_interval: (predeterminado: 60) Intervalo, en segundos, en el que se escribe el registro de estadísticas en el archivo de registro de la API.
  • rotate_interval: (predeterminado: 24) Es el intervalo, en horas, en el que se rotan los archivos de registro. Por ejemplo:
edgemicro:
  home: ../gateway
  port: 8000
  max_connections: -1
  max_connections_hard: -1
  logging:
    level: info
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

Nota: Los archivos de registro archivados no se comprimen. Cuando comienza el intervalo, se crea un archivo de registro nuevo con una nueva marca de tiempo.

Prácticas recomendadas para el mantenimiento de archivos de registro

A medida que se acumulan los datos de los archivos de registro con el tiempo, Apigee recomienda que adoptes las siguientes prácticas:

Convención de nomenclatura de archivos de registro

Cada instancia de Edge Microgateway produce tres tipos de archivos de registro:

  • api: Registra todas las solicitudes y respuestas que fluyen a través de Edge Microgateway. Los contadores (estadísticas) y los errores de la API también se registran en este archivo.
  • err: Registra todo lo que se envía a stderr.
  • out: Registra todo lo que se envía a stdout.

Esta es la convención de nomenclatura:

edgemicro-<Host Name>-<Instance ID>-<Log Type>.log

Por ejemplo:

edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log
edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log
edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log

Acerca del contenido de los archivos de registro

Se agregó en la versión 2.3.3

De forma predeterminada, el servicio de registro omite el JSON de los proxies, los productos y el token web JSON (JWT) descargados. Si deseas generar estos objetos en los archivos de registro, configura DEBUG=* cuando inicies Edge Microgateway. Por ejemplo:

DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456

Nota: En Windows, usa SET DEBUG=*.

Contenido del archivo de registro "api"

El archivo de registro "api" contiene información detallada sobre el flujo de solicitudes y respuestas a través de Edge Microgateway. Los archivos de registro de la API tienen el siguiente nombre:

edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log

Para cada solicitud realizada a Edge Microgateway, se capturan cuatro eventos en el archivo de registro "api":

  • Solicitud entrante del cliente
  • Se realizó una solicitud saliente al destino
  • Respuesta entrante del destino
  • Respuesta saliente al cliente

Cada una de estas entradas separadas se representa en una notación abreviada para ayudar a que los archivos de registro sean más compactos. A continuación, se muestran cuatro entradas de ejemplo que representan cada uno de los cuatro eventos. En el archivo de registro, se ven de la siguiente manera (los números de línea son solo para referencia en el documento, no aparecen en el archivo de registro).

(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
(2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0
(3) 1436403888672 info tres s=200, d=7, i=0
(4) 1436403888676 info res s=200, d=11, i=0

Analicemos cada uno de ellos:

1. Ejemplo de solicitud entrante del cliente:

1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
  • 1436403888651: Marca de fecha de Unix
  • info: Depende del contexto. Puede ser info, warn o error, según el nivel de registro. Puede ser stats para un registro de estadísticas, warn para advertencias o error para errores.
  • req: Identifica el evento. En este caso, es la solicitud del cliente.
  • m: Es el verbo HTTP que se usa en la solicitud.
  • u: Es la parte de la URL que sigue a la ruta base.
  • h: Es el host y el número de puerto en el que Edge Microgateway está escuchando.
  • r: Es el host y el puerto remotos en los que se originó la solicitud del cliente.
  • i: Es el ID de la solicitud. Las cuatro entradas de eventos compartirán este ID. A cada solicitud se le asigna un ID único. Correlacionar los registros de registro por ID de solicitud puede proporcionar información valiosa sobre la latencia del objetivo.
  • d: Es la duración en milisegundos desde que Edge Microgateway recibió la solicitud. En el ejemplo anterior, la respuesta del destino para la solicitud 0 se recibió después de 7 milisegundos (línea 3), y la respuesta se envió al cliente después de 4 milisegundos adicionales (línea 4). En otras palabras, la latencia total de la solicitud fue de 11 milisegundos, de los cuales 7 fueron del destino y 4 del propio Edge Microgateway.

2. Ejemplo de solicitud saliente realizada al destino:

1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
  • 1436403888651: Marca de fecha de Unix
  • info: Depende del contexto. Puede ser info, warn o error, según el nivel de registro. Puede ser stats para un registro de estadísticas, warn para advertencias o error para errores.
  • treq: Identifica el evento. En este caso, es la solicitud de destino.
  • m: Es el verbo HTTP que se usa en la solicitud de destino.
  • u: Es la parte de la URL que sigue a la ruta base.
  • h: Es el host y el número de puerto del destino de backend.
  • i: Es el ID de la entrada de registro. Las cuatro entradas de eventos compartirán este ID.

3. Muestra de la respuesta entrante del destino

1436403888672 info tres s=200, d=7, i=0

1436403888651: Marca de fecha de Unix

  • info: Depende del contexto. Puede ser info, warn o error, según el nivel de registro. Puede ser stats para un registro de estadísticas, warn para advertencias o error para errores.
  • tres: Identifica el evento. En este caso, es la respuesta de destino.
  • s: Es el estado de la respuesta HTTP.
  • d: Es la duración en milisegundos. Es el tiempo que tarda el destino en realizar la llamada a la API.
  • i: Es el ID de la entrada de registro. Las cuatro entradas de eventos compartirán este ID.

4. Ejemplo de respuesta saliente para el cliente

1436403888676 info res s=200, d=11, i=0

1436403888651: Marca de fecha de Unix

  • info: Depende del contexto. Puede ser info, warn o error, según el nivel de registro. Puede ser stats para un registro de estadísticas, warn para advertencias o error para errores.
  • res: Identifica el evento. En este caso, se responde al cliente.
  • s: Es el estado de la respuesta HTTP.
  • d: Es la duración en milisegundos. Es el tiempo total que tarda la llamada a la API, incluido el tiempo que tarda la API de destino y el tiempo que tarda el propio Edge Microgateway.
  • i: Es el ID de la entrada de registro. Las cuatro entradas de eventos compartirán este ID.

Programación del archivo de registro

Los archivos de registro se rotan en el intervalo especificado por el rotate_interval. Se seguirán agregando entradas al mismo archivo de registro hasta que venza el intervalo de rotación. Sin embargo, cada vez que se reinicia Edge Microgateway, recibe un nuevo UID y crea un nuevo conjunto de archivos de registro con este UID. Consulta también Prácticas recomendadas para el mantenimiento de archivos de registro.

Referencia de configuración de Edge Microgateway

Ubicación del archivo de configuración

Los atributos de configuración que se describen en esta sección se encuentran en el archivo de configuración de Edge Microgateway. Para obtener detalles sobre cómo realizar cambios en la configuración, consulta Cómo realizar cambios en la configuración.

Atributos de edge_config

Estos parámetros de configuración se usan para configurar la interacción entre la instancia de Edge Microgateway y Apigee Edge.

  • bootstrap: (predeterminado: none) URL que apunta a un servicio específico de Edge Microgateway que se ejecuta en Apigee Edge. Edge Microgateway usa este servicio para comunicarse con Apigee Edge. Esta URL se devuelve cuando ejecutas el comando para generar el par de claves pública/privada: edgemicro genkeys. Consulta Cómo configurar Edge Microgateway para obtener más detalles.
  • jwt_public_key: (valor predeterminado: none) URL que apunta al proxy de Edge Microgateway implementado en Apigee Edge. Este proxy funciona como un extremo de autenticación para emitir tokens de acceso firmados a los clientes. Esta URL se devuelve cuando ejecutas el comando para implementar el proxy: edgemicro configure. Consulta Cómo configurar Edge Microgateway para obtener más detalles.

Atributos de edgemicro

Estos parámetros de configuración establecen el proceso de Edge Microgateway.

  • port: (predeterminado: 8000) Es el número de puerto en el que escucha el proceso de Edge Microgateway.
  • max_connections: (valor predeterminado: -1) Especifica la cantidad máxima de conexiones entrantes simultáneas que puede recibir Edge Microgateway. Si se supera este número, se muestra el siguiente estado:

    res.statusCode = 429; // Too many requests
  • max_connections_hard: (valor predeterminado: -1) Es la cantidad máxima de solicitudes simultáneas que Edge Microgateway puede recibir antes de cerrar la conexión. Este parámetro de configuración está diseñado para frustrar los ataques de denegación de servicio. Por lo general, se establece en un número mayor que max_connections.
  • logging:
    • level: (predeterminado: error)
      • info: Registra todas las solicitudes y respuestas que fluyen a través de una instancia de Edge Microgateway.
      • warn: Registra solo los mensajes de advertencia.
      • error: Registra solo los mensajes de error.
    • dir: (predeterminado: /var/tmp) Es el directorio en el que se almacenan los archivos de registro.
    • stats_log_interval: (predeterminado: 60) Intervalo, en segundos, en el que se escribe el registro de estadísticas en el archivo de registro de la API.
    • rotate_interval: (predeterminado: 24) Es el intervalo, en horas, en el que se rotan los archivos de registro.
  • dir: Es una ruta de acceso relativa desde el directorio ./gateway al directorio ./plugins, o bien una ruta de acceso absoluta.
  • sequence: Es una lista de módulos de complementos que se agregarán a tu instancia de Edge Microgateway. Los módulos se ejecutarán en el orden en que se especifican aquí.
  • debug: Agrega la depuración remota al proceso de Edge Microgateway.
    • port: Es el número de puerto en el que se escuchará. Por ejemplo, configura el depurador de tu IDE para que detecte solicitudes en este puerto.
    • args: Argumentos para el proceso de depuración. Por ejemplo: args --nolazy
  • config_change_poll_interval: (predeterminado: 600 segundos) Edge Microgateway carga una nueva configuración periódicamente y ejecuta una recarga si se modificó algo. El sondeo detecta los cambios realizados en Edge (cambios en productos, proxies compatibles con microgateways, etc.), así como los cambios realizados en el archivo de configuración local.
  • disable_config_poll_interval: (predeterminado: false) Se establece en true para desactivar la sondeo automático de cambios.
  • request_timeout: Establece un tiempo de espera para las solicitudes de destino. El tiempo de espera se establece en segundos. Si se produce un tiempo de espera, Edge Microgateway responde con un código de estado 504. (Se agregó en la versión 2.4.x)

Atributos de encabezados

Estos parámetros de configuración determinan cómo se tratan ciertos encabezados HTTP.

  • x-forwarded-for: (predeterminado: true) Establece el valor en falso para evitar que los encabezados x-forwarded-for se pasen al destino. Ten en cuenta que, si hay un encabezado x-forwarded-for en la solicitud, su valor se establecerá en el valor de client-ip en Edge Analytics.
  • x-forwarded-host: (predeterminado: true) Establece este valor en falso para evitar que los encabezados x-forwarded-host se pasen al destino.
  • x-request-id: (predeterminado: true) Establece este valor en falso para evitar que los encabezados x-request-id se pasen al destino.
  • x-response-time: (predeterminado: true) Establece en falso para evitar que los encabezados x-response-time se pasen al destino.
  • vía: (predeterminado: verdadero) Se establece en falso para evitar que los encabezados vía se pasen al destino.

Atributos de OAuth

Estos parámetros de configuración determinan cómo Edge Microgateway aplica la autenticación del cliente.

  • allowNoAuthorization: (valor predeterminado: false) Si se establece en verdadero, se permite que las llamadas a la API pasen por Edge Microgateway sin ningún encabezado de autorización. Establece este valor en falso para requerir un encabezado de autorización (predeterminado).
  • allowInvalidAuthorization: (valor predeterminado: false) Si se configura como verdadero, se permite el paso de las llamadas a la API si el token que se pasó en el encabezado de autorización no es válido o venció. Establece este parámetro en falso para requerir tokens válidos (opción predeterminada).
  • authorization-header: (valor predeterminado: Authorization: Bearer) Es el encabezado que se usa para enviar el token de acceso a Edge Microgateway. Es posible que desees cambiar el valor predeterminado en los casos en que el destino necesite usar el encabezado de autorización para algún otro propósito.
  • api-key-header: (valor predeterminado: x-api-key) Es el nombre del encabezado o parámetro de consulta que se usa para pasar una clave de API a Edge Microgateway. Consulta también Cómo usar una clave de API.
  • keepAuthHeader: (valor predeterminado: falso) Si se establece en verdadero, el encabezado Authorization enviado en la solicitud se pasa al destino (se conserva).
  • allowOAuthOnly: Si se establece en verdadero, cada API debe incluir un encabezado de autorización con un token de acceso de portador. Te permite habilitar solo el modelo de seguridad de OAuth (y mantener la retrocompatibilidad). (Se agregó en la versión 4.2.x)
  • allowAPIKeyOnly: Si se establece como verdadero, cada API debe incluir un encabezado x-api-key (o una ubicación personalizada) con una clave de API.Te permite permitir solo el modelo de seguridad de la clave de API (y mantener la compatibilidad con versiones anteriores). (Se agregó en la versión 4.2.x)

Atributos específicos del complemento

Consulta Uso de complementos para obtener detalles sobre los atributos configurables de cada complemento.

Proxies de filtrado

Puedes filtrar los proxies compatibles con microgateway que procesará una instancia de Edge Microgateway. Cuando se inicia Edge Microgateway, se descargan todos los proxies compatibles con microgateway de la organización con la que está asociado. Usa la siguiente configuración para limitar los proxies que procesará el microgateway. Por ejemplo, esta configuración limita a tres los proxies que procesará la microgateway: edgemicro_proxy-1, edgemicro_proxy-2 y edgemicro_proxy-3:

proxies:
  - edgemicro_proxy-1
  - edgemicro_proxy-2
  - edgemicro_proxy-3

Enmascaramiento de datos de análisis

La siguiente configuración evita que la información de la ruta de acceso a la solicitud aparezca en las estadísticas de Edge. Agrega lo siguiente a la configuración de microgateway para enmascarar el URI de solicitud o la ruta de acceso de la solicitud. Ten en cuenta que el URI consta del nombre de host y las partes de la ruta de acceso de la solicitud.

analytics:
  mask_request_uri: 'string_to_mask'
  mask_request_path: 'string_to_mask'

Configura Edge Microgateway detrás de un firewall de la empresa

Versión 4.2.x compatible

Si Edge Microgateway está instalado detrás de un firewall, es posible que la puerta de enlace no pueda comunicarse con Apigee Edge. En este caso, puedes considerar dos opciones:

Opción 1:

La primera opción es establecer la opción edgemicro: proxy_tunnel como verdadera en el archivo de configuración del microgateway:

edge_config:

    proxy: http://10.224.16.85:3128
    proxy_tunnel: true

Cuando proxy_tunnel es true, Edge Microgateway usa el método HTTP CONNECT para tunelizar solicitudes HTTP a través de una sola conexión TCP. (Lo mismo sucede si las variables de entorno para configurar el proxy tienen habilitada la TLS).

Opción 2:

La segunda opción es especificar un proxy y establecer proxy_tunnel como falso en el archivo de configuración de microgateway. Por ejemplo:

edge_config:
     proxy: http://10.224.16.85:3128
     proxy_tunnel: false

En este caso, puedes establecer las siguientes variables para controlar los hosts de cada proxy HTTP que desees usar o qué hosts no deben controlar los proxies de Edge Microgateway: HTTP_PROXY, HTTPS_PROXY y NO_PROXY.

Puedes establecer NO_PROXY como una lista de dominios delimitada por comas a los que Edge Microgateway no debe enviar solicitudes a través del proxy. Por ejemplo:

export NO_PROXY='localhost,localhost:8080'

Configura HTTP_PROXY y HTTPS_PROXY en el extremo del proxy HTTP al que Edge Microgateway puede enviar mensajes. Por ejemplo:

export HTTP_PROXY='http://localhost:3786'

export HTTPS_PROXY='https://localhost:3786'

Para obtener más información sobre estas variables, consulta los siguientes recursos:

https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables


Consulta también

Cómo configurar Edge Microgateway detrás de un firewall de la empresa en la comunidad de Apigee

Usa comodines en proxies compatibles con Microgateway

Puedes usar uno o más comodines “*” en la ruta base de un proxy edgemicro_* (compatible con Microgateway). Por ejemplo, una ruta base de /team/*/members permite que los clientes llamen a https://[host]/team/blue/members y https://[host]/team/green/members sin necesidad de crear proxies de API nuevos para admitir equipos nuevos. Ten en cuenta que no se admite /**/.

Importante: Apigee NO admite el uso de un comodín “*” como el primer elemento de una ruta base. Por ejemplo, NO se admite la búsqueda de /*/.


Depuración y solución de problemas

Cómo conectarse a un depurador

Puedes ejecutar Edge Microgateway con un depurador, como node-inspector. Esto es útil para solucionar problemas y depurar complementos personalizados.

  1. Reinicia Edge Microgateway en modo de depuración. Para ello, agrega DEBUG=* al comienzo del comando de inicio. Por ejemplo:

    DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7ed

    Nota: En Windows, usa SET DEBUG=*.

  2. Inicia el depurador y configúralo para que escuche el número de puerto del proceso de depuración.
  3. Ahora puedes revisar el código de Edge Microgateway, establecer interrupciones, observar expresiones y mucho más.

Puedes especificar marcas estándar de Node.js relacionadas con el modo de depuración. Por ejemplo, --nolazy ayuda a depurar código asíncrono.

Cómo verificar los archivos de registro

Si tienes problemas, asegúrate de examinar los archivos de registro para obtener detalles de la ejecución y la información de los errores. Para obtener más información, consulta Administra archivos de registro.

Uso de la seguridad de la clave de API

Las claves de API proporcionan un mecanismo simple para autenticar a los clientes que realizan solicitudes a Edge Microgateway. Para obtener una clave de API, copia el valor de la clave de consumidor (también llamado ID de cliente) de un producto de Apigee Edge que incluya el proxy de autenticación de Edge Microgateway.

Almacenamiento en caché de claves

Las claves de API se intercambian por tokens de portador, que se almacenan en caché. Para inhabilitar el almacenamiento en caché, configura el encabezado Cache-Control: no-cache en las solicitudes entrantes a Edge Microgateway.

Cómo usar la seguridad de tokens de OAuth2

Para obtener detalles sobre el uso de un token de OAuth con solicitudes de proxy, consulta Protege Edge Microgateway.

Uso de una clave de API

Para obtener detalles sobre el uso de claves de API con solicitudes de proxy, consulta Protege Edge Microgateway.

Cómo configurar el nombre de la clave de API

De forma predeterminada, x-api-key es el nombre que se usa para el encabezado de la clave de API o el parámetro de consulta. Puedes cambiar este valor predeterminado en el archivo de configuración, como se explica en Cómo realizar cambios en la configuración. Por ejemplo, para cambiar el nombre a apiKey, haz lo siguiente:

oauth:
 allowNoAuthorization: false
 allowInvalidAuthorization: false
 api-key-header: apiKey