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.
Importante
El gateway API privado de Docker no está oficialmente soportado ni certificado por Jitterbit. Para un entorno completamente soportado, recomendamos la instalación en una máquina Linux.
Requisitos previos
Antes de comenzar, necesitas lo siguiente:
- 
Docker instalado y en funcionamiento. 
- 
Una cuenta de Harmony, y 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 directo, 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 contenedor, 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 aislamiento mejorado, reduciendo el riesgo de interacciones accidentales entre contenedores no relacionados. 
- 
Configuraciones Personalizadas: Permite configuraciones de red específicas, 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, en texto plano o codificada con base64. | P@5$w0rdUEA1Cg==(codificada en base64) | 
| 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 ( trueofalse). | 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, en texto plano o codificada con base64. | $(PROXY_SERVER_PASSWORD) | 
| LETS_ENCRYPT_ENABLED | Habilitar Let's Encrypt ( trueofalse). | 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 separado 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.confque 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=Seguridad de la contraseña Desde la versión 11.51 del API gateway privado, los valores para HARMONY_PASSWORDyPROXY_PASSWORDpueden proporcionarse como cadenas codificadas en base64. Ya sea en texto plano o codificados en base64, estos valores están enmascarados (con***) en el registro de salida.
- 
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 API gateway privado de Docker en ejecución utilizando un chequeo de salud, o la utilidad de auto-prueba.
Chequeo de salud
Para asegurar que un API gateway 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 API gateway privado para el mismo endpoint:
- 
En API Manager en la organización asociada con el API gateway 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/healthProbeen 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.Usar el ejemplo anterior con un dominio de gateway de mysubdomain.example.comresulta en una URL de gateway API privada dehttps://mysubdomain.example.com/development/v1/healthProbe.
Self-test utility
La utilidad de auto-prueba 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 de gateway API privada 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 API después de que se crea la API de prueba.
Una URL de API debe estar disponible en su suscripción para que la auto-prueba sea exitosa.
Para ejecutar la utilidad de auto-prueba, 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 auto-prueba: /usr/bin/jitterbit-api-gateway-config --test