Saltar al contenido

Ejecutar un gateway API privado de Jitterbit en Docker

Introducción

Esta sección ofrece ejemplos de diferentes formas de ejecutar un gateway API privado en Docker utilizando la imagen de Docker de Jitterbit.

Requisitos previos

Antes de comenzar, necesitas lo siguiente:

  • Docker instalado y en funcionamiento.

  • Una cuenta de Harmony, junto con su nombre de usuario, contraseña e ID de organización.

  • Una API Manager válida en la organización asociada con el gateway API privado.

  • Si se ejecuta detrás de un proxy de reenvío, configura el firewall de tu host para permitir excepciones del servidor proxy.

  • (Opcional) Para la generación automática de certificados TLS, un dominio de gateway personalizado registrado y su nombre de dominio completamente calificado (FQDN) en la forma mygateway.mydomain.com.

Inicio y configuración interactiva

Ejecuta lo siguiente para iniciar el contenedor, luego responde a las indicaciones (que siguen los pasos de configuración de instalación de Linux):

docker run --interactive --tty --name=jb-gateway \
--hostname=jb-gateway -p 80:80 -p 443:443 \
jitterbit/private-gateway

Inicio y configuración interactiva con red puente

Ejecuta lo siguiente para crear una red puente y comenzar el contenedor conectado a esa red, luego responde a las indicaciones:

docker network create -d bridge jitterbit

docker run --interactive -tty --name=jb-gateway \
--hostname=jb-gateway -p 80:80 -p 443:443 \
--network=jitterbit \
jitterbit/private-gateway

Una red puente ofrece las siguientes ventajas:

  • Descubrimiento de Contenedores: Permite la comunicación directa utilizando nombres de contenedores, evitando la dependencia de direcciones IP. Esto simplifica la comunicación entre contenedores y permite que agentes privados se comuniquen libremente con gateways privados.

  • Mejor Aislamiento: Proporciona un mejor aislamiento, reduciendo el riesgo de interacciones accidentales entre contenedores no relacionados.

  • Configuraciones Personalizadas: Permite configuraciones específicas de red, como la personalización de subred y puerta de enlace.

  • Segmentación de Red: Facilita la segmentación del tráfico de red, asegurando que los contenedores en diferentes redes de puente no interfieran entre sí.

  • Políticas de Red: Permite la aplicación de reglas o políticas de red distintas, ofreciendo un control mejorado sobre las comunicaciones entre contenedores.

Advertencia

Si se configura un entorno de múltiples puertas de enlace en contenedores detrás de un equilibrador de carga de aplicaciones (ALB) como AWS ALB, todos los contenedores de puerta de enlace deben estar en la misma máquina host.

Consejo

Utiliza la misma red para ejecutar tus agentes privados basados en Docker.

Inicio no atendido con red de puente y configuración con variables de entorno

Ejecuta lo siguiente para crear una red de puente y comenzar el contenedor en modo separado, con valores proporcionados a través de variables de entorno:

docker network create -d bridge jitterbit

docker run --detach --name=jb-gateway \
--hostname=jb-gateway -p 80:80 -p 443:443 \
--network=jitterbit \
--env "HARMONY_USERNAME=<USERNAME>" \
--env "HARMONY_PASSWORD=<PASSWORD>" \
--env "ORGANIZATION_ID=<ORG_ID>" \
--env "SERVICE_URL=<SERVICE_URL>" \
--env "PROXY_ENABLED=true|false" \
--env "PROXY_HOSTNAME=<PROXY_HOSTNAME>"
--env "PROXY_USERNAME=<PROXY_SERVER_USERNAME>" \
--env "PROXY_PASSWORD=<PROXY_SERVER_PASSWORD>" \
--env "LETS_ENCRYPT_ENABLED=true|false" \
--env "LETS_ENCRYPT_DOMAIN=<DOMAIN>" \
--env "LETS_ENCRYPT_EMAIL=<EMAIL>" \
jitterbit/private-gateway

Establece los valores de las variables de la siguiente manera:

Variable Descripción Ejemplo
HARMONY_USERNAME Inicio de sesión de la cuenta de Harmony. name@example.com
HARMONY_PASSWORD Contraseña de la cuenta de Harmony. P@5$w0rd
ORGANIZATION_ID Número de identificación de la organización de Harmony. 12345
SERVICE_URL URL del servicio de Jitterbit para tu región:
  • NA: https://services.jitterbit.net/apis
  • EMEA: https://services.jitterbit.eu/apis
  • APAC: https://services.jitterbit.cc/apis
https://services.jitterbit.eu/apis
PROXY_ENABLED Habilitar proxy (true o false). true
PROXY_HOSTNAME Nombre de host y puerto del proxy. host.docker.internal:12121
PROXY_USERNAME Nombre de usuario del servidor proxy. $(PROXY_SERVER_USERNAME)
PROXY_PASSWORD Contraseña del servidor proxy. $(PROXY_SERVER_PASSWORD)
LETS_ENCRYPT_ENABLED Habilitar Let's Encrypt (true o false). true
LETS_ENCRYPT_DOMAIN Nombre de dominio de Let's Encrypt. gateway.mydomain.com
LETS_ENCRYPT_EMAIL Correo electrónico de la cuenta de Let's Encrypt. youremail@<mydomain>.com

