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.
Importante
O gateway de API privado do Docker não é oficialmente suportado ou certificado pelo Jitterbit. Para um ambiente totalmente suportado, recomendamos a instalação em uma máquina Linux.
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 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 em seguida, 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 isolamento aprimorado, reduzindo o risco de interações acidentais entre contêineres não relacionados.
-
Configurações Personalizadas: Permite configurações de rede específicas, 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.
Atenção
Ao configurar um ambiente de múltiplos gateways 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 |
Ativar 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 |
Ativar 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 codificadas em base64, esses valores são mascarados (com***) no log de saída. -
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 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 dehttps://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 por 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