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 então responda aos prompts (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 aos prompts:
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êiner: 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, em texto simples ou codificada com base64. |
P@5$w0rdUEA1Cg== (codificada em base64) |
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, em texto simples ou codificada com base64. |
$(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.confcontendo 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=Segurança da senha
Desde a versão 11.51 do gateway de API privado, os valores para
HARMONY_PASSWORDePROXY_PASSWORDpodem ser fornecidos como strings codificadas em base64. Seja em texto simples ou codificado em base64, esses valores são mascarados (com***) no log de saída. -
Defina os valores das variáveis como 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 do Docker em execução usando um check de saúde ou a ferramenta de auto-teste.
Check 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/healthProbena 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.ccoujitterbit.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 privada de https://mysubdomain.example.com/development/v1/healthProbe.
Utilitário de auto-teste
O utilitário de auto-teste embutido do gateway executa uma série de testes automáticos que incluem a importação de um projeto e API embutidos e, em seguida, a chamada da API através do gateway para garantir a configuração adequada.
A API é criada com a opção Apenas SSL habilitada, o que significa que o acesso à URL do gateway de API privada será testado apenas por HTTPS. Para permitir o acesso via HTTP, você pode desabilitar a opção Apenas SSL 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 o utilitário 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 o utilitário de auto-teste:
/usr/bin/jitterbit-api-gateway-config --test