Saltar al contenido

Ejecutar una Puerta de Enlace API Privada en Docker

Introducción

Esta sección ofrece ejemplos de diferentes formas de ejecutar una puerta de enlace de API privada en Docker utilizando la imagen Docker de Jitterbit.

Prerrequisitos

Antes de comenzar, necesitas lo siguiente:

  • Docker instalado y funcionando.

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

  • Un API Manager válido API en la organización asociada con la puerta de enlace API privada.

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

  • (Opcional) Para la generación automática de certificados TLS, un dominio de puerta de enlace personalizado registrado y su nombre de dominio completo (FQDN) en el formato mygateway.mydomain.com.

Inicio y Configuración Interactivos

Ejecute lo siguiente para iniciar el contenedor, luego responda a las indicaciones (que siguen a la configuración de instalación de Linux pasos):

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

Inicio y Configuración Interactivos con Red de Puente

Ejecute lo siguiente para crear una red de puente e iniciar el contenedor conectado a esa red. Luego, responda 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 mediante nombres de contenedores, evitando la dependencia de direcciones IP. Esto simplifica la comunicación entre contenedores y permite private agents comunicarse libremente con puertas de enlace privadas.

  • Mejor aislamiento: Proporciona un mejor aislamiento, lo que reduce el riesgo de interacciones accidentales entre contenedores no relacionados.

  • Configuraciones personalizadas: Permite configuraciones de red específicas, como la personalización de subredes y puertas de enlace.

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

  • Políticas de red: Permite la aplicación de distintas reglas o políticas de red, lo que ofrece un mayor control sobre las comunicaciones de los contenedores.

Sugerencia

Use la misma red para ejecutar sus agentes privados basados en Docker.

Inicio Desatendido con Red de Puente y Configuración con Variables de Ambiente

Ejecute lo siguiente para crear una red de puente e iniciar el contenedor en modo separado, con valores proporcionados a través de variables de ambiente:

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

Establezca los valores de las variables de la siguiente manera:

Variable Descripción Ejemplo
HARMONY_USERNAME Iniciar sesión en la cuenta Harmony. name@example.com
HARMONY_PASSWORD Contraseña de la cuenta Harmony. P@5$w0rd
ORGANIZATION_ID Número de identificación de la organización Harmony. 12345
SERVICE_URL URL del servicio Jitterbit para su 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 Let's Encrypt. gateway.mydomain.com
LETS_ENCRYPT_EMAIL correo de la cuenta Let's Encrypt. youremail@<mydomain>.com

Inicio y Configuración Sin Supervisión con un Archivo de Variables de Ambiente

Siga estos pasos para iniciar el contenedor en modo separado con variables de ambiente configuradas en un archivo:

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

    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. Establezca los valores de las variables como en el ejemplo anterior.

  3. Ejecute 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 la puerta de entrada.

Prueba

Puede probar una puerta de enlace de API privada de Docker en ejecución utilizando una verificación de estado, o la utilidad de autoprueba.

Chequeo de Salud

Para garantizar que una puerta de enlace de API privada funcione como se espera, primero pruebe la URL del servicio de API de API Manager utilizando la puerta de enlace en la nube y, luego, pruebe la URL de la puerta de enlace de API privada para el mismo extremo:

  1. En API Manager, en la organización asociada con la puerta de enlace de API privada, cree y publique una API.

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

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

  3. Vuelva a realizar la llamada, pero reemplace el nombre y el ID de su organización y el nombre de dominio de la región de Harmony (jitterbit.net, jitterbit.cc, o jitterbit.eu) con el subdominio y el dominio de su puerta de enlace.

    Usando el ejemplo anterior con un dominio de puerta de enlace de mysubdomain.example.com da como resultado una URL de puerta de enlace de API privada de https://mysubdomain.example.com/development/v1/healthProbe.

Utilidad de Autoprueba

La utilidad de autoprueba integrada de la puerta de enlace ejecuta una serie de pruebas automáticas que incluyen la importación de un proyecto y una API integrados y, luego, la llamada a la API a través de la puerta de enlace para garantizar la configuración adecuada. Debe haber una URL de API disponible en su suscripción para que la autoprueba sea exitosa.

Para ejecutar la utilidad de autoprueba, 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 autoprueba:

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