Inicio no atendido y configuración con un archivo de variables de entorno

Sigue estos pasos para iniciar el contenedor en modo desacoplado con las variables de entorno establecidas en un archivo:

  1. En el directorio donde se ejecuta Docker, crea un subdirectorio conf. En él, crea un archivo gateway.conf que contenga las siguientes variables de entorno:

    conf/gateway.conf
    ##
    # Jitterbit Private API Gateway Docker configuration
    # For more information, see https://docs.jitterbit.com/api-gateways/private-api-gateway/docker/
    ##
    
    ## Jitterbit API Gateway Configuration
    #
    # Your Harmony account username. (Usually your email address.)
    HARMONY_USERNAME=
    # Your Harmony account password.
    # IMPORTANT: Follow your shell's quoting and escape rules for passwords with special characters.
    # Example: 'P@5$w0rD'
    HARMONY_PASSWORD=
    # Your Harmony account organization ID.
    # Example: 12345
    ORGANIZATION_ID=
    # The Jitterbit service URL for your Harmony account region, one of the following:
    # - For NA: https://services.jitterbit.net/apis
    # - For EMEA: https://services.jitterbit.eu/apis
    # - For APAC: https://services.jitterbit.cc/apis
    SERVICE_URL=
    
    ## Proxy Configuration (Optional)
    #
    # When true, enable proxy.
    PROXY_ENABLED=false
    ## When PROXY_ENABLED=true, uncomment and set the following:
    #
    # Proxy server URL, as http://your_proxy_server:port
    # PROXY_HOSTNAME=
    # Proxy server username
    # PROXY_USERNAME=
    # Proxy server password
    # PROXY_PASSWORD=
    
    ## Let's Encrypt certificates
    # When true, enable automatic generation of TLS certificate.
    # IMPORTANT: You must first create a DNS record pointing to the public IP address of your server.
    LETS_ENCRYPT_ENABLED=true
    # Fully-qualified domain name of your server, matching the A record or CNAME of the DNS record.
    # Example: gateway.mydomain.com
    LETS_ENCRYPT_DOMAIN=
    # Used by Lets Encrypt to issue the certificate. (Usually your email address.)
    LETS_ENCRYPT_EMAIL=
    
  2. Establece los valores de las variables como en el ejemplo anterior.

  3. Ejecuta el siguiente comando:

    docker run --detach --name=jb-gateway -p 80:80 -p 443:443 \
    -v "$(pwd)/conf:/conf" \
    jitterbit/private-gateway
    
  4. (Opcional) Prueba el gateway.

Prueba

Puedes probar un gateway API privado de Docker en ejecución utilizando un chequeo de salud, o la utilidad de auto-prueba.

Chequeo de salud

Para asegurar que un gateway API privado funcione como se espera, primero prueba la URL del servicio de un API Manager API utilizando el gateway en la nube, luego prueba la URL del gateway API privado para el mismo endpoint:

  1. En API Manager en la organización asociada con el gateway API privado, crea y publica un API.

  2. Usando una herramienta o comando de prueba de API, realiza una solicitud GET HTTPS a la URL del servicio del API.

    Por ejemplo, para el nombre de la organización JBExample, ID de la organización 123456, prefijo de URL del entorno development, número de versión del API 1, y raíz del servicio healthProbe, la URL del servicio del API sería https://JBExample123456.jitterbit.net/development/v1/healthProbe en la región NA.

  3. Realiza la llamada nuevamente, pero reemplaza el nombre y ID de tu organización y el nombre de dominio de la región de Harmony (jitterbit.net, jitterbit.cc, o jitterbit.eu) con el subdominio y dominio de tu gateway.

    Usando el ejemplo anterior con un dominio de gateway de mysubdomain.example.com, se obtiene una URL de gateway API privado de https://mysubdomain.example.com/development/v1/healthProbe.

Utilidad de auto-prueba

La utilidad de autodiagnóstico integrada del gateway realiza una serie de pruebas automáticas que incluyen la importación de un proyecto y API integrados y luego llama a la API a través del gateway para asegurar una configuración adecuada.

La API se crea con la opción SSL solo habilitada, lo que significa que el acceso a la URL privada del gateway de API se probará solo a través de HTTPS. Para permitir el acceso a través de HTTP, se puede deshabilitar la opción SSL solo en la configuración de la API después de que se haya creado la API de prueba.

Una URL de API debe estar disponible en su suscripción para que el autodiagnóstico sea exitoso.

Para ejecutar la utilidad de autodiagnóstico, siga estos pasos:

  1. Abra una sesión de shell en un contenedor en ejecución:

    docker exec -it jitterbit-gateway bash
    
  2. Ejecute la utilidad de autodiagnóstico:

    /usr/bin/jitterbit-api-gateway-config --test