Execute um gateway de API privado Jitterbit no Docker
Introdução
Esta seção fornece exemplos de diferentes maneiras de executar um gateway de API privado no Docker usando a imagem Docker do Jitterbit.
Pré-requisitos
Antes de começar, você precisa do seguinte:
-
Docker instalado e em execução.
-
Uma conta Harmony, e seu nome de usuário, senha e ID da organização.
-
Uma API Manager válida na organização associada ao gateway de API privado.
-
Se estiver executando atrás de um proxy reverso, configure o firewall do seu host para permitir exceções do servidor proxy.
-
(Opcional) Para geração automática de certificados TLS, um domínio de gateway personalizado registrado e seu nome de domínio totalmente qualificado (FQDN) na forma
mygateway.mydomain.com
.
Início interativo e configuração
Execute o seguinte para iniciar o contêiner e, em seguida, responda às solicitações (que seguem os passos da configuração de instalação do Linux):
docker run --interactive --tty --name=jb-gateway \
--hostname=jb-gateway -p 80:80 -p 443:443 \
jitterbit/private-gateway
Início interativo e configuração com rede bridge
Execute o seguinte para criar uma rede bridge e iniciar o contêiner conectado a essa rede, e então responda às solicitações:
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
Uma rede bridge oferece as seguintes vantagens:
-
Descoberta de Contêineres: Permite comunicação direta usando nomes de contêiner, evitando a dependência de endereços IP. Isso simplifica a comunicação entre contêineres e permite que agentes privados se comuniquem livremente com gateways privados.
-
Melhor Isolamento: Proporciona um isolamento melhorado, reduzindo o risco de interações acidentais entre contêineres não relacionados.
-
Configurações Personalizadas: Permite configurações específicas de rede, como personalização de sub-rede e gateway.
-
Segmentação de Rede: Facilita a segmentação do tráfego de rede, garantindo que contêineres em diferentes redes de ponte não interfiram uns com os outros.
-
Políticas de Rede: Permite a aplicação de regras ou políticas de rede distintas, oferecendo controle aprimorado sobre as comunicações entre contêineres.
Cuidado
Se estiver configurando um ambiente multi-gateway em contêineres atrás de um balanceador de carga de aplicativo (ALB) como o AWS ALB, todos os contêineres de gateway devem estar na mesma máquina host.
Dica
Use a mesma rede para executar seus agentes privados baseados em Docker.
Início não supervisionado com rede de ponte e configuração com variáveis de ambiente
Execute o seguinte para criar uma rede de ponte e iniciar o contêiner em modo destacado, com valores fornecidos por meio de variáveis 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
Defina os valores das variáveis da seguinte forma:
Variável | Descrição | Exemplo |
---|---|---|
HARMONY_USERNAME | Login da conta Harmony. | name@example.com |
HARMONY_PASSWORD | Senha da conta Harmony. | P@5$w0rd |
ORGANIZATION_ID | Número de identificação da organização Harmony. | 12345 |
SERVICE_URL | URL do serviço Jitterbit para sua região:
| https://services.jitterbit.eu/apis |
PROXY_ENABLED | Habilitar proxy (true ou false ). | true |
PROXY_HOSTNAME | Nome do host e porta do proxy. | host.docker.internal:12121 |
PROXY_USERNAME | Nome de usuário do servidor proxy. | $(PROXY_SERVER_USERNAME) |
PROXY_PASSWORD | Senha do servidor proxy. | $(PROXY_SERVER_PASSWORD) |
LETS_ENCRYPT_ENABLED | Habilitar Let's Encrypt (true ou false ). | true |
LETS_ENCRYPT_DOMAIN | Nome de domínio do Let's Encrypt. | gateway.mydomain.com |
LETS_ENCRYPT_EMAIL | Email da conta Let's Encrypt. | youremail@<mydomain>.com |
Início não assistido e configuração com um arquivo de variáveis de ambiente
Siga estas etapas para iniciar o contêiner em modo destacado com variáveis de ambiente definidas em um arquivo:
-
No diretório onde o Docker é executado, crie um subdiretório
conf
. Nele, crie um arquivogateway.conf
contendo as seguintes variáveis 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=
-
Defina os valores das variáveis conforme no exemplo anterior.
-
Execute o seguinte comando:
docker run --detach --name=jb-gateway -p 80:80 -p 443:443 \ -v "$(pwd)/conf:/conf" \ jitterbit/private-gateway
-
(Opcional) Teste o gateway.
Teste
Você pode testar um gateway de API privado em execução no Docker usando uma verificação de saúde ou a ferramenta de auto-teste.
Verificação de saúde
Para garantir que um gateway de API privado funcione conforme o esperado, primeiro teste a URL do serviço de uma API do API Manager usando o gateway em nuvem, depois teste a URL do gateway de API privado para o mesmo endpoint:
-
No API Manager na organização associada ao gateway de API privado, crie e publique uma API.
-
Usando uma ferramenta ou comando de teste de API, faça uma solicitação GET HTTPS para a URL do serviço da API.
Por exemplo, para o nome da organização
JBExample
, ID da organização123456
, prefixo da URL do ambientedevelopment
, número da versão da API 1 e raiz do serviçohealthProbe
, a URL do serviço da API seriahttps://JBExample123456.jitterbit.net/development/v1/healthProbe
na região NA. -
Faça a chamada novamente, mas substitua o nome e o ID da sua organização e o nome de domínio da região Harmony (
jitterbit.net
,jitterbit.cc
oujitterbit.eu
) pelo subdomínio e domínio do seu gateway.Usando o exemplo anterior com um domínio de gateway de
mysubdomain.example.com
, resulta em uma URL de gateway de API privado dehttps://mysubdomain.example.com/development/v1/healthProbe
.
Ferramenta de auto-teste
A utilidade de auto-teste embutida no gateway executa uma série de testes automáticos que incluem a importação de um projeto e API embutidos e, em seguida, chama a API através do gateway para garantir a configuração adequada.
A API é criada com a opção SSL apenas habilitada, o que significa que o acesso à URL privada do gateway da API será testado apenas por HTTPS. Para permitir o acesso por HTTP, você pode desabilitar a opção SSL apenas na configuração da API após a API de teste ser criada.
Uma URL de API deve estar disponível na sua assinatura para que o auto-teste seja bem-sucedido.
Para executar a utilidade de auto-teste, siga estas etapas:
-
Abra uma sessão de shell em um contêiner em execução:
docker exec -it jitterbit-gateway bash
-
Execute a utilidade de auto-teste:
/usr/bin/jitterbit-api-gateway-config --test