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 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.
-
Um API Manager válido API na organização associada ao gateway de API privado.
-
Se estiver executando atrás de um proxy de encaminhamento, 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) no formato
mygateway.mydomain.com
.
Início e configuração interativos
Execute o seguinte para iniciar o contêiner e, em seguida, responda aos prompts (que seguem a configuração de instalação do Linux passos):
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 de ponte
Execute o seguinte para criar uma rede de ponte e iniciar o contêiner conectado a essa rede, depois 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 de ponte 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 private agents comunicar-se livremente com gateways privados.
-
Melhor isolamento: Fornece 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 de contêiner.
Dica
Use a mesma rede para executar seus agentes privados baseados em Docker.
Início autônomo 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 no modo desanexado, 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 ](trueou false). | true |
LETS_ENCRYPT_DOMAIN | Vamos criptografar o nome de domínio. | gateway.mydomain.com |
LETS_ENCRYPT_EMAIL | Vamos criptografar o email da conta. | youremail@<mydomain>.com |
Início e configuração autônomos com um arquivo de variáveis de ambiente
Siga estas etapas para iniciar o contêiner no modo desanexado 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 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 portal.
Teste
Você pode testar um gateway de API privado do Docker em execução usando uma verificação de integridade, ou o utilitário de autoteste.
Verificação de saúde
Para garantir que um gateway de API privado funcione conforme o esperado, primeiro teste a URL de serviço de uma API do API Manager usando o gateway de nuvem e, em seguida, 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 de teste de API ou comando, faça uma solicitação HTTPS GET para a URL de serviço da API.
Por exemplo, para nome da organização
JBExample
, ID da organização123456
, prefixo de URL do ambientedevelopment
, versão da API número 1 ehealthProbe
raiz do serviço, 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
) com o 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 autoteste
O utilitário de autoteste integrado do gateway executa uma série de testes automáticos que incluem a importação de um projeto e uma API integrados e, em seguida, a chamada da API por meio do gateway para garantir a configuração adequada.
A API é criada com a opção SSL only habilitada, o que significa que o acesso à URL do gateway da API privada será testado somente por HTTPS. Para permitir o acesso por HTTP, você pode desabilitar a opção SSL only na configuração da API após a criação da API de teste.
Uma URL de API deve estar disponível na sua assinatura para que o autoteste seja bem-sucedido.
Para executar o utilitário de autoteste, 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 autoteste:
/usr/bin/jitterbit-api-gateway-config --test