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:
| 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:
-
En el directorio donde se ejecuta Docker, crea un subdirectorio
conf
. En él, crea un archivogateway.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=
-
Establece los valores de las variables como en el ejemplo anterior.
-
Ejecuta el siguiente comando:
docker run --detach --name=jb-gateway -p 80:80 -p 443:443 \ -v "$(pwd)/conf:/conf" \ jitterbit/private-gateway
-
(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:
-
En API Manager en la organización asociada con el gateway API privado, crea y publica un API.
-
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ón123456
, prefijo de URL del entornodevelopment
, número de versión del API 1, y raíz del serviciohealthProbe
, la URL del servicio del API seríahttps://JBExample123456.jitterbit.net/development/v1/healthProbe
en la región NA. -
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
, ojitterbit.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 dehttps://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:
-
Abra una sesión de shell en un contenedor en ejecución:
docker exec -it jitterbit-gateway bash
-
Ejecute la utilidad de autodiagnóstico:
/usr/bin/jitterbit-api-gateway-config --